Median dividend yield by band, gross and net of US withholding: US payers over $1B
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-10-04, from Dividend Withholding Tax for Non-US Investors.
| yield_band | payers | gross_yield_pct | net_yield_15_pct | net_yield_30_pct | withheld_points_30_pct |
|---|---|---|---|---|---|
| under 1.5% | 461 | 0.77 | 0.65 | 0.54 | 0.23 |
| 1.5-3% | 339 | 2.28 | 1.94 | 1.6 | 0.68 |
| 3-5% | 228 | 3.71 | 3.15 | 2.6 | 1.11 |
| 5% and up | 164 | 6.79 | 5.77 | 4.75 | 2.04 |
- Rows × columns
- 4 × 6
- 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 |
|---|---|---|---|
yield_band |
text | 4 distinct values (1.5-3%, 3-5%, 5% and up…) | |
payers |
number | 164 to 461 | |
gross_yield_pct |
number | 0.77 to 6.79 | percent |
net_yield_15_pct |
number | 0.65 to 5.77 | percent |
net_yield_30_pct |
number | 0.54 to 4.75 | percent |
withheld_points_30_pct |
number | 0.23 to 2.04 | percent |
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.
SELECT multiIf(dividend_yield * 100 >= 5, '5% and up',
dividend_yield * 100 >= 3, '3-5%',
dividend_yield * 100 >= 1.5, '1.5-3%',
'under 1.5%') AS yield_band,
count() AS payers,
round(quantileDeterministic(0.5)(toFloat64(dividend_yield) * 100, cityHash64(ticker)), 2) AS gross_yield_pct,
round(quantileDeterministic(0.5)(toFloat64(dividend_yield) * 100, cityHash64(ticker)) * 0.85, 2) AS net_yield_15_pct,
round(quantileDeterministic(0.5)(toFloat64(dividend_yield) * 100, cityHash64(ticker)) * 0.70, 2) AS net_yield_30_pct,
round(quantileDeterministic(0.5)(toFloat64(dividend_yield) * 100, cityHash64(ticker)) * 0.30, 2) AS withheld_points_30_pct
FROM global_markets.stocks_ratios
WHERE date = (SELECT max(date) FROM global_markets.stocks_ratios)
AND price >= 5
AND market_cap >= 1000000000
AND dividend_yield > 0
GROUP BY yield_band
ORDER BY gross_yield_pct
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.