Income and wealth percentile by country
Accounting for informal economy, remittances, and illicit money flows.Pick a country, type your annual gross income or net worth, and see exactly where you sit on the curve.
Type a value to see where you stand.
Top —
Average
—
Median
—
Top 1%
—
Top 0.1%
—
Average income across selected countries
A quick view across major economies. Click any card to switch the chart to that country.
Income and wealth distribution by country
Detailed pages for 40 major economies. Click any country to open its dedicated page.
How the numbers are calculated.
Behind every percentile on this page is a per-country statistical model fitted to published distribution thresholds, then adjusted for informal economic activity, sanctioned currency systems, and missing source coverage. This page documents the model, the corrections, and what they cannot capture. Treat the figures as directional, not surgical.
Where the data comes from.
Four upstream sources, each contributing one piece of the picture. Coverage is uniform across all 217 economies on the page.
World Inequality Database
Per-country thresholds for pretax national income per adult (tptincj992) and net household wealth per adult (thwealj992). Equal-split adults: resources divided equally within couples. Reference year 2024 for almost every country.
World Bank GDP & FX
GDP per capita (NY.GDP.PCAP.CD) and the implied USD-per-local rate derived from PCAP.CD ÷ PCAP.CN. The implied rate is more reliable than consumer feeds for sanctioned and parallel-market currencies.
WB Informal Economy DB
Informal output as a share of GDP (Elgin / Kose / Ohnsorge / Yu, 2021). DGE and MIMIC measures averaged. Used as the input that scales the informal-economy correction, not as an output.
open.er-api.com & ECB
Daily FX rates as fallback for currencies the World Bank does not cover. ECB rates from frankfurter.dev as a second fallback. Single snapshot, refreshed annually.
The statistical model.
A log-normal body for the bulk of the distribution, patched onto a Pareto tail above the 95th percentile. Same structure for income and wealth. All parameters stored in local currency.
Log-normal, anchored at the median.
The median is matched by construction: μ = ln(p50). Spread is the median of per-percentile σ estimates implied by p25, p75, p90, p95, anchored at μ. This is robust to outliers in any single anchor.
F(x) = LogNormal(μ, σ).cdf(x) if x < x_min F(x) = 1 − 0.05 · (x_min / x)^α if x ≥ x_min
Pareto patch above p95.
The Pareto exponent α is calibrated so the survival function above x_min = source p95 matches the published p99 and p99.9. Median of multiple anchor-implied alphas. The 0.05 in the patched CDF is the survival probability at x_min, anchoring the join.
Wealth distributions have substantial near-zero or negative mass at the bottom. The fitter excludes non-positive thresholds from the body fit. Validator emits warnings (not failures) when wealth p90 fit drifts from source.
Tier 1 — Informal-economy correction.
Pretax-individual income from WID under-reports in countries with large informal sectors. Tax records miss cash and self-employment; surveys under-cover the bottom and the very top. Tier 1 shifts the curve upward, calibrated by published informal share. The correction is one-sided: never downward.
- Trusted ratio. Compute
ratio = median(WID_median_USD ÷ GDP_per_capita_USD)across the subset of countries with informal share ≤ 12% AND GDP per capita ≥ $15k. These are the well-measured peers. - GDP-implied median. For each country:
implied_USD = ratio × GDP_per_capita_USD. - Gap.
gap = implied_USD ÷ measured_USD. Ifgap ≤ 1.05, no correction. - Blend weight.
α = clip((informal_share − 5) ÷ 55, 0, 1). Switzerland (8%) ≈ 0.05; Bolivia (60%) = 1.0. - Capped factor.
factor = 1 + α · (min(gap, 2.0) − 1.0). Never more than 2×. - Apply.
μshifts bylog(factor).x_minand every threshold scale byfactor.σandαare unchanged. Shape preserved, level shifted.
Per-dimension trusted ratios: wealth median is a stock (3–5× of GDP per capita on average) while income median is a flow (roughly 0.85×). Every corrected country carries an informal_correction block in its JSON exposing all inputs (informal share, gap, α, factor, original WID median, GDP-implied median).
Tier 2 corrections, and imputation for thin data.
Tier 1 is gentle. Some countries need stronger intervention because their primary measurement is fundamentally broken, or because no usable thresholds exist at all.
For sanctioned states & conflict zones.
After Tier 1, if the post-correction median is still off GDP-implied by more than 3× in either direction, the median is forced to GDP-implied using the same shift-everything mechanism.
- Trigger:
measured / implied > 3or< 1/3 - Recorded as:
gdp_sanity_correctionblock - Tier 1 block kept, marked
superseded_by - Affects: AS, MP, XK, CU, IR, SY, plus a few small territories with WID extrapolation artifacts
For countries WID does not cover.
A small set of micro-states have no usable WID thresholds. The shape is borrowed from regional peers; the level is GDP-anchored.
- Peers: same WB income group, prefer same WB region if 3+ peers exist
- Shape:
σ,α= median of peer fitted shapes - Level:
μ = log(target_GDP × peer_median_ratio) - Flagged
imputed: trueper dimension, with confidence label (high/medium/low based on peer count)
What we check before publishing.
Per-country sanity checks plus cross-country audits. The audit's job is to surface things a careful reviewer would want to look at. It does not gate the build — final judgment is human.
13 ✓/✗ checks.
μ,σreal,σ > 0,α > 1- Fitted median within 5% of source p50
- Fitted p90 within 8% of source p90 (warning)
- Patched p99 within 5% of source p99 (warning)
- Percentile table strictly monotonic
- Sources list non-empty
7 plausibility tests.
- USD-converted income median rank vs GDP-per-capita rank
σin plausible range per dimensionαin plausible range per dimension- Wealth-to-income median ratio in [0.3, 8.0]
- Imputation peer count
σvs Gini coefficient (when Gini available)- Last-updated freshness
What this model cannot do.
Honest limits matter more than confident-sounding numbers. The figures are directional comparisons, not personal financial guidance.
- Pretax national income includes pensions, capital income, and undistributed corporate profits. It is not the same as net-of-tax salary.
- Wealth bottom is heavy with debt; the fit between p10 and p25 is approximate.
- The informal-economy correction is a level shift, not a shape change. Distributional effects of informality are not modelled.
- Sanctioned and conflict-zone country data has irreducible quality issues. Tier 2 anchors them to GDP-implied; treat as directional only.
- Currency conversion uses a single FX snapshot. Annual refresh is recommended; cross-currency comparisons can drift between snapshots.
- Cohort dimensions (age, sector, region) are out of scope. So is PPP-USD as a third stored representation. Both are deferred.
Last reviewed 2026. The full per-country JSON, including raw thresholds and every correction block, is published alongside the page. The model is open: the math here is everything.