pay_calendar
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-18, from upcoming-dividend-payment-dates.
| ticker | pays_on | ex_on | record_on | cash_per_share | ex_to_pay_days | market_cap_bn | paid_in |
|---|---|---|---|---|---|---|---|
| NVDA | Thu Oct 1 | 2026-09-10 | 2026-09-10 | 0.25 | 21 | 5296.4 | week after next |
| META | Mon Sep 28 | 2026-09-21 | 2026-09-21 | 0.525 | 7 | 1738.2 | week after next |
| AVGO | Wed Sep 30 | 2026-09-21 | 2026-09-21 | 0.65 | 9 | 1657.9 | week after next |
| BAC | Fri Sep 25 | 2026-09-04 | 2026-09-04 | 0.32 | 21 | 406.8 | next week |
| KO | Thu Oct 1 | 2026-09-15 | 2026-09-15 | 0.53 | 16 | 378.9 | week after next |
| UNH | Tue Sep 22 | 2026-09-14 | 2026-09-14 | 2.32 | 8 | 336.8 | next week |
| GS | Tue Sep 29 | 2026-09-01 | 2026-09-01 | 5 | 28 | 277 | week after next |
| QCOM | Thu Sep 24 | 2026-09-03 | 2026-09-03 | 0.92 | 21 | 201.6 | next week |
| GILD | Tue Sep 29 | 2026-09-15 | 2026-09-15 | 0.82 | 14 | 187.1 | week after next |
| PEP | Wed Sep 30 | 2026-09-04 | 2026-09-04 | 1.48 | 26 | 182.4 | week after next |
| UNP | Wed Sep 30 | 2026-08-31 | 2026-08-31 | 1.42 | 30 | 167.8 | week after next |
| BLK | Tue Sep 22 | 2026-09-08 | 2026-09-08 | 5.73 | 14 | 163.2 | next week |
| NEM | Mon Sep 28 | 2026-09-03 | 2026-09-03 | 0.26 | 25 | 131.1 | week after next |
| PLD | Wed Sep 30 | 2026-09-16 | 2026-09-16 | 1.07 | 14 | 128.5 | week after next |
| BKNG | Wed Sep 30 | 2026-09-11 | 2026-09-11 | 0.42 | 19 | 128.1 | week after next |
| GLW | Tue Sep 29 | 2026-08-31 | 2026-08-31 | 0.28 | 29 | 127.3 | week after next |
| LMT | Fri Sep 25 | 2026-09-01 | 2026-09-01 | 3.45 | 24 | 124.2 | next week |
| ADP | Thu Oct 1 | 2026-09-11 | 2026-09-11 | 1.7 | 20 | 108.2 | week after next |
| MCK | Thu Oct 1 | 2026-09-01 | 2026-09-01 | 0.94 | 30 | 102.5 | week after next |
| CME | Fri Sep 25 | 2026-09-09 | 2026-09-09 | 1.3 | 16 | 97.5 | next week |
| TT | Wed Sep 30 | 2026-09-04 | 2026-09-04 | 1.05 | 26 | 93.1 | week after next |
| VRT | Thu Sep 24 | 2026-09-14 | 2026-09-14 | 0.0625 | 10 | 93 | next week |
| HCA | Wed Sep 30 | 2026-09-16 | 2026-09-16 | 0.78 | 14 | 92.9 | week after next |
| ELV | Fri Sep 25 | 2026-09-10 | 2026-09-10 | 1.72 | 15 | 89.8 | next week |
| WMB | Mon Sep 28 | 2026-09-11 | 2026-09-11 | 0.525 | 17 | 87.8 | week after next |
| MAR | Wed Sep 30 | 2026-08-20 | 2026-08-20 | 0.73 | 41 | 87.1 | week after next |
| ICE | Wed Sep 30 | 2026-09-16 | 2026-09-16 | 0.52 | 14 | 86.1 | week after next |
| WM | Fri Sep 25 | 2026-09-11 | 2026-09-11 | 0.945 | 14 | 85.3 | next week |
| SU | Fri Sep 25 | 2026-09-04 | 2026-09-04 | 0.6 | 21 | 81.3 | next week |
| TRV | Wed Sep 30 | 2026-09-10 | 2026-09-10 | 1.25 | 20 | 79.2 | week after next |
- Rows × columns
- 30 × 8
- Period covered
- to
- 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 | 30 distinct values (ADP, AVGO, BAC…) | |
pays_on |
text | 7 distinct values (Fri Sep 25, Mon Sep 28, Thu Oct 1…) | |
ex_on |
date | 2026-08-20 to 2026-09-21 | |
record_on |
date | 2026-08-20 to 2026-09-21 | |
cash_per_share |
number | 0.0625 to 5.73 | |
ex_to_pay_days |
number | 7 to 41 | |
market_cap_bn |
number | 79.2 to 5,296.4 | |
paid_in |
text | 2 distinct values (next week, week after next) |
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.
the exact SQL behind every number
SELECT
d.ticker AS ticker,
concat(formatDateTime(d.pay_date, '%a %b '), toString(toDayOfMonth(d.pay_date))) AS pays_on,
toString(d.ex_dividend_date) AS ex_on,
if(ifNull(d.record_date > toDate('2000-01-01'), 0), toString(d.record_date), '') AS record_on,
d.cash_per_share AS cash_per_share,
dateDiff('day', d.ex_dividend_date, d.pay_date) AS ex_to_pay_days,
round(toFloat64(r.latest_market_cap) / 1e9, 1) AS market_cap_bn,
multiIf(d.pay_date < toMonday(today()) + 7, 'this week',
d.pay_date < toMonday(today()) + 14, 'next week',
'week after next') AS paid_in
FROM
(
SELECT
ticker,
pay_date,
max(ex_dividend_date) AS ex_dividend_date,
max(record_date) AS record_date,
round(toFloat64(max(cash_amount)), 4) AS cash_per_share
FROM global_markets.stocks_dividends
WHERE pay_date >= today()
AND pay_date < today() + 14
AND cash_amount > 0
AND ticker NOT IN ('SPCX')
GROUP BY ticker, pay_date
) AS d
INNER JOIN
(
SELECT
ticker,
argMax(market_cap, date) AS latest_market_cap
FROM global_markets.stocks_ratios
WHERE date >= today() - 200
AND market_cap > 0
GROUP BY ticker
) AS r ON r.ticker = d.ticker
WHERE d.ex_dividend_date < d.pay_date
ORDER BY r.latest_market_cap DESC, d.pay_date, d.ticker
LIMIT 30
Run your own version of this
The same 22 years of US equities and 12 years of options data are queryable in SQL or plain English. A free account runs 100 queries a day and takes no card.
More from this analysisupcoming-dividend-payment-dates
sector_gap
table 7×5
→
pay_days
series 12×4
→
gap_buckets
ranking 6×4
→
The 2s10s spread, every print of the half
table 124×2
→
The 2s10s spread, every print of the half
table 124×2
→
Every half-year since 1976: the 2y and 10y change, the twist between them, and the half's lowest 2s10s print
table 100×7
→
See all 2,358 queries →