Data sources
Where every number on this site comes from, and what we did to it.
The primary source
All country statistics come from the World Bank Open Data, retrieved through their public API on 2026-11-01. The data is released under World Bank data is released under CC BY 4.0.
We fetched 217 countries across 16 indicators in a single pass at build time and stored the result in the site itself. At runtime nothing is fetched: the site is a static bundle, and the simulation reads the local copy. There is no API key, no third-party request per visitor, and nothing that can break because an upstream service is down.
Every figure carries its own year
A statistic without a date is not information. Each value in the dataset is stored with the year the World Bank observed it, and every country page shows that year next to the number. Two things follow from this:
- Some indicators are reported less often than others. Government education spending, for example, is typically a year or two behind the demographic indicators.
- A missing value means the source does not report that indicator for that country in that year range. It never means zero, and we do not fill gaps with estimates.
The indicator list
| Indicator | Unit | World Bank code |
|---|---|---|
| Life expectancy at birth | years | SP.DYN.LE00.IN |
| Infant mortality rate | per 1,000 live births | SP.DYN.IMRT.IN |
| Under-5 mortality rate | per 1,000 live births | SH.DYN.MORT |
| Total fertility rate | births per woman | SP.DYN.TFRT.IN |
| GDP per capita, PPP | current international $ | NY.GDP.PCAP.PP.CD |
| Adult literacy rate | % of adults 15+ | SE.ADT.LITR.ZS |
| Government expenditure on education | % of GDP | SE.XPD.TOTL.GD.ZS |
| Urban population | % of total population | SP.URB.TOTL.IN.ZS |
| Poverty headcount at $2.15 a day | % below $2.15/day | SI.POV.DDAY |
| Youth unemployment rate | % of labor force 15-24 | SL.UEM.TOTL.ZS |
| Total population | people | SP.POP.TOTL |
| Current health expenditure | % of GDP | SH.XPD.CHEX.GD.ZS |
| Crude birth rate | births per 1,000 people | SP.DYN.CBRT.IN |
| Secondary school enrollment | % gross enrollment | SE.SEC.ENRR |
| Female labor force participation | % of female population 15+ | SL.TLF.CACT.FE.ZS |
| Maternal mortality ratio | per 100,000 live births | SH.STA.MMRT |
API endpoint used: https://api.worldbank.org/v2
Demographic group data
Where a country publishes an official breakdown of its population by caste, ethnicity, tribe or equivalent category, we use it — with the name of the classifying body and the source of any income or schooling gap. Those sources are listed on the country page for every group shown.
We do not extend a group from one country to another, and we do not estimate a gap where none is published. Where a country has no documented breakdown, the simulation uses national statistics directly and says so.
What we add ourselves
The event catalogue, the decision groups and the occupation table are our own writing. They describe general patterns — what happens at school, what a job in a given sector involves, how a household responds to a shock. They are illustrative structures, not country-specific claims, and no part of them asserts a fact about a real person or a real place.
The mortality calibration is ours too, in the sense that we chose the curve shape and fitted it to the World Bank figures. The method is described in full on the how it works page.
Corrections
The World Bank revises historical figures as their own methods improve, and an indicator published for one country may be restated later. If you find a figure here that no longer matches the source, that is our snapshot being out of date rather than a transcription error. Write to us and we will check it against the live source.