Does Dividend Capture Actually Work?
Quarterly dividend as a share of price vs typical daily move: ten large payers, Jul 2023 to Jun 2026ranking ·
2026-08-01 · 10×4
Coca-Cola (KO): overnight decline vs dividend on each ex-dividend date, Sep 2023 to Jun 2026series ·
2026-08-01 · 12×4
Ex-dividend openings sorted by decline as a multiple of the dividend: US quarterly payers, Jan 2024 to Jun 2026ranking ·
2026-08-01 · 5×3
Overnight decline vs dividend paid: ten large payers, 12 ex-dividend dates each, Jul 2023 to Jun 2026table ·
2026-08-01 · 10×5
Quarterly dividend as a share of price vs typical daily move: ten large payers, Jul 2023 to Jun 2026
Quarterly dividend as a share of price vs typical daily move: ten large payers, Jul 2023 to Jun 2026
| ticker | dividend_pct_of_price | avg_daily_move_pct | p95_daily_move_pct |
|---|---|---|---|
| VZ | 1.64 | 1.01 | 2.95 |
| CVX | 1.05 | 1.04 | 2.67 |
| PEP | 0.86 | 0.91 | 2.43 |
| XOM | 0.84 | 1.11 | 2.97 |
| MRK | 0.76 | 1.1 | 3.07 |
| KO | 0.74 | 0.75 | 1.93 |
| MMM | 0.73 | 1.23 | 3.13 |
| JNJ | 0.72 | 0.8 | 2.15 |
| PG | 0.64 | 0.82 | 2.31 |
| MCD | 0.59 | 0.82 | 2.17 |
the exact SQL behind every number
WITH tk AS (SELECT ['KO','JNJ','PG','XOM','CVX','VZ','MRK','PEP','MCD','MMM'] AS t),
r AS (
SELECT ticker,
date,
toFloat64(close) AS close,
lagInFrame(toFloat64(close)) OVER (PARTITION BY ticker ORDER BY date
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close
FROM global_markets.stocks_daily_aggs
WHERE ticker IN (SELECT arrayJoin(t) FROM tk)
AND date BETWEEN toDate('2023-07-01') AND toDate('2026-06-30')
AND close > 0
),
vol AS (
SELECT ticker,
round(100 * avg(abs(close / prev_close - 1)), 2) AS avg_daily_move_pct,
round(quantileDeterministic(0.95)(100 * abs(close / prev_close - 1), cityHash64(date)), 2) AS p95_daily_move_pct,
avg(close) AS avg_close
FROM r
WHERE prev_close > 0
GROUP BY ticker
),
dv AS (
SELECT ticker, avg(cash_amount) AS avg_dividend_usd
FROM global_markets.stocks_dividends
WHERE ticker IN (SELECT arrayJoin(t) FROM tk)
AND distribution_type = 'recurring'
AND cash_amount > 0
AND ex_dividend_date BETWEEN toDate('2023-07-01') AND toDate('2026-06-30')
GROUP BY ticker
)
SELECT vol.ticker AS ticker,
round(100 * dv.avg_dividend_usd / vol.avg_close, 2) AS dividend_pct_of_price,
vol.avg_daily_move_pct AS avg_daily_move_pct,
vol.p95_daily_move_pct AS p95_daily_move_pct
FROM vol
INNER JOIN dv ON vol.ticker = dv.ticker
ORDER BY dividend_pct_of_price DESC
More from this analysisDoes Dividend Capture Actually Work?
Ex-dividend openings sorted by decline as a multiple of the dividend: US quarterly payers, Jan 2024 to Jun 2026
ranking 5×3
→
Coca-Cola (KO): overnight decline vs dividend on each ex-dividend date, Sep 2023 to Jun 2026
series 12×4
→
Overnight decline vs dividend paid: ten large payers, 12 ex-dividend dates each, Jul 2023 to Jun 2026
table 10×5
→
How long after the ex-date the cash actually arrives
ranking 10×3
→
See all 2,173 queries →