Method
How these numbers are made
The honest version. A live counter is a visualisation of a model, not an observation — and most sites in this genre never say so.
1. Nothing is being counted
No government publishes births and deaths in real time. What every site of this kind does — including this one — is take a published population estimate and a published rate, then interpolate. The only question is whether you show the interpolation or hide it.
2. The formula
population(t) = anchor + rate × (t − anchorTime) where anchor = World Bank estimate for 1 July of the anchor year anchorTime = 1 July of that year, 00:00 UTC rate = people per second, derived belowBirths and deaths per second come from crude rates applied to the anchor population:
births/sec = population × crude birth rate ÷ 1,000 ÷ 31,556,952 deaths/sec = population × crude death rate ÷ 1,000 ÷ 31,556,952 net mig/sec = (5-year net migration total ÷ 5) ÷ 31,556,952"Today" means since midnight in your timezone, not UTC — otherwise the counter would reset at an arbitrary moment for most visitors.
3. The numbers don't perfectly agree
Two independent World Bank series are involved, and they disagree. The births-minus-deaths figure and the published growth rate are produced by different parts of the same estimation process. This site shows both rather than silently picking one.
4. Known weaknesses
- Linearity. Rates are held constant between anchors, so a country mid-epidemic or mid-crisis will be wrong in a way that no interpolation can fix.
- No seasonality. Births peak in some months, deaths in others. "Births today" is an average day, not a forecast of today.
- Migration is coarse. World Bank publishes net migration as a 5-year total, so the per-second figure is a five-year average smeared evenly.
- Small countries are noisy. For populations under a few hundred thousand the crude rates are themselves estimates with wide uncertainty.
- The sum isn't the whole. The world total is World Bank's own
WLDaggregate, which does not equal the sum of the 217 individual territories — the gap is shown on the home page footer of the counter.
5. Sources
World Bank Open Data, retrieved —:
SP.POP.TOTL population · SP.DYN.CBRT.IN crude birth rate ·
SP.DYN.CDRT.IN crude death rate · SM.POP.NETM net migration ·
SP.URB.TOTL.IN.ZS urban share · AG.SRF.TOTL.K2 land area ·
NY.GDP.PCAP.CD GDP per capita · SP.DYN.LE00.IN life expectancy ·
SP.DYN.TFRT.IN fertility · SP.POP.0014.TO.ZS /
SP.POP.65UP.TO.ZS age structure · SP.POP.GROW growth rate.
The World Bank's population series are themselves largely UN World Population Prospects
estimates.
6. Reproduce it
The raw pull and the build step are plain Python with no dependencies:
python3 data/fetch_wb.py then python3 data/build.py.
That writes data/countries.json and data/world.json, which is
everything the site reads.