{"slug":"schd-vs-voo-dividend-yield","qid":"yield_gap_history","label":"SCHD and VOO annualized dividend yield: twelve month-ends through July 2026","post_title":"SCHD vs VOO: Why the Dividend Yields Differ","post_url":"/blog/schd-vs-voo-dividend-yield#q-yield_gap_history","columns":["month","month_label","schd_yield_pct","voo_yield_pct","gap_pct"],"rows":[{"month":"2025-08","month_label":"August 2025","schd_yield_pct":3.73,"voo_yield_pct":1.18,"gap_pct":2.55},{"month":"2025-09","month_label":"September 2025","schd_yield_pct":3.82,"voo_yield_pct":1.14,"gap_pct":2.68},{"month":"2025-10","month_label":"October 2025","schd_yield_pct":3.9,"voo_yield_pct":1.11,"gap_pct":2.79},{"month":"2025-11","month_label":"November 2025","schd_yield_pct":3.78,"voo_yield_pct":1.11,"gap_pct":2.67},{"month":"2025-12","month_label":"December 2025","schd_yield_pct":4.05,"voo_yield_pct":1.13,"gap_pct":2.92},{"month":"2026-01","month_label":"January 2026","schd_yield_pct":3.73,"voo_yield_pct":1.11,"gap_pct":2.62},{"month":"2026-02","month_label":"February 2026","schd_yield_pct":3.5,"voo_yield_pct":1.12,"gap_pct":2.38},{"month":"2026-03","month_label":"March 2026","schd_yield_pct":3.35,"voo_yield_pct":1.25,"gap_pct":2.1},{"month":"2026-04","month_label":"April 2026","schd_yield_pct":3.2,"voo_yield_pct":1.13,"gap_pct":2.07},{"month":"2026-05","month_label":"May 2026","schd_yield_pct":3.16,"voo_yield_pct":1.08,"gap_pct":2.09},{"month":"2026-06","month_label":"June 2026","schd_yield_pct":3.19,"voo_yield_pct":1.14,"gap_pct":2.04},{"month":"2026-07","month_label":"July 2026","schd_yield_pct":3.02,"voo_yield_pct":1.14,"gap_pct":1.88}],"shape":"series","sql":"WITH px AS (\n    SELECT ticker,\n           toStartOfMonth(toDate(toTimeZone(window_start, 'America/New_York'))) AS month_start,\n           argMax(close, window_start) AS price,\n           max(toDate(toTimeZone(window_start, 'America/New_York'))) AS last_day\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker IN ('SCHD', 'VOO')\n      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2025-08-01')\n      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-07-31')\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 ticker, month_start\n),\ndv AS (\n    SELECT ticker, ex_dividend_date, cash_amount\n    FROM global_markets.stocks_dividends\n    WHERE ticker IN ('SCHD', 'VOO')\n      AND cash_amount > 0\n      AND ex_dividend_date >= toDate('2024-12-01')\n),\nlatest AS (\n    SELECT px.ticker AS ticker,\n           px.month_start AS month_start,\n           any(px.price) AS price,\n           argMax(dv.cash_amount, dv.ex_dividend_date) AS latest_payment\n    FROM px, dv\n    WHERE px.ticker = dv.ticker\n      AND dv.ex_dividend_date <= px.last_day\n    GROUP BY px.ticker, px.month_start\n)\nSELECT formatDateTime(month_start, '%Y-%m') AS month,\n       formatDateTimeInJodaSyntax(month_start, 'MMMM yyyy') AS month_label,\n       round(sumIf(latest_payment * 4 / price * 100, ticker = 'SCHD'), 2) AS schd_yield_pct,\n       round(sumIf(latest_payment * 4 / price * 100, ticker = 'VOO'), 2) AS voo_yield_pct,\n       round(sumIf(latest_payment * 4 / price * 100, ticker = 'SCHD')\n             - sumIf(latest_payment * 4 / price * 100, ticker = 'VOO'), 2) AS gap_pct\nFROM latest\nGROUP BY month_start\nORDER BY month_start","computed_at":"2026-08-22T04:18:53.360988+00:00","elapsed":1.362066413}