{"slug":"dividend-capture-strategy","qid":"payout_vs_noise","label":"Quarterly dividend as a share of price vs typical daily move: ten large payers, Jul 2023 to Jun 2026","post_title":"Does Dividend Capture Actually Work?","post_url":"/blog/dividend-capture-strategy#q-payout_vs_noise","columns":["ticker","dividend_pct_of_price","avg_daily_move_pct","p95_daily_move_pct"],"rows":[{"ticker":"VZ","dividend_pct_of_price":1.64,"avg_daily_move_pct":1.01,"p95_daily_move_pct":2.95},{"ticker":"CVX","dividend_pct_of_price":1.05,"avg_daily_move_pct":1.04,"p95_daily_move_pct":2.67},{"ticker":"PEP","dividend_pct_of_price":0.86,"avg_daily_move_pct":0.91,"p95_daily_move_pct":2.43},{"ticker":"XOM","dividend_pct_of_price":0.84,"avg_daily_move_pct":1.11,"p95_daily_move_pct":2.97},{"ticker":"MRK","dividend_pct_of_price":0.76,"avg_daily_move_pct":1.1,"p95_daily_move_pct":3.07},{"ticker":"KO","dividend_pct_of_price":0.74,"avg_daily_move_pct":0.75,"p95_daily_move_pct":1.93},{"ticker":"MMM","dividend_pct_of_price":0.73,"avg_daily_move_pct":1.23,"p95_daily_move_pct":3.13},{"ticker":"JNJ","dividend_pct_of_price":0.72,"avg_daily_move_pct":0.8,"p95_daily_move_pct":2.15},{"ticker":"PG","dividend_pct_of_price":0.64,"avg_daily_move_pct":0.82,"p95_daily_move_pct":2.31},{"ticker":"MCD","dividend_pct_of_price":0.59,"avg_daily_move_pct":0.82,"p95_daily_move_pct":2.17}],"shape":"ranking","sql":"WITH tk AS (SELECT ['KO','JNJ','PG','XOM','CVX','VZ','MRK','PEP','MCD','MMM'] AS t),\nr AS (\n    SELECT ticker,\n           date,\n           toFloat64(close) AS close,\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-07-01') AND toDate('2026-06-30')\n      AND close > 0\n),\nvol AS (\n    SELECT ticker,\n           round(100 * avg(abs(close / prev_close - 1)), 2) AS avg_daily_move_pct,\n           round(quantileDeterministic(0.95)(100 * abs(close / prev_close - 1), cityHash64(date)), 2) AS p95_daily_move_pct,\n           avg(close) AS avg_close\n    FROM r\n    WHERE prev_close > 0\n    GROUP BY ticker\n),\ndv AS (\n    SELECT ticker, avg(cash_amount) AS avg_dividend_usd\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\n)\nSELECT vol.ticker AS ticker,\n       round(100 * dv.avg_dividend_usd / vol.avg_close, 2) AS dividend_pct_of_price,\n       vol.avg_daily_move_pct AS avg_daily_move_pct,\n       vol.p95_daily_move_pct AS p95_daily_move_pct\nFROM vol\nINNER JOIN dv ON vol.ticker = dv.ticker\nORDER BY dividend_pct_of_price DESC","computed_at":"2026-08-01T02:21:38.465173+00:00","elapsed":0.093903835}