yields
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-30, from us-dividend-tax-for-indian-investors.
| ticker | gross_dps_usd | net_dps_usd | gross_yield_pct | net_yield_pct |
|---|---|---|---|---|
| CVX | 7.05 | 5.29 | 3.44 | 2.58 |
| PG | 4.29 | 3.22 | 2.89 | 2.17 |
| ABBV | 6.83 | 5.12 | 2.58 | 1.94 |
| KO | 2.1 | 1.58 | 2.41 | 1.81 |
| JNJ | 5.28 | 3.96 | 1.97 | 1.48 |
| MSFT | 3.64 | 2.73 | 0.72 | 0.54 |
- Rows × columns
- 6 × 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 | 6 distinct values (ABBV, CVX, JNJ…) | |
gross_dps_usd |
number | 2.1 to 7.05 | US dollars |
net_dps_usd |
number | 1.58 to 5.29 | US dollars |
gross_yield_pct |
number | 0.72 to 3.44 | percent |
net_yield_pct |
number | 0.54 to 2.58 | 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
d.ticker AS ticker,
round(d.gross_dps, 2) AS gross_dps_usd,
round(d.gross_dps * 0.75, 2) AS net_dps_usd,
round(100 * d.gross_dps / p.last_close, 2) AS gross_yield_pct,
round(100 * d.gross_dps * 0.75 / p.last_close, 2) AS net_yield_pct
FROM
(
SELECT
ticker,
sum(amount) AS gross_dps
FROM
(
SELECT
ticker,
any(toFloat64(cash_amount)) AS amount,
any(ex_dividend_date) AS ex_date
FROM global_markets.stocks_dividends
WHERE ticker IN ('JNJ', 'KO', 'PG', 'MSFT', 'ABBV', 'CVX')
AND ex_dividend_date <= today()
AND ex_dividend_date > today() - 420
GROUP BY ticker, id
ORDER BY ex_date DESC
LIMIT 4 BY ticker
)
GROUP BY ticker
) AS d
INNER JOIN
(
SELECT
ticker,
toFloat64(argMax(close, date)) AS last_close
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('JNJ', 'KO', 'PG', 'MSFT', 'ABBV', 'CVX')
AND date > today() - 30
GROUP BY ticker
) AS p ON p.ticker = d.ticker
ORDER BY gross_yield_pct DESC
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.