{"slug":"dividend-capture-strategy","qid":"capture_by_name","label":"Overnight decline vs dividend paid: ten large payers, 12 ex-dividend dates each, Jul 2023 to Jun 2026","post_title":"Does Dividend Capture Actually Work?","post_url":"/blog/dividend-capture-strategy#q-capture_by_name","columns":["ticker","ex_dates","avg_dividend_usd","avg_overnight_decline_usd","decline_per_dividend_ratio"],"rows":[{"ticker":"KO","ex_dates":12,"avg_dividend_usd":0.497,"avg_overnight_decline_usd":0.544,"decline_per_dividend_ratio":1.1},{"ticker":"MMM","ex_dates":12,"avg_dividend_usd":0.924,"avg_overnight_decline_usd":1.009,"decline_per_dividend_ratio":1.09},{"ticker":"MCD","ex_dates":12,"avg_dividend_usd":1.738,"avg_overnight_decline_usd":1.786,"decline_per_dividend_ratio":1.03},{"ticker":"VZ","ex_dates":12,"avg_dividend_usd":0.676,"avg_overnight_decline_usd":0.685,"decline_per_dividend_ratio":1.01},{"ticker":"PEP","ex_dates":12,"avg_dividend_usd":1.365,"avg_overnight_decline_usd":1.313,"decline_per_dividend_ratio":0.96},{"ticker":"JNJ","ex_dates":12,"avg_dividend_usd":1.256,"avg_overnight_decline_usd":1.172,"decline_per_dividend_ratio":0.93},{"ticker":"XOM","ex_dates":12,"avg_dividend_usd":0.98,"avg_overnight_decline_usd":0.8,"decline_per_dividend_ratio":0.82},{"ticker":"CVX","ex_dates":12,"avg_dividend_usd":1.662,"avg_overnight_decline_usd":1.331,"decline_per_dividend_ratio":0.8},{"ticker":"MRK","ex_dates":12,"avg_dividend_usd":0.8,"avg_overnight_decline_usd":0.57,"decline_per_dividend_ratio":0.71},{"ticker":"PG","ex_dates":12,"avg_dividend_usd":1.014,"avg_overnight_decline_usd":-0.22,"decline_per_dividend_ratio":-0.22}],"shape":"table","sql":"WITH tk AS (SELECT ['KO','JNJ','PG','XOM','CVX','VZ','MRK','PEP','MCD','MMM'] AS t),\npx AS (\n    SELECT ticker,\n           date,\n           toFloat64(open) AS day_open,\n           lagInFrame(toFloat64(close)) OVER (PARTITION BY ticker ORDER BY date\n                                              ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close\n    FROM global_markets.stocks_daily_aggs\n    WHERE ticker IN (SELECT arrayJoin(t) FROM tk)\n      AND date BETWEEN toDate('2023-06-01') AND toDate('2026-06-30')\n      AND open > 0 AND close > 0\n),\ndv AS (\n    SELECT ticker, ex_dividend_date AS d, max(cash_amount) AS div_amount\n    FROM global_markets.stocks_dividends\n    WHERE ticker IN (SELECT arrayJoin(t) FROM tk)\n      AND distribution_type = 'recurring'\n      AND cash_amount > 0\n      AND ex_dividend_date BETWEEN toDate('2023-07-01') AND toDate('2026-06-30')\n    GROUP BY ticker, d\n)\nSELECT px.ticker AS ticker,\n       count() AS ex_dates,\n       round(avg(dv.div_amount), 3) AS avg_dividend_usd,\n       round(avg(px.prev_close - px.day_open), 3) AS avg_overnight_decline_usd,\n       round(avg(px.prev_close - px.day_open) / avg(dv.div_amount), 2) AS decline_per_dividend_ratio\nFROM px\nINNER JOIN dv ON px.ticker = dv.ticker AND px.date = dv.d\nWHERE px.prev_close > 0\nGROUP BY px.ticker\nORDER BY decline_per_dividend_ratio DESC","computed_at":"2026-08-01T02:21:38.096524+00:00","elapsed":0.098212599}