STRASMORE/EXPLORE 3,214 QUERIES

The universe choice: sector means with and without non-payers

Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-10-08, from Average Dividend Yield by Sector: 2026 Data.

as of table 11×6read in context →
The universe choice: sector means with and without non-payers — 11 rows by 6 columns, computed from US exchange, SIP and OPRA data.
sectordividend_payersnon_payerspayers_only_mean_pctall_names_mean_pctgap_pct
Discretionary323.111.861.24
Communication414.33.440.86
Tech410.80.640.16
Staples502.632.630
Energy402.72.70
Health Care502.332.330
Financials502.032.030
Industrials501.521.520
Utilities503.383.380
Real Estate404.124.120
Materials402.062.060
Rows × columns
11 × 6
Computed
Completeness
No missing values
Source
US exchange, SIP and OPRA market data
Licence
Strasmore terms · free, no signup
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for The universe choice: sector means with and without non-payers, derived from the stored result.
ColumnTypeRangeNotes
sector text 11 distinct values (Communication, Discretionary, Energy…)
dividend_payers number 3 to 5
non_payers number 0 to 2
payers_only_mean_pct number 0.8 to 4.3 percent
all_names_mean_pct number 0.64 to 4.12 percent
gap_pct number 0 to 1.24 percent

Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.

Run it yourself

This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.

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
        )
    ),
    price AS
    (
        SELECT
            ticker,
            argMax(toFloat64(close), date) AS last_close
        FROM global_markets.stocks_daily_aggs
        WHERE ticker IN (SELECT ticker FROM basket)
          AND date >= today() - 20
        GROUP BY ticker
    ),
    indicated AS
    (
        SELECT
            ticker,
            toFloat64(argMax(cash_amount, ex_dividend_date))
                * toFloat64(argMax(frequency, ex_dividend_date)) AS annual_rate
        FROM global_markets.stocks_dividends
        WHERE ticker IN (SELECT ticker FROM basket)
          AND ex_dividend_date >= today() - 400
          AND frequency > 0
          AND cash_amount > 0
        GROUP BY ticker
    ),
    name_level AS
    (
        SELECT
            b.sector                                                AS sector,
            b.ticker                                                AS ticker,
            round(100 * ifNull(i.annual_rate, 0) / p.last_close, 2) AS yield_pct
        FROM basket AS b
        INNER JOIN price AS p ON p.ticker = b.ticker
        LEFT  JOIN indicated AS i ON i.ticker = b.ticker
    )
SELECT
    sector,
    countIf(yield_pct > 0)                                              AS dividend_payers,
    countIf(yield_pct = 0)                                              AS non_payers,
    round(avgIf(yield_pct, yield_pct > 0), 2)                           AS payers_only_mean_pct,
    round(avg(yield_pct), 2)                                            AS all_names_mean_pct,
    round(avgIf(yield_pct, yield_pct > 0) - avg(yield_pct), 2)          AS gap_pct
FROM name_level
GROUP BY sector
HAVING countIf(yield_pct > 0) > 0
ORDER BY gap_pct DESC
⌘/Ctrl + Enter

Work with this data in your AI assistant

Opens ready to query, with this page's data. Free, no account.

More from this analysisAverage Dividend Yield by Sector: 2026 Data
Dividend yield by sector: median payer, equal-weighted mean, cap-weighted table 11×5 → Basket median dividend yield by month, with the 10-year Treasury yield series 36×4 → Dividends paid as a share of operating cash flow, by sector ranking 11×3 → Highest dividend yields: US-listed companies over $2B, latest snapshot on file table 15×5 → Dividend outcome over the following 12 months by starting yield band (cohort of June 30, 2025) table 5×7 → Payout ratio by yield band: US payers above $1B market cap, latest snapshot on file table 5×6 → See all 3,214 queries →