How the numbers are made
Reference year 2026 · built from UN World Population Prospects 2024 · build commit ea7fbd1
Every figure on this site comes from one public dataset through a short, open pipeline. This page explains the choices we made, the ones we deliberately didn't, and exactly where each number comes from. If you find a discrepancy, open an issue — challenges to the numbers are welcome.
The source
All data is from the United Nations World Population Prospects 2024, medium variant: United Nations, Department of Economic and Social Affairs, Population Division (2024). World Population Prospects 2024. Licensed CC BY 3.0 IGO. Our derived files carry the same license and are changed from the original — aggregated and remapped from age to birth year, as described below.
The exact files we downloaded, with their sha256 checksums so anyone can confirm they are working from the same bytes:
| file | sha256 |
|---|---|
WPP2024_PopulationBySingleAgeSex_Medium_1950-2023.csv.gz | f84c75789ccbd385122ad19bac70026d6306878442afbaa24e8e50a23b4bee2f |
WPP2024_PopulationBySingleAgeSex_Medium_2024-2100.csv.gz | 31804a296b663716236cd26c46415271cc9386fb3b2be56aff6467ad32283dc8 |
WPP2024_Demographic_Indicators_Medium.csv.gz | 286ac36bb1415e2e1ade03acfef0a29f0e4c087e2f78e38c48f50c5df89082bc |
Age is not quite birth year
The UN data counts people by completed age at mid-year. Someone who is 54 on 1 July 2026 was born somewhere in the twelve months ending 1 July 1972 — so a single age bucket straddles two calendar birth years, roughly half and half.
We use the direct mapping birth_year = reference_year − age: the 54-year-olds of 2026 are shown as the 1972 cohort. A half-and-half split across the two straddled years would look more precise, but the extra precision would be smaller than the uncertainty already inside the underlying estimates, and it would complicate every downstream number. So we keep the simple mapping and say so here rather than hiding it. In practice this shifts each cohort by up to half a year of age; it does not change the shape of any comparison.
"Right now" is a projection
WPP 2024 provides estimates through 2023 and projections after that. Our reference year is mid-2026, which means every "alive now" figure is the UN's medium-variant projection for 1 July 2026 — a careful forecast, not a count. Nobody has counted the world's population this year; the UN has modeled it from the most recent censuses, surveys, and vital registration. That is why the site labels the reference year explicitly instead of just saying "today".
Countries gain and lose people who were born elsewhere
Worldwide, the arithmetic is closed: everyone alive from a birth year was born in that year, so survivors can never exceed births, and the gap between them is mortality. That is why the "share of the cohort still living" statistic appears only for the world.
Countries don't work that way, because people move. A country's residents born in 1985 include immigrants born elsewhere and exclude emigrants born there. The United Arab Emirates makes the point vividly: in 2026 it has about 232,060 residents born in 1985, but only about 39,301 babies were born there in 1985 — nearly six times more 1985-born residents than 1985 births. That is migration, not a miracle of survival. Wherever the site shows a country's births next to its living cohort, the figure is labeled net of migration and is never presented as attrition.
Where you sit in the age order
"Older than N% of people alive" needs a decision about your own cohort: everyone born in your year is neither strictly older nor strictly younger than you. We count people born in later years as younger, people born in earlier years as older, and your own single-year cohort as half younger, half older — the standard mid-rank treatment of ties. The percentile is (people born later + half your cohort) / everyone alive.
The 100+ bucket
The UN's oldest age group is open-ended: "100 and over". It pools everyone born in or before reference_year − 100 (1926 for our slice), so it isn't a single birth-year cohort. We flag it as open-ended, show it as "born in or before", and exclude it from statistics that need one-year cohorts, such as the world survivors-versus-births check and the trajectory charts.
Small countries are noisy
Below roughly 90,000 residents, the UN estimates get noisy and single-year age cells can round oddly. We still show these countries, but flagged, so a strange-looking number for a very small place is read with the right amount of salt.
The year you arrived in
The context panel shows three indicators for your birth year: infant mortality (deaths before the first birthday per 1,000 live births that year), the median age of the whole population, and the total fertility rate. All three come from the same UN release as everything else — WPP2024_Demographic_Indicators_Medium.csv.gz, checksummed above, same CC BY 3.0 IGO license — read off directly at your birth year, with no modeling on our side. The UN series starts in 1950, so the panel is simply absent for earlier birth years.
The temperature sentence uses NASA's GISS Surface Temperature Analysis, version 4 (GISTEMP v4), a public-domain series of global annual surface temperature anomalies — each year's difference from the 1951–1980 average. We compare your birth year's anomaly with the mean of the five most recent complete years. It describes measured history only; it is not a forecast. Citation: GISTEMP Team, GISS Surface Temperature Analysis (GISTEMP), version 4, NASA Goddard Institute for Space Studies.
The map of where your year lives
The world map shades each country by how many of your birth year's people live there today. Country outlines come from Natural Earth (1:110m cultural vectors, public domain, via the world-atlas package), drawn in the Equal Earth projection — chosen because it is equal-area, so a country's visual weight on the map is proportional to its land, not distorted toward the poles. The projection is applied once at build time; the browser only fills prepared shapes. The values are the same 2026 cohort slice as everything else (data/cohorts-now.parquet), shaded in powers-of-ten bins because cohort sizes span from a handful of people to tens of millions. A few small territories in the UN data have no shape at the 1:110m scale — they appear in the map's table view but not on the map itself.
The migration strip under the country chart
A country's cohort line can step up or down for reasons that have nothing to do with mortality — Albania's cohorts shrink sharply through the 1990s because roughly 65,000 more people left than arrived each year after 1991. To make such steps explain themselves, the country trajectory carries an aligned strip of the UN's net migration series (the same WPP2024_Demographic_Indicators file, column NetMigrations): gold bars are years when more people arrived than left, grey the reverse. Two honesty notes: the series covers all ages, not the single cohort drawn above it; and the UN estimates it as a residual, smoothed over intercensal periods, so sharp single-year spikes may appear spread over several years. The sentence under the chart reports the ten-year window with the largest average flow, and only appears when that flow is demographically meaningful (at least 0.15% of the population per year).
The people in your company
The "In your company" names come from Wikidata (CC0, no rights reserved), harvested once per build by scripts/fetch_people.mjs: for each birth year we take the people with the most Wikipedia language editions. That is a measure of cross-language fame, not importance — it skews toward entertainers, athletes and politicians, and toward the English-speaking world. We say so on the page.
One editorial choice: people primarily notable for mass violence or terror are excluded from the default list. The exclusion list is short, public (in scripts/fetch_people.mjs), and applied at build time. The underlying data is Wikidata's; anyone can re-derive the unfiltered list.
What we deliberately do not compute
Nothing on this site estimates an individual's life expectancy, remaining years, or anything of the kind — not in fine print, not behind a toggle. The same data could power that, and we chose not to: this is a tool for seeing the company you keep, the cohort moving through time with you, and a countdown would poison that view without telling any one person anything true about their own life. Population statistics describe cohorts, not individuals.
Where each number comes from
Every displayed statistic traces to a named file in the repository and a query you can run yourself. The derived files are built by scripts/build.sql (DuckDB), and the raw counts — stored in thousands in the UN files — are multiplied out to persons at build time.
| statistic | source file | query sketch |
|---|---|---|
| Cohort size now (world) | data/world-now.json | alive where birth_year = Y |
| Cohort size now (country) | data/cohorts-now.parquet | alive where iso3 = C and birth_year = Y |
| Original cohort size (world births) | data/world-now.json (from births.parquet) | births where birth_year = Y; null before 1950 |
| Share still living (world only) | data/world-now.json | alive / births; asserted ≤ 1 at build |
| Age percentile | data/world-now.json (from rank_index.parquet) | (cum_alive_younger + 0.5 × alive) / total_alive |
| Passport contrast | data/cohorts-now.parquet | same birth_year, several iso3; country births labeled net of migration |
| Cohort trajectory | data/traj/iso3=…/*.parquet | alive by ref_year for one birth_year |
| Bigger cohorts | data/world-now.json | birth years with alive > yours, sorted |
| Birth-year context (infant mortality, median age, fertility) | data/world-now.json / data/now/….json | imr, median_age, tfr where birth_year = Y; null before 1950 |
| Median birth year | data/world-now.json | smallest Y with cum_alive_younger < total_alive / 2 |
| Temperature comparison | data/climate.json | mean anomaly of the latest 5 years − anomaly where year = Y |
| Where your year lives (map) | data/cohorts-now.parquet + data/map.json | alive per iso3 where birth_year = Y, binned by powers of ten; share = alive / alive(WLD) |
Analytics
The production site uses Google Analytics for aggregate traffic counts. Analytics loads only on year-atlas.seandavis.net — never on preview or local copies — and nothing you type into the page (your year, your country) is sent anywhere except as part of the page URL you chose to visit. There are no accounts and no signup.
Reproducing the build
The whole pipeline is in the open at github.com/seandavi/my-year-atlas. Running ./scripts/build.sh downloads the raw files (verifying the checksums above), runs scripts/build.sql in DuckDB, and fails loudly if any sanity assertion trips — including the world-level check that survivors of a birth year never exceed births in that year. The figures on this site were produced at commit ea7fbd1.
Questions or corrections: open a data question.