{"slug":"average-dividend-yield-by-sector","qid":"sector_yields","label":"Dividend yield by sector: median payer, equal-weighted mean, cap-weighted","post_title":"Average Dividend Yield by Sector: 2026 Data","post_url":"/blog/average-dividend-yield-by-sector#q-sector_yields","columns":["sector","median_payer_pct","mean_all_names_pct","cap_weighted_pct","priced_through"],"rows":[{"sector":"Communication","median_payer_pct":5.33,"mean_all_names_pct":3.44,"cap_weighted_pct":0.69,"priced_through":"Oct 8, 2026"},{"sector":"Real Estate","median_payer_pct":4.28,"mean_all_names_pct":4.12,"cap_weighted_pct":3.99,"priced_through":"Oct 8, 2026"},{"sector":"Discretionary","median_payer_pct":3.28,"mean_all_names_pct":1.86,"cap_weighted_pct":0.36,"priced_through":"Oct 8, 2026"},{"sector":"Utilities","median_payer_pct":3.26,"mean_all_names_pct":3.38,"cap_weighted_pct":3.39,"priced_through":"Oct 8, 2026"},{"sector":"Energy","median_payer_pct":2.53,"mean_all_names_pct":2.79,"cap_weighted_pct":3.07,"priced_through":"Oct 8, 2026"},{"sector":"Staples","median_payer_pct":2.46,"mean_all_names_pct":2.63,"cap_weighted_pct":2.29,"priced_through":"Oct 8, 2026"},{"sector":"Health Care","median_payer_pct":2.38,"mean_all_names_pct":2.33,"cap_weighted_pct":2.31,"priced_through":"Oct 8, 2026"},{"sector":"Financials","median_payer_pct":2.16,"mean_all_names_pct":2.03,"cap_weighted_pct":2.07,"priced_through":"Oct 8, 2026"},{"sector":"Industrials","median_payer_pct":1.36,"mean_all_names_pct":1.52,"cap_weighted_pct":1.2,"priced_through":"Oct 8, 2026"},{"sector":"Materials","median_payer_pct":1.18,"mean_all_names_pct":2.06,"cap_weighted_pct":1.33,"priced_through":"Oct 8, 2026"},{"sector":"Tech","median_payer_pct":0.72,"mean_all_names_pct":0.64,"cap_weighted_pct":0.57,"priced_through":"Oct 8, 2026"}],"shape":"table","sql":"WITH\n    basket AS\n    (\n        SELECT\n            pair.1 AS ticker,\n            pair.2 AS sector\n        FROM\n        (\n            SELECT arrayJoin([\n                ('XOM', 'Energy'), ('CVX', 'Energy'), ('COP', 'Energy'), ('SLB', 'Energy'),\n                ('JPM', 'Financials'), ('BAC', 'Financials'), ('GS', 'Financials'), ('BLK', 'Financials'), ('AXP', 'Financials'),\n                ('JNJ', 'Health Care'), ('ABBV', 'Health Care'), ('MRK', 'Health Care'), ('AMGN', 'Health Care'), ('GILD', 'Health Care'),\n                ('KO', 'Staples'), ('PG', 'Staples'), ('PEP', 'Staples'), ('COST', 'Staples'), ('CL', 'Staples'),\n                ('DUK', 'Utilities'), ('SO', 'Utilities'), ('AEP', 'Utilities'), ('NEE', 'Utilities'), ('XEL', 'Utilities'),\n                ('AAPL', 'Tech'), ('MSFT', 'Tech'), ('AVGO', 'Tech'), ('CSCO', 'Tech'), ('ADBE', 'Tech'),\n                ('CAT', 'Industrials'), ('HON', 'Industrials'), ('UNP', 'Industrials'), ('GE', 'Industrials'), ('LMT', 'Industrials'),\n                ('HD', 'Discretionary'), ('MCD', 'Discretionary'), ('AMZN', 'Discretionary'), ('TSLA', 'Discretionary'), ('SBUX', 'Discretionary'),\n                ('LIN', 'Materials'), ('SHW', 'Materials'), ('NEM', 'Materials'), ('DOW', 'Materials'),\n                ('VZ', 'Communication'), ('T', 'Communication'), ('CMCSA', 'Communication'), ('GOOGL', 'Communication'), ('NFLX', 'Communication'),\n                ('AMT', 'Real Estate'), ('PLD', 'Real Estate'), ('PSA', 'Real Estate'), ('SPG', 'Real Estate')\n            ]) AS pair\n        )\n    ),\n    price AS\n    (\n        SELECT\n            ticker,\n            max(date)                        AS price_date,\n            argMax(toFloat64(close), date)   AS last_close\n        FROM global_markets.stocks_daily_aggs\n        WHERE ticker IN (SELECT ticker FROM basket)\n          AND date >= today() - 20\n        GROUP BY ticker\n    ),\n    indicated AS\n    (\n        SELECT\n            ticker,\n            toFloat64(argMax(cash_amount, ex_dividend_date))\n                * toFloat64(argMax(frequency, ex_dividend_date)) AS annual_rate\n        FROM global_markets.stocks_dividends\n        WHERE ticker IN (SELECT ticker FROM basket)\n          AND ex_dividend_date >= today() - 400\n          AND frequency > 0\n          AND cash_amount > 0\n        GROUP BY ticker\n    ),\n    caps AS\n    (\n        SELECT\n            ticker,\n            argMax(toFloat64(market_cap), date) AS cap_usd\n        FROM global_markets.stocks_ratios\n        WHERE ticker IN (SELECT ticker FROM basket)\n          AND date >= today() - 45\n          AND market_cap > 0\n        GROUP BY ticker\n    ),\n    name_level AS\n    (\n        SELECT\n            b.sector                                                     AS sector,\n            b.ticker                                                     AS ticker,\n            p.price_date                                                 AS price_date,\n            c.cap_usd                                                    AS market_cap,\n            round(100 * ifNull(i.annual_rate, 0) / p.last_close, 2)      AS yield_pct\n        FROM basket AS b\n        INNER JOIN price AS p ON p.ticker = b.ticker\n        INNER JOIN caps  AS c ON c.ticker = b.ticker\n        LEFT  JOIN indicated AS i ON i.ticker = b.ticker\n    )\nSELECT\n    sector,\n    round(quantileDeterministicIf(0.5)(yield_pct, cityHash64(ticker), yield_pct > 0), 2) AS median_payer_pct,\n    round(avg(yield_pct), 2)                                                             AS mean_all_names_pct,\n    round(sum(yield_pct * market_cap) / sum(market_cap), 2)                              AS cap_weighted_pct,\n    formatDateTime(max(price_date), '%b %e, %Y')                                         AS priced_through\nFROM name_level\nGROUP BY sector\nHAVING countIf(yield_pct > 0) > 0\nORDER BY median_payer_pct DESC","computed_at":"2026-10-08T15:32:23.594717+00:00","elapsed":0.399458198}