{"slug":"sp-500-dividend-yield","qid":"index_yield_by_year","label":"Tracker distribution yield vs the 10 year Treasury, calendar year ends 2015-2025","post_title":"S&P 500 Dividend Yield: How It's Measured","post_url":"/blog/sp-500-dividend-yield#q-index_yield_by_year","columns":["year","tracker_yield_pct","treasury_10y_pct","distributions_per_share_usd","payments"],"rows":[{"year":2015,"tracker_yield_pct":2.06,"treasury_10y_pct":2.27,"distributions_per_share_usd":4.21,"payments":4},{"year":2016,"tracker_yield_pct":2.03,"treasury_10y_pct":2.45,"distributions_per_share_usd":4.54,"payments":4},{"year":2017,"tracker_yield_pct":1.8,"treasury_10y_pct":2.4,"distributions_per_share_usd":4.8,"payments":4},{"year":2018,"tracker_yield_pct":2.04,"treasury_10y_pct":2.69,"distributions_per_share_usd":5.1,"payments":4},{"year":2019,"tracker_yield_pct":1.75,"treasury_10y_pct":1.92,"distributions_per_share_usd":5.62,"payments":4},{"year":2020,"tracker_yield_pct":1.52,"treasury_10y_pct":0.93,"distributions_per_share_usd":5.69,"payments":4},{"year":2021,"tracker_yield_pct":1.2,"treasury_10y_pct":1.52,"distributions_per_share_usd":5.72,"payments":4},{"year":2022,"tracker_yield_pct":1.65,"treasury_10y_pct":3.88,"distributions_per_share_usd":6.32,"payments":4},{"year":2023,"tracker_yield_pct":1.4,"treasury_10y_pct":3.88,"distributions_per_share_usd":6.63,"payments":4},{"year":2024,"tracker_yield_pct":1.21,"treasury_10y_pct":4.58,"distributions_per_share_usd":7.07,"payments":4},{"year":2025,"tracker_yield_pct":1.07,"treasury_10y_pct":4.18,"distributions_per_share_usd":7.28,"payments":4}],"shape":"table","sql":"WITH px AS (\n    SELECT toYear(toTimeZone(window_start, 'America/New_York')) AS year,\n           argMax(close, window_start) AS year_end_price\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker = 'SPY'\n      AND toYear(toTimeZone(window_start, 'America/New_York')) BETWEEN 2015 AND 2025\n      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959\n    GROUP BY year\n),\ndv AS (\n    SELECT toYear(ex_dividend_date) AS year,\n           sum(cash_amount) AS annual_distributions,\n           count() AS payments\n    FROM global_markets.stocks_dividends\n    WHERE ticker = 'SPY'\n      AND cash_amount > 0\n      AND ex_dividend_date >= toDate('2015-01-01')\n      AND ex_dividend_date <= toDate('2025-12-31')\n    GROUP BY year\n),\ntsy AS (\n    SELECT toYear(date) AS year,\n           argMax(yield_10_year, date) AS y10\n    FROM global_markets.treasury_yields\n    WHERE toYear(date) BETWEEN 2015 AND 2025\n      AND toMonth(date) = 12\n      AND yield_10_year IS NOT NULL\n    GROUP BY year\n)\nSELECT px.year AS year,\n       round(dv.annual_distributions / px.year_end_price * 100, 2) AS tracker_yield_pct,\n       round(tsy.y10, 2) AS treasury_10y_pct,\n       round(dv.annual_distributions, 2) AS distributions_per_share_usd,\n       dv.payments AS payments\nFROM px\nINNER JOIN dv ON px.year = dv.year\nINNER JOIN tsy ON px.year = tsy.year\nORDER BY year","computed_at":"2026-08-22T04:19:59.377134+00:00","elapsed":4.047816192}