{"slug":"spy-dividend-yield-and-uit-cash-drag","qid":"spy_distribution_history","label":"Every SPY distribution over the last three years, against the share price","post_title":"SPY Dividend Yield: Why It Trails the Index","post_url":"/blog/spy-dividend-yield-and-uit-cash-drag#q-spy_distribution_history","columns":["ex_date","ex_date_label","pay_date_label","cash_amount","pct_of_price"],"rows":[{"ex_date":"2023-09-15","ex_date_label":"Sep 15, 2023","pay_date_label":"Oct 31, 2023","cash_amount":1.5832,"pct_of_price":0.357},{"ex_date":"2023-12-15","ex_date_label":"Dec 15, 2023","pay_date_label":"Jan 31, 2024","cash_amount":1.9061,"pct_of_price":0.406},{"ex_date":"2024-03-15","ex_date_label":"Mar 15, 2024","pay_date_label":"Apr 30, 2024","cash_amount":1.5949,"pct_of_price":0.313},{"ex_date":"2024-06-21","ex_date_label":"Jun 21, 2024","pay_date_label":"Jul 31, 2024","cash_amount":1.759,"pct_of_price":0.323},{"ex_date":"2024-09-20","ex_date_label":"Sep 20, 2024","pay_date_label":"Oct 31, 2024","cash_amount":1.7455,"pct_of_price":0.307},{"ex_date":"2024-12-20","ex_date_label":"Dec 20, 2024","pay_date_label":"Jan 31, 2025","cash_amount":1.9655,"pct_of_price":0.333},{"ex_date":"2025-03-21","ex_date_label":"Mar 21, 2025","pay_date_label":"Apr 30, 2025","cash_amount":1.6955,"pct_of_price":0.301},{"ex_date":"2025-06-20","ex_date_label":"Jun 20, 2025","pay_date_label":"Jul 31, 2025","cash_amount":1.7611,"pct_of_price":0.296},{"ex_date":"2025-09-19","ex_date_label":"Sep 19, 2025","pay_date_label":"Oct 31, 2025","cash_amount":1.8311,"pct_of_price":0.276},{"ex_date":"2025-12-19","ex_date_label":"Dec 19, 2025","pay_date_label":"Jan 30, 2026","cash_amount":1.9934,"pct_of_price":0.293},{"ex_date":"2026-03-20","ex_date_label":"Mar 20, 2026","pay_date_label":"Apr 30, 2026","cash_amount":1.797,"pct_of_price":0.277},{"ex_date":"2026-06-18","ex_date_label":"Jun 18, 2026","pay_date_label":"Jul 31, 2026","cash_amount":1.9035,"pct_of_price":0.255}],"shape":"series","sql":"WITH\n    divs AS\n    (\n        SELECT\n            ex_dividend_date            AS ex_date,\n            any(pay_date)               AS pay_date,\n            max(toFloat64(cash_amount)) AS cash_amount\n        FROM global_markets.stocks_dividends\n        WHERE ticker = 'SPY'\n          AND ex_dividend_date >= today() - 1095\n          AND ex_dividend_date <  today()\n        GROUP BY ex_dividend_date\n    ),\n    px AS\n    (\n        SELECT\n            toDate(toTimeZone(window_start, 'America/New_York')) AS d,\n            toFloat64(argMax(close, window_start))               AS close_px\n        FROM global_markets.delayed_stocks_minute_aggs\n        WHERE ticker = 'SPY'\n          AND window_start >= today() - 1105\n          AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n               + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570\n          AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n               + toMinute(toTimeZone(window_start, 'America/New_York'))) <  960\n        GROUP BY d\n    )\nSELECT\n    toString(divs.ex_date)                         AS ex_date,\n    formatDateTime(divs.ex_date, '%b %e, %Y')      AS ex_date_label,\n    formatDateTime(divs.pay_date, '%b %e, %Y')     AS pay_date_label,\n    round(divs.cash_amount, 4)                     AS cash_amount,\n    round(divs.cash_amount / px.close_px * 100, 3) AS pct_of_price\nFROM divs\nINNER JOIN px ON px.d = divs.ex_date\nORDER BY ex_date","computed_at":"2026-08-22T04:22:07.881106+00:00","elapsed":0.740483273}