rendement_net_cto
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-03, from us-dividend-tax-for-french-investors.
| ticker | rendement_brut_pct | apres_retenue_us_pct | net_pfu_pct |
|---|---|---|---|
| MO | 6.37 | 5.41 | 4.32 |
| PFE | 6.19 | 5.26 | 4.19 |
| VZ | 6.09 | 5.17 | 4.13 |
| T | 4.57 | 3.88 | 3.1 |
| CVX | 3.41 | 2.9 | 2.31 |
| IBM | 3.03 | 2.57 | 2.05 |
| XOM | 2.51 | 2.14 | 1.7 |
| KO | 2.45 | 2.08 | 1.66 |
- Rows × columns
- 8 × 4
- 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 | 8 distinct values (CVX, IBM, KO…) | |
rendement_brut_pct |
number | 2.45 to 6.37 | percent |
apres_retenue_us_pct |
number | 2.08 to 5.41 | percent |
net_pfu_pct |
number | 1.66 to 4.32 | 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.
WITH
versements AS
(
SELECT
ticker,
ex_dividend_date,
max(toFloat64(cash_amount)) AS montant
FROM global_markets.stocks_dividends
WHERE ticker IN ('T', 'VZ', 'MO', 'XOM', 'CVX', 'KO', 'PFE', 'IBM')
AND ticker NOT IN ('SPCX')
AND currency = 'USD'
AND ex_dividend_date <= today()
GROUP BY ticker, ex_dividend_date
ORDER BY ticker, ex_dividend_date DESC
LIMIT 4 BY ticker
),
douze_mois AS
(
SELECT
ticker,
sum(montant) AS dividende_12m,
count() AS nb_versements
FROM versements
GROUP BY ticker
HAVING nb_versements = 4
),
cours AS
(
SELECT
ticker,
argMax(toFloat64(close), date) AS dernier_cours
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('T', 'VZ', 'MO', 'XOM', 'CVX', 'KO', 'PFE', 'IBM')
AND date >= today() - 30
GROUP BY ticker
)
SELECT
d.ticker AS ticker,
round(100 * d.dividende_12m / c.dernier_cours, 2) AS rendement_brut_pct,
round(100 * d.dividende_12m * 0.85 / c.dernier_cours, 2) AS apres_retenue_us_pct,
round(100 * d.dividende_12m * 0.678 / c.dernier_cours, 2) AS net_pfu_pct
FROM douze_mois AS d
INNER JOIN cours AS c ON c.ticker = d.ticker
ORDER BY rendement_brut_pct DESC
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.