STRASMORE/EXPLORE 3,214 QUERIES 22Y EQUITIES · 12Y OPTIONS

3,214 answered market questions

every one with its exact SQL, its result and the date it was computed · free, no signup

Average Dividend Yield by Sector: 2026 Data
Basket median dividend yield by month, with the 10-year Treasury yieldseries · 2026-10-08 · 36×4Preview: a 16-point series, ending lower. The universe choice: sector means with and without non-payerstable · 2026-10-08 · 11×6 Dividend yield by sector: median payer, equal-weighted mean, cap-weightedtable · 2026-10-08 · 11×5 Dividends paid as a share of operating cash flow, by sectorranking · 2026-10-08 · 11×3Preview: 11 ranked values, smallest first.
Basket median dividend yield by month, with the 10-year Treasury yield

Basket median dividend yield by month, with the 10-year Treasury yield

most recentas of series 36×4read in context →
Basket median dividend yield by month, with the 10-year Treasury yield — 36 rows by 4 columns, computed from US exchange, SIP and OPRA data.
monthmonth_labelbasket_median_yield_pcttreasury_10y_pct
2023-10Oct 20233.214.8
2023-11Nov 20233.034.5
2023-12Dec 20232.854.02
2024-01Jan 20242.824.06
2024-02Feb 20242.834.21
2024-03Mar 20242.774.21
2024-04Apr 20242.714.54
2024-05May 20242.694.48
2024-06Jun 20242.84.31
2024-07Jul 20242.724.25
2024-08Aug 20242.533.87
2024-09Sep 20242.533.72
2024-10Oct 20242.544.1
2024-11Nov 20242.564.36
2024-12Dec 20242.794.39
2025-01Jan 20252.794.63
2025-02Feb 20252.714.45
2025-03Mar 20252.774.28
2025-04Apr 20252.94.28
2025-05May 20252.854.42
2025-06Jun 20252.854.38
2025-07Jul 20252.914.39
2025-08Aug 20252.854.26
2025-09Sep 20252.824.12
2025-10Oct 20252.774.06
2025-11Nov 20252.694.09
2025-12Dec 20252.844.14
2026-01Jan 20262.414.21
2026-02Feb 20262.364.13
2026-03Mar 20262.434.25
2026-04Apr 20262.544.32
2026-05May 20262.634.48
2026-06Jun 20262.634.47
2026-07Jul 20262.474.6
2026-08Aug 20262.354.68
2026-09Sep 20262.474.99
the exact SQL behind every number
WITH
    basket AS
    (
        SELECT
            pair.1 AS ticker,
            pair.2 AS sector
        FROM
        (
            SELECT arrayJoin([
                ('XOM', 'Energy'), ('CVX', 'Energy'), ('COP', 'Energy'), ('SLB', 'Energy'),
                ('JPM', 'Financials'), ('BAC', 'Financials'), ('GS', 'Financials'), ('BLK', 'Financials'), ('AXP', 'Financials'),
                ('JNJ', 'Health Care'), ('ABBV', 'Health Care'), ('MRK', 'Health Care'), ('AMGN', 'Health Care'), ('GILD', 'Health Care'),
                ('KO', 'Staples'), ('PG', 'Staples'), ('PEP', 'Staples'), ('COST', 'Staples'), ('CL', 'Staples'),
                ('DUK', 'Utilities'), ('SO', 'Utilities'), ('AEP', 'Utilities'), ('NEE', 'Utilities'), ('XEL', 'Utilities'),
                ('AAPL', 'Tech'), ('MSFT', 'Tech'), ('AVGO', 'Tech'), ('CSCO', 'Tech'), ('ADBE', 'Tech'),
                ('CAT', 'Industrials'), ('HON', 'Industrials'), ('UNP', 'Industrials'), ('GE', 'Industrials'), ('LMT', 'Industrials'),
                ('HD', 'Discretionary'), ('MCD', 'Discretionary'), ('AMZN', 'Discretionary'), ('TSLA', 'Discretionary'), ('SBUX', 'Discretionary'),
                ('LIN', 'Materials'), ('SHW', 'Materials'), ('NEM', 'Materials'), ('DOW', 'Materials'),
                ('VZ', 'Communication'), ('T', 'Communication'), ('CMCSA', 'Communication'), ('GOOGL', 'Communication'), ('NFLX', 'Communication'),
                ('AMT', 'Real Estate'), ('PLD', 'Real Estate'), ('PSA', 'Real Estate'), ('SPG', 'Real Estate')
            ]) AS pair
        )
    ),
    month_px AS
    (
        SELECT
            ticker,
            toStartOfMonth(date)           AS m,
            max(date)                      AS last_session,
            argMax(toFloat64(close), date) AS month_close
        FROM global_markets.stocks_daily_aggs
        WHERE ticker IN (SELECT ticker FROM basket)
          AND date >= toStartOfMonth(today()) - 1095
          AND date <  toStartOfMonth(today())
        GROUP BY ticker, m
    ),
    div_rate AS
    (
        SELECT
            ticker,
            ex_dividend_date,
            max(toFloat64(cash_amount) * toFloat64(frequency)) AS annual_rate
        FROM global_markets.stocks_dividends
        WHERE ticker IN (SELECT ticker FROM basket)
          AND ex_dividend_date >= toStartOfMonth(today()) - 1460
          AND frequency > 0
          AND cash_amount > 0
        GROUP BY ticker, ex_dividend_date
    ),
    name_month AS
    (
        SELECT
            p.m                                               AS m,
            p.ticker                                          AS ticker,
            round(100 * d.annual_rate / p.month_close, 3)     AS yield_pct
        FROM month_px AS p
        ASOF LEFT JOIN div_rate AS d
            ON p.ticker = d.ticker AND p.last_session >= d.ex_dividend_date
    ),
    ust AS
    (
        SELECT
            toStartOfMonth(date)                      AS m,
            round(avg(toFloat64(yield_10_year)), 2)   AS treasury_10y_pct
        FROM global_markets.treasury_yields
        WHERE date >= toStartOfMonth(today()) - 1095
          AND date <  toStartOfMonth(today())
          AND yield_10_year > 0
        GROUP BY m
    )
SELECT
    formatDateTime(n.m, '%Y-%m')                                                             AS month,
    formatDateTime(n.m, '%b %Y')                                                             AS month_label,
    round(quantileDeterministicIf(0.5)(n.yield_pct, cityHash64(n.ticker), n.yield_pct > 0), 2) AS basket_median_yield_pct,
    any(t.treasury_10y_pct)                                                                  AS treasury_10y_pct
FROM name_month AS n
INNER JOIN ust AS t ON t.m = n.m
GROUP BY n.m
HAVING countIf(n.yield_pct > 0) > 0
ORDER BY n.m
$