fiscalite_par_tranche
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-09, from french-dividend-flat-tax-vs-income-tax.
| tmi_bucket | net_pfu_eur | net_bareme_eur | ecart_bareme_moins_pfu_eur | taux_global_pfu_pct | taux_global_bareme_pct | taux_bareme_label |
|---|---|---|---|---|---|---|
| 0 % | 700 | 828 | 128 | 30 | 17.2 | 17,2 |
| 11 % | 700 | 769 | 69 | 30 | 23.1 | 23,1 |
| 30 % | 700 | 668 | -32 | 30 | 33.2 | 33,2 |
| 41 % | 700 | 610 | -90 | 30 | 39 | 39 |
| 45 % | 700 | 589 | -111 | 30 | 41.1 | 41,1 |
- Rows × columns
- 5 × 7
- 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 |
|---|---|---|---|
tmi_bucket |
text | 5 distinct values (0 %, 11 %, 30 %…) | |
net_pfu_eur |
number | every row is 700 | |
net_bareme_eur |
number | 589 to 828 | |
ecart_bareme_moins_pfu_eur |
number | -111 to 128 | |
taux_global_pfu_pct |
number | every row is 30 | percent |
taux_global_bareme_pct |
number | 17.2 to 41.1 | percent |
taux_bareme_label |
text | 5 distinct values (17,2, 23,1, 33,2…) |
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
1000.0 AS brut_eur,
0.128 AS ir_pfu,
0.172 AS prelevements_sociaux,
0.40 AS abattement,
0.068 AS csg_deductible
SELECT
concat(toString(tmi), ' %') AS tmi_bucket,
toInt32(round(brut_eur * (1 - ir_pfu - prelevements_sociaux))) AS net_pfu_eur,
toInt32(round(brut_eur * (1 - prelevements_sociaux)
- brut_eur * (1 - abattement - csg_deductible) * tmi / 100)) AS net_bareme_eur,
toInt32(round(brut_eur * (ir_pfu
- (1 - abattement - csg_deductible) * tmi / 100))) AS ecart_bareme_moins_pfu_eur,
toInt32(round((ir_pfu + prelevements_sociaux) * 100)) AS taux_global_pfu_pct,
round((prelevements_sociaux
+ (1 - abattement - csg_deductible) * tmi / 100) * 100, 1) AS taux_global_bareme_pct,
replaceAll(toString(round((prelevements_sociaux
+ (1 - abattement - csg_deductible) * tmi / 100) * 100, 1)), '.', ',') AS taux_bareme_label
FROM
(
SELECT arrayJoin([0, 11, 30, 41, 45]) AS tmi
)
ORDER BY tmi
Travaillez ces données dans votre assistant IA
S'ouvre prêt à interroger, avec les données de cette page. Gratuit, sans compte.