payout_chain
Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-09-25, from us-dividend-frequency-for-russian-investors.
| ticker | payouts_24m | days_decl_to_ex | days_ex_to_record | days_ex_to_pay |
|---|---|---|---|---|
| XOM | 8 | 14 | 0 | 26 |
| PG | 8 | 10 | 0 | 25 |
| PEP | 8 | 30 | 0 | 25 |
| CVX | 8 | 18 | 0 | 22 |
| MRK | 8 | 48 | 0 | 22 |
| MSFT | 8 | 72 | 0 | 21 |
| KO | 8 | 46 | 0 | 17 |
| HD | 8 | 14 | 0 | 14 |
| JNJ | 8 | 42 | 0 | 14 |
| AAPL | 8 | 11 | 0 | 3 |
- Rows × columns
- 10 × 5
- Computed
- Completeness
- No missing values
- Source
- US exchange, SIP and OPRA market data
- Licence
- Strasmore terms · free, no signup
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
ticker |
text | 10 distinct values (AAPL, CVX, HD…) | |
payouts_24m |
number | every row is 8 | |
days_decl_to_ex |
number | 10 to 72 | |
days_ex_to_record |
number | every row is 0 | |
days_ex_to_pay |
number | 3 to 26 |
Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.
Run it yourself
This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.
WITH chain AS
(
SELECT
ticker,
id,
any(declaration_date) AS decl_date,
any(ex_dividend_date) AS ex_date,
any(record_date) AS rec_date,
any(pay_date) AS pay_date
FROM global_markets.stocks_dividends
WHERE ticker IN ('AAPL', 'MSFT', 'KO', 'JNJ', 'PG', 'XOM', 'CVX', 'PEP', 'HD', 'MRK')
AND ex_dividend_date >= today() - 730
AND ex_dividend_date < today()
AND cash_amount > 0
GROUP BY ticker, id
)
SELECT
ticker,
count() AS payouts_24m,
toUInt16(quantileExact(0.5)(dateDiff('day', decl_date, ex_date))) AS days_decl_to_ex,
toUInt16(quantileExact(0.5)(dateDiff('day', ex_date, rec_date))) AS days_ex_to_record,
toUInt16(quantileExact(0.5)(dateDiff('day', ex_date, pay_date))) AS days_ex_to_pay
FROM chain
WHERE decl_date > toDate('2000-01-01')
AND rec_date > toDate('2000-01-01')
AND pay_date > toDate('2000-01-01')
GROUP BY ticker
ORDER BY days_ex_to_pay DESC
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.