← Back

About Humanity Forecast

What is this?

A long-range population scenario tool for 192 sovereign nations. It follows official UN World Population Prospects 2024 data through 2100, then uses our own stochastic extension model to explore what different long-run fertility assumptions would imply after the UN horizon.

Data Sources

  • 2024-2100: UN World Population Prospects 2024 — crude birth rates, crude death rates, survival ratios from life tables, net migration for all 237 countries. Our implementation tracks the UN medium path within about 1.6% at tested reference years.
  • Post-2100: Custom long-range scenario engine using an AR(1)-style process on crude birth and death rates, age-structure-sensitive mortality, migration decay, and stylized shocks. 100 TFR scenarios (0.1-10.0) were computed with 10M trajectories each on 8× A100 GPUs.
  • Language data: CIA World Factbook, JovianHQ languages dataset
  • Religion data: Pew Research Center Global Religious Composition

Methodology

The core model is a cohort-component projection in the same general family of methods used by the UN, but it is notthe UN's full internal projection system. Population is tracked in 21 five-year age groups by sex for each country. Each 5-year step:

  1. Each age cohort survives and moves up one group (using UN life table survival ratios)
  2. Births are computed from crude birth rates applied to total population
  3. New births enter the 0-4 cohort with infant survival applied
  4. Net migration is distributed across working-age groups

After 2100, the public TFR slider is converted into a simplified crude-birth-rate target rather than a full age-specific fertility projection. That makes the post-2100 results scenario illustrations, not an official extension of the UN medium variant.

Scenarios

We compute 100 Total Fertility Rate (TFR) scenarios from 0.1 to 10.0 in 0.1 increments, each with 10 million independent trajectories — 1 billion total across the full sweep. The interactive homepage focuses on the most interpretable public range and shows scenario bands (5th to 95th percentile) rather than a single forecast line.

The UI exposes eight named scenarios — five fixed-TFR anchors and three per-country trajectories:

  • No Recovery:Each country's observed 2020–2024 TFR slope continues (clamped to non-positive, capped at TFR 2.1). Low-fertility countries don't bounce back.
  • Deep Decline (TFR 0.7):Stress test — every country converges to today's South Korea levels.
  • UN Extended / Continued Trends:Each country's UN 2075–2100 TFR slope is extrapolated forward. The most data-grounded post-2100 path.
  • European (TFR 1.4):All countries converge to today's European average — slow steady decline.
  • UN Medium (TFR 1.84): UN WPP 2024 medium variant continued. Population peaks at ~10.3B (2084), declines to ~2.7B by 2499.
  • Replacement (TFR 2.1): All countries reach exact replacement fertility. Population stabilizes long-term.
  • Baby Boom: Pro-natalist policy success — low-TFR countries recover to ~2.1, high-TFR countries also converge down to 2.1 (no runaway growth).
  • Growth (TFR 3.0): High-fertility / multi-planetary stress test.

Compute

All projections computed on 8× NVIDIA A100-SXM4-80GB GPUs (640GB total VRAM) via the Microsoft for Startups GPU Cluster (Azure ML, Italy-North region). Global TFR sweep: 100 scenarios × 10M trajectories = 1 billion total (~4 hours). Per-country TFR sweep: 100 scenarios × 237 countries × 10M trajectories with adaptive per-country histogram resolution (~82 minutes). All code runs on PyTorch with CUDA.

Key Finding

Under the UN-medium-like assumption (TFR converging to about 1.84 after the UN horizon), the long-range extension points toward a much smaller world after the 21st-century peak. In that scenario family, crossing below 1 billion occurs well after the modeled 2500 horizon and should be read as a directional extrapolation, not a precise forecast date.

A large share of humanity already lives in below-replacement-fertility countries. That matters for long-run age structure and population momentum, but it does not determine a single future path on its own. Migration, mortality, education, policy, and regional divergence still matter.

Limitations

  • Anything after 2100 is our custom scenario model, not an official UN projection.
  • The post-2100 model uses a simplified CBR-based fertility heuristic (`CBR ≈ TFR × 5`), not age-specific fertility schedules or the UN's full bayesTFR framework.
  • Migration is assumed to decay toward zero after 2100, which is a strong simplifying assumption for country-level paths.
  • Uncertainty bands are outputs of this model's assumptions, not formal confidence intervals over all plausible futures.
  • Dates shown after 2500 are extrapolated directional thresholds, not direct simulation output.
  • Small countries and bloc aggregates have more approximate long-range values because of histogram resolution and aggregation shortcuts.
  • The model includes only stylized shocks and omits many structural drivers, including education, policy responses, major wars, and transformative technologies.
  • Upstream UN inputs also carry uncertainty, especially where recent census or register data are sparse. Only 114 of 237 UN countries/areas had post-2019 census data at the time of the WPP 2024 release.
  • Post-2100 births are computed from total population × CBR, not from women aged 15-49 or age-specific fertility schedules. This loses the population-momentum effect that drives real demographic outcomes.
  • Bloc aggregates (EU, BRICS, Africa, etc.) report only a p50 — defined as the sum of member-country medians. We deliberately omit p5/p95 for blocs because a sum-of-percentiles ignores correlation between members and would systematically misstate uncertainty.
  • Post-2100 values are visually de-emphasised in the UI and labelled as scenario projections rather than forecasts. Globe tooltips attribute which scenario produced any post-2100 value.

Tech Stack

Next.js 16 + TypeScript + Tailwind CSS + SQLite (better-sqlite3) + Canvas 2D charts. GPU simulations in PyTorch (Python). Data pipeline: UN CSV → Python processing → SQLite → Next.js.