Methodology
Step 1 — public-source distributions
For each metric and each country we support, we maintain a small table of (percentile, value) pairs anchored at p1, p5, p10, p25, p50, p75, p90, p95, and p99. These anchor values come from public-data sources (US BLS, US Census ACS, US CDC NHANES, OECD, HUD, OWID — see data sources).
Step 2 — interpolation
When you enter a value, we find the two anchor points that bracket it and linearly interpolate to compute your percentile. Below the lowest anchor we extrapolate cautiously toward 0%; above the highest we cap at 99% — we never claim 100% or 0%.
Step 3 — country and age fallback
If you tell us your country and we have explicit data for it, we use that distribution. If we don't, we fall back to US data (which we have most coverage for). Same for age bands — explicit by-age distributions exist for some metrics (mostly salary in the US); others use the all-ages distribution.
What we don't claim
- That our number is accurate to the decimal point. The result is an approximation good for a casual comparison.
- That the underlying distribution is exactly what your local cohort looks like. National-average data is what's broadly available.
- That self-reported data we collect is unbiased — over time we'll blend our user submissions with the public-source baseline (see "self-learning" below) but we'll always be honest about which is which.
Self-learning blend
Once a particular (metric, age-band, country) bucket has at least 200 user submissions, we begin blending the user-derived distribution with the public-source one — weight on user data ramps linearly from 0% at 200 submissions to 100% at 5000. The blended values live in a separate metric_buckets_blend table; we'll surface "blended" vs "public-source-only" badges as we roll this out.
Want a metric we don't have?
Email hi@howtypicalami.com with the metric, the unit, and any public-source distribution you can point us at.