Data sources & methodology
A hybrid model: stable base + live statistics
Atlas combines two layers. Reference facts that rarely change are bundled for speed and reliability, while dynamic statistics are fetched live from authoritative, key-free public APIs. No API keys are ever exposed in the browser.
- Country facts (bundled) — the open mledoze/countries dataset (MIT), the same source that powered the REST Countries API. Names, capitals, regions, coordinates, borders, languages, currencies, calling codes, TLDs and time zones.
- Economy, health & development (live) — the World Bank Open Data API. GDP, GDP per capita, GDP growth, inflation, life expectancy, population growth, urban share, internet users and CO₂ per capita — each labelled with the exact year it applies to, with historical trend charts.
- Exchange rates (live) — real-time rates from open.er-api.com, refreshed roughly daily.
- Flag images — served from flagcdn.com, keyed by ISO 3166-1 alpha-2 code.
- Maps — external links open OpenStreetMap at the country's coordinates.
How “live” actually works
Live figures are requested through the app's own server-side routes (/api/indicators/[code] and /api/fx), which fetch from the World Bank and exchange-rate APIs, cache the response, and batch many indicators into one request. If a source is slow or down, the page still renders every other section and shows a friendly notice instead of crashing.
What we never fake
We only display statistics an authoritative source actually returns. If a country is missing a value, we show “Data unavailable” — never a zero, an estimate, or a guess. Nothing on this site is fabricated.
Coverage & methodology notes
- 250 countries and territories are included in the base dataset.
- 250 have a bundled population figure; 240 have an area figure.
- Population density is computed as population ÷ area, shown only when both exist.
- “X times larger / more dense” insights are calculated live from the data, not hardcoded.
- Local time is derived from each country's primary UTC offset and updates every second in your browser.