Methodology

How every 0–100 score is built, and why you can trust it — or see exactly where you shouldn’t.

The one rule: no fabricated data

Every score traces to a real, citable source. We never fabricate, guess, or “estimate to fill a gap”. If there is no source for a country, we show “no data” — never a made-up number, and never a fake zero (a zero is a real, worst-case score, not a stand-in for “unknown”).

We don’t claim to be “100% reliable”. Instead we make the provenance visible and let you judge: every score, everywhere on the site, shows its confidence tier and is one click from the raw value, the source, the dates, and the exact formula that produced it. Reliability here means transparency, not false precision.

Where a concept can’t be measured honestly, we reframe it to what is sourced, or we leave it out — rather than shipping a number that looks authoritative but isn’t.

How a score is built

  1. 1Source. A named organisation publishes an indicator (e.g. the World Bank's GDP per capita). We snapshot it with its retrieval date and license.
  2. 2Raw value. We store the exact value the source reported, in its native unit, for each country that has one. Countries without a value are simply absent.
  3. 3Direction. We record whether higher is better or worse, so the final scale is consistent (see below).
  4. 4Normalize. A pure, tested engine maps the raw value to 0–100 using one of four documented methods, storing the exact parameters used.
  5. 5Score. The result is a 0–100 score where 100 = best/most, reconstructable by hand from the stored raw value + parameters.

Confidence tiers

Every metric carries a confidence tier, shown as a badge wherever its score appears. Tiers C and D always render an additional visible caution.

  • Tier AOfficial / robust

    Official or methodologically robust source with broad coverage and published methodology (e.g. World Bank, UN, WHO, Transparency International).

  • Tier BReputable / modeled

    Reputable but crowd-sourced or modeled source (e.g. Numbeo, Ookla, EIU indices). Solid, but read with the method in mind.

  • Tier CSurvey / proxyshows a caution

    Survey-based, patchy, or proxy metric. Indicative only — coverage gaps and methodology limits are significant. Not a definitive ranking.

  • Tier DNovelty / low reliabilityshows a caution

    Novelty or weak-methodology metric. Low reliability — shown for interest only, with a single source. Do not treat as authoritative.

Normalization methods

Each metric uses whichever method fits its data; the method and its exact parameters are stored on every observation, so any score is reconstructable.

  • native_rescaleNative rescaleabsolute

    The indicator is already a meaningful 0–N index (e.g. CPI 0–100, HDI 0–1), so we keep it on its own published scale — the WorldScore value equals the source's, just mapped to 0–100. Absolute and directly comparable across years.

  • minmaxMin–maxrelative to dataset

    Linear rescale between the lowest and highest values in the current dataset: lowest → 0, highest → 100. Simple and interpretable, but the endpoints are the current poorest/richest country, so the score is relative to today's country set.

  • log_minmaxLog + min–maxrelative to dataset

    For heavily right-skewed indicators (GDP per capita, population): take the natural log, then min–max. This stops a few extreme values from flattening everyone else near 0. Relative to the dataset, on a log scale.

  • percentilePercentile rankrelative to dataset

    The score is the country's position in the distribution (e.g. "safer than 90% of countries"). Robust to extreme outliers, which makes it well-suited to skewed crime rates — but it is a rank, not an absolute level, and is relative to the country set.

Relative scores move. For dataset-relative methods (min–max, log + min–max, percentile), 0 and 100 are the current worst/best country. The same raw value can map to a different score if the country set or the extremes change, so compare raw values across years, not scores. The stored parameters record exactly which min/max were used.

Trend sparklines on country pages plot each year's score normalized within that year's own dataset (its own min/max, stored per row) — so the movement is real, not an artefact of today's extremes.

Level score vs percentile — what compares

A metric's native (level) score only means something within that metric. A min–max metric and a percentile metric both produce 0–100 numbers, but they measure different things — an absolute level vs a rank position — so a level score of 70 on one metric and 36 on another cannot be read as “better on the first”. Comparing level scores across metrics is a mistake.

So every observation also carries a percentile rank: the country's position (0–100) among all countries with data for that metric, direction applied. Because it's always “where you rank among countries”, it is comparable across metrics.

  • Single-metric views (a metric's ranking page) show the level score — that's where its own scale is meaningful.
  • Cross-metric views (the country page, and the Compare radar/table/gaps) use percentile rank, so nothing misleading is put on one axis.

Both numbers are in every “How is this calculated?” drawer and in the API/MCP payload (score and percentileRank).

Evaluative vs descriptive metrics

Most metrics are evaluative — higher genuinely is better (less corruption, longer life expectancy). But some are descriptive: neutral magnitudes where higher is not better or worse — total population, population density, median age, fertility, urbanization, foreign-born share, international tourist arrivals, and the projected population change to 2050. Spain's projected −6% is not a failing grade; Monaco's density does not make it a “better country” than Canada.

Because forcing those onto a “100 = best” scale would invite false conclusions, descriptive metrics are handled differently:

  • a distinct neutral (indigo) colour and a “Descriptive” badge, never the green→yellow value scale;
  • excluded from the Compare radar and “biggest gaps” (shown in a separate, clearly-labelled section) — so “population 100” is never plotted next to “corruption 100”;
  • scale_meaning phrased as “100 = highest … — descriptive, not better or worse”, and the API/MCP carry a metricKind field.

Direction: 100 is always best (for evaluative metrics)

Indicators point in different directions — a high CPI is good, a high homicide rate is bad. We store each indicator’s direction and apply it during normalization so that on the site, 100 always means best/most and 0 means worst/least. Every metric spells out what its scale means in words (e.g. “100 = safest, 0 = most homicides”). Directions are never silently mixed.

Countries & coverage

There is one canonical country list, keyed on ISO 3166-1 alpha-3 codes; everything joins on it. Name variants and territories are resolved to a single code, so a country is never double-counted or mismatched.

Coverage varies by source — most indicators cover 180–200+ countries, some far fewer. Each metric page states how many countries have data, and the map shows the rest in grey as “no data”. A missing country is a gap we disclose, not one we fill.

Sources & licenses

103 metrics from 23 sources. Every source is attributed with its license and the date we snapshotted it.

Correlated governance metrics. Three metrics — electoral democracy, rule of law, and freedom of expression — all come from the V-Dem project. They share one methodology and one expert-coding panel, so they are correlated: three views of a single model, not three independent sources. Read them as facets of one assessment, not as mutual corroboration.

A second shared-model family: the World Bank WGI. The Worldwide Governance Indicators are a single statistical aggregation of many underlying survey and expert sources, published as six correlated dimensions. To avoid stacking near-identical governance scores, we ship only one WGI metric — government effectiveness (state capacity) — not the full six, and we skip WGI control of corruption because it largely duplicates the Corruption Perceptions Index we already carry. Where we wanted an independentgovernance signal we chose one from a different house and method entirely: women in parliament is an objective IPU seat count, not an expert perception. If a properly-licensed measure from another house (e.g. Freedom House) becomes viable, we would prefer it to more of the same model.

Sources we dropped rather than fudge. Some widely-cited indices fail our licensing/reproducibility bar and are deliberately not shipped: the WJP Rule of Law Index (all-rights-reserved, no reuse license → substituted by V-Dem rule of law), the RSF World Press Freedom Index (CC BY-NC-ND with no openly-fetchable current-methodology data → substituted by V-Dem freedom of expression), and any charitable-giving / “generosity” index (CAF is unlicensed and PDF-only; the World Happiness Report’s “generosity” is a GDP-adjusted regression residual that takes negative values — not a measure of kindness — so the giving slot is left intentionally empty until a licensed, fetchable, interpretable source exists).

EurostatEurostat (European Commission) · License: CC BY 4.0 (Commission Decision 2011/833/EU — free reuse with attribution)

Police-recorded offences by category (crim_off_cat), per 100,000 inhabitants. European reporting countries only. Recorded ≠ actual crime — confounded by reporting propensity, police recording practice, and legal definitions (Tier C).

MetricTierMethodCountriesYearSnapshot
Recorded assault rateTier Cpercentile37mixed 2012–20242026-07-12
Recorded corruption offence rateTier Cpercentile36mixed 2016–20242026-07-12
Recorded drug offence rateTier Cpercentile37mixed 2012–20242026-07-12
Recorded kidnapping rateTier Cpercentile35mixed 2012–20242026-07-12
Recorded robbery rateTier Cpercentile38mixed 2012–20242026-07-12
Recorded sexual violence rateTier Cpercentile36mixed 2019–20242026-07-12
Recorded theft rateTier Cpercentile38mixed 2012–20242026-07-12
FAO (via Our World in Data)Food and Agriculture Organization of the UN (FAO) · License: CC BY 4.0

Cocoa 'food available for consumption' per capita from the FAO Food Balance Sheets, retrieved via the Our World in Data mirror. A supply proxy, not measured consumption — Tier C.

MetricTierMethodCountriesYearSnapshot
Chocolate supply per person (proxy)Tier Cminmax191mixed 2009–20232026-07-12
FAO Food Balance Sheets (via Our World in Data)Food and Agriculture Organization of the UN (FAO) · License: CC BY 4.0

Per-capita food available for consumption from the FAO Food Balance Sheets, retrieved via the Our World in Data mirror. This is national food SUPPLY per person, not measured intake.

MetricTierMethodCountriesYearSnapshot
Fish & seafood supply per capitaTier Aminmax191mixed 2009–20232026-07-12
Fruit supply per capitaTier Aminmax191mixed 2009–20232026-07-12
Meat supply per capitaTier Aminmax191mixed 2009–20232026-07-12
Vegetable supply per capitaTier Aminmax191mixed 2009–20232026-07-12
Global Carbon Project (via Our World in Data)Global Carbon Project · License: CC BY 4.0

Per-capita CO₂ emissions from the Global Carbon Project's Global Carbon Budget, retrieved via the Our World in Data mirror.

MetricTierMethodCountriesYearSnapshot
CO₂ emissions per capitaTier Apercentile21420242026-07-12
ILOSTAT (International Labour Organization)International Labour Organization · License: CC BY 4.0

ILOSTAT via the ILO rplumber API (rplumber.ilo.org). CC BY 4.0 for databases published since 3 May 2023.

MetricTierMethodCountriesYearSnapshot
Informal employmentTier Aminmax145mixed 2009–20262026-07-12
Social protection coverageTier Anative_rescale214mixed 2015–20252026-07-12
Trade union densityTier Bminmax139mixed 2007–20202026-07-12
IMF (World Economic Outlook)International Monetary Fund · License: IMF terms (reuse with attribution)

IMF World Economic Outlook via the IMF DataMapper API (imf.org/external/datamapper).

MetricTierMethodCountriesYearSnapshot
GDP growth (projection)Tier Bminmax18920312026-07-12
Government debtTier Bminmax193mixed 2010–20252026-07-12
NCD Risk Factor Collaboration (via Our World in Data)NCD Risk Factor Collaboration (NCD-RisC) · License: CC BY 4.0

Pooled analysis of population-based measured-height studies, retrieved via the Our World in Data mirror. Indexed by year of birth.

MetricTierMethodCountriesYearSnapshot
Adult male heightTier Aminmax20019962026-07-12
ND-GAIN Country Index (University of Notre Dame)University of Notre Dame Global Adaptation Initiative · License: CC BY 3.0

ND-GAIN vulnerability score. The source ZIP is version-stamped (no stable 'latest' URL), so the snapshot is pinned to a specific release; refreshes are a manual, documented step.

MetricTierMethodCountriesYearSnapshot
Climate vulnerabilityTier Bminmax19020242026-07-12
OECDOrganisation for Economic Co-operation and Development · License: CC BY 4.0

OECD statistics via the OECD SDMX API (sdmx.oecd.org). CC BY 4.0 since July 2024. Coverage is OECD members and selected partners only (~38 economies).

MetricTierMethodCountriesYearSnapshot
Average annual working hoursTier Bminmax44mixed 2020–20252026-07-12
Gender wage gapTier Bminmax47mixed 2022–20252026-07-12
Municipal waste per capitaTier Bminmax61mixed 2012–20242026-07-12
Recycling rateTier Bminmax54mixed 2012–20242026-07-12
Tax wedge on labourTier Bminmax3820252026-07-12
Our World in DataOur World in Data · License: CC BY 4.0

Mean years of schooling series compiled by Our World in Data from UNDP Human Development Report and UNESCO education statistics.

MetricTierMethodCountriesYearSnapshot
Mean years of schoolingTier Aminmax14620202026-07-12
The Nobel Prize (nobelprize.org)The Nobel Foundation · License: CC0 1.0 (public domain)

Laureates from the official Nobel Prize API (CC0), counted by present-day birth country and divided by World Bank population.

MetricTierMethodCountriesYearSnapshot
Nobel laureates per capitaTier Blog_minmax7920242026-07-12
Transparency InternationalTransparency International · License: CC BY-ND 4.0

CPI retrieved via the Our World in Data mirror (ourworldindata.org/grapher/ti-corruption-perception-index), which republishes the official TI CPI series verbatim. Snapshot verified against Transparency International's official CPI 2024 figures and matches exactly (spot-checked: DNK 90, FIN 88, SGP 84, DEU 75, USA 65, ESP 56, SSD 8). We were unable to fetch TI's primary file directly (their CDN returns an access-denied stub for the CPI xlsx and no clean CSV is offered), so the OWID mirror is the machine-readable source; primary source and methodology owner is Transparency International.

MetricTierMethodCountriesYearSnapshot
Corruption Perceptions IndexTier Anative_rescale18020242026-07-12
UN Tourism (via Our World in Data)UN Tourism (UNWTO) · License: CC BY 4.0

International tourist arrivals — overnight visitors — from UN Tourism (UNWTO), retrieved via the Our World in Data mirror (OWID's processing layer is CC BY; underlying values are UN Tourism).

MetricTierMethodCountriesYearSnapshot
International tourist arrivalsTier Blog_minmax17420192026-07-12
UN World Population Prospects (via Our World in Data)UN DESA, Population Division · License: CC BY 3.0 IGO

UN World Population Prospects (median age; medium-variant projections), retrieved via the Our World in Data mirror.

MetricTierMethodCountriesYearSnapshot
Median ageTier Aminmax23720232026-07-12
Population change (projection)Tier Aminmax23720502026-07-12
UNDP Human Development Report (via Our World in Data)UNDP, Human Development Report Office · License: CC BY 3.0 IGO

Gender Inequality Index from the UNDP Human Development Report, retrieved via the Our World in Data mirror.

MetricTierMethodCountriesYearSnapshot
Gender equality (inverted GII)Tier Anative_rescale17220232026-07-12
UNDP — Human Development ReportUnited Nations Development Programme · License: CC BY 3.0 IGO

Human Development Index, retrieved via the Our World in Data mirror (ourworldindata.org/grapher/human-development-index), which republishes the UNDP HDR series. Primary source and methodology owner is UNDP.

MetricTierMethodCountriesYearSnapshot
Human Development IndexTier Anative_rescale19320232026-07-12
UNHCR (via Our World in Data)UN High Commissioner for Refugees (UNHCR) · License: CC BY 4.0

Refugee population by country of origin, retrieved via the Our World in Data mirror.

MetricTierMethodCountriesYearSnapshot
Refugees (by origin)Tier Apercentile211mixed 2002–20242026-07-12
UNODC (via World Bank)UN Office on Drugs and Crime / World Bank · License: CC BY 4.0

Intentional homicide victims per 100,000, indicator VC.IHR.PSRC.P5, retrieved via the World Bank API. Primary source is UNODC; the World Bank redistributes the series under CC BY 4.0.

MetricTierMethodCountriesYearSnapshot
Homicide rateTier Apercentile193mixed 2001–20232026-07-12
Uppsala Conflict Data Program (via Our World in Data)Uppsala Conflict Data Program (UCDP) · License: CC BY 4.0

Deaths in armed conflicts, best estimate, retrieved via the Our World in Data mirror.

MetricTierMethodCountriesYearSnapshot
Deaths in armed conflictsTier Apercentile19720252026-07-12
V-Dem Institute (via Our World in Data)V-Dem Institute, University of Gothenburg · License: CC BY 4.0

Varieties of Democracy (V-Dem) expert-coded indices (electoral democracy, rule of law, freedom of expression), retrieved via the Our World in Data mirror. Expert-coded estimates; see V-Dem for uncertainty intervals.

MetricTierMethodCountriesYearSnapshot
Electoral democracy indexTier Anative_rescale17520252026-07-12
Freedom of expression indexTier Anative_rescale17520252026-07-12
Rule of law indexTier Anative_rescale17520252026-07-12
World BankWorld Bank · License: CC BY 4.0

World Development Indicators and related databases, retrieved via the World Bank API (api.worldbank.org), most recent value per country. Each metric's indicator code and primary compiler (e.g. UN, WHO, ITU, UN IGME) are given in its methodology.

MetricTierMethodCountriesYearSnapshot
Access to electricityTier Anative_rescale21420232026-07-12
Adult literacy rateTier Aminmax155mixed 2000–20242026-07-12
Age dependency ratioTier Aminmax21520252026-07-12
Air transport passengersTier Apercentile177mixed 2000–20232026-07-12
Child labourTier Bminmax97mixed 2000–20162026-07-12
Diabetes prevalenceTier Aminmax20820242026-07-12
Electricity use per capitaTier Alog_minmax149mixed 2022–20242026-07-12
Employment-to-population ratioTier Aminmax186mixed 2021–20252026-07-12
Energy use per capitaTier Alog_minmax177mixed 2007–20242026-07-12
Exports of goods & servicesTier Aminmax192mixed 2004–20252026-07-12
Female labour force participationTier Aminmax186mixed 2021–20252026-07-12
Fertility rateTier Aminmax21520242026-07-12
Fixed broadband subscriptionsTier Aminmax208mixed 2021–20242026-07-12
Foreign direct investmentTier Aminmax201mixed 2011–20242026-07-12
Foreign-born populationTier Anative_rescale214mixed 2010–20242026-07-12
Forest areaTier Anative_rescale21320232026-07-12
GDP per capita (PPP)Tier Alog_minmax202mixed 2011–20242026-07-12
Government education spendingTier Aminmax200mixed 2002–20252026-07-12
Government effectivenessTier Anative_rescale20420242026-07-12
Government revenueTier Aminmax155mixed 2007–20242026-07-12
Gross savingsTier Aminmax177mixed 2000–20252026-07-12
Health expenditure per capitaTier Alog_minmax193mixed 2020–20242026-07-12
Hospital beds per 1,000Tier Aminmax191mixed 2001–20232026-07-12
Immunization coverage (DTP3)Tier Anative_rescale193mixed 2023–20242026-07-12
Income inequality (Gini)Tier Aminmax167mixed 2005–20252026-07-12
Infant mortality rateTier Aminmax19520242026-07-12
Inflation rateTier Apercentile192mixed 2011–20252026-07-12
Internally displaced personsTier Apercentile82mixed 2011–20252026-07-12
Internet usersTier Anative_rescale209mixed 2004–20252026-07-12
Labour productivityTier Alog_minmax177mixed 2021–20242026-07-12
Life expectancy at birthTier Aminmax21520242026-07-12
Life expectancy gap (female − male)Tier Aminmax21520242026-07-12
Logistics Performance IndexTier Anative_rescale169mixed 2007–20222026-07-12
Lower-secondary completion rateTier Aminmax192mixed 2007–20252026-07-12
Maternal mortality ratioTier Apercentile19420232026-07-12
Net migration rateTier Bminmax21520252026-07-12
New business densityTier Aminmax182mixed 2009–20242026-07-12
PISA mathsTier Aminmax55mixed 2009–20182026-07-12
PISA readingTier Aminmax55mixed 2009–20182026-07-12
PISA scienceTier Aminmax55mixed 2009–20182026-07-12
PM2.5 air pollutionTier Apercentile20020232026-07-12
Physicians per 1,000Tier Aminmax195mixed 2000–20232026-07-12
Population densityTier Alog_minmax21520232026-07-12
Protected land areaTier Anative_rescale212mixed 2015–20252026-07-12
Pupil–teacher ratio (primary)Tier Aminmax197mixed 2000–20192026-07-12
Remittances receivedTier Aminmax193mixed 2000–20242026-07-12
Renewable energy shareTier Anative_rescale212mixed 2021–20222026-07-12
Researchers in R&DTier Alog_minmax144mixed 2002–20242026-07-12
Road-traffic deathsTier Bminmax190mixed 2013–20192026-07-12
Rural population shareTier Anative_rescale21520252026-07-12
Safe drinking waterTier Anative_rescale151mixed 2017–20242026-07-12
Safe sanitationTier Anative_rescale145mixed 2016–20242026-07-12
Sex ratio at birthTier Aminmax21520242026-07-12
Tertiary enrollment ratioTier Aminmax195mixed 2000–20252026-07-12
Tobacco useTier Aminmax16620242026-07-12
Total populationTier Alog_minmax21520252026-07-12
Under-5 mortality rateTier Apercentile19520242026-07-12
UndernourishmentTier Aminmax169mixed 2006–20232026-07-12
Unemployment rateTier Aminmax186mixed 2021–20252026-07-12
UrbanizationTier Anative_rescale21520252026-07-12
Women in parliamentTier Anative_rescale193mixed 2018–20252026-07-12
Youth unemployment rateTier Aminmax186mixed 2021–20252026-07-12
World Happiness Report (via Our World in Data)World Happiness Report / Gallup · License: CC BY 4.0

Self-reported life evaluation (Cantril ladder, 0–10) from the Gallup World Poll, published in the World Happiness Report, retrieved via the Our World in Data mirror. Survey-based (Tier B).

MetricTierMethodCountriesYearSnapshot
Life satisfaction (happiness)Tier Bnative_rescale165mixed 2011–20252026-07-12
World Values Survey (via Our World in Data)World Values Survey Association / Integrated Values Surveys · License: CC BY 4.0

Share of survey respondents who mention 'people of a different religion' when asked which groups they would not want as neighbours (World Values Survey / Integrated Values Surveys), via the Our World in Data mirror. A single attitudinal proxy — Tier C.

MetricTierMethodCountriesYearSnapshot
Social tolerance (proxy)Tier Cnative_rescale94mixed 2004–20222026-07-12

Reproducibility

The entire dataset rebuilds from a versioned pipeline. A data manifest.json records every source, its snapshot date, and license; each source has one adapter that fetches, normalizes, and emits rows with full provenance. Anyone can re-run the build and get the same scores.

The built database is committed read-only and queried directly, and a machine-readable API and MCP server (later phases) expose every score with its provenance — so humans and machines both get the number and the reason to trust it.