



The history of urbanization, 3700 BC – 2000 AD

For each city, this map shows the date of the earliest recorded population figure, which is not necessarily the date when the city was founded. The size of each dot corresponds to its population at that time.


Urbanization didn’t begin in the 1960’s. But until recently, tracking its history much further back than that was a challenging task. The most comprehensive collection of urban population data available, U.N. World Urbanization Prospects, goes back only to 1950. But thanks to a report released last week by a Yale-led team of researchers, it’s now possible to analyze the history of cities over a much longer time frame.


As the authors of acknowledge, the data has a number of limitations and is “far from comprehensive.” Certain parts of world are better represented than others, and some well known cities do not appear until centuries after they were founded. That said, for such an ambitious project (the historical populations of every city ever built anywhere in the world), I think they managed to piece together an impressive amount of data.

Edit: In response to a few questions regarding the definition used here for “city,” below is some more information from the study. The researchers compiled the data from two original sources: Four Thousand Years of Urban Growth: An Historical Census by Tertius Chandler and World Cities: -3,000 to 2,000 by George Modelski. Both original sources define cities based on population, though they use different thresholds.


“Modelski used different minimum thresholds from Chandler for different eras to define a city:

  1. Ancient (3500 BC to 1000 BC):≥10,000 inhabitants
  2. Classical (1000 BC to AD 1000):≥100,000 inhabitants
  3. Modern (AD 1000 onward):≥1,000,000 inhabitants”

If you would like to go through the data yourself, you can find a spreadsheet for each original data source in the report. Also included is an R script for combining it all.

Or if you just want to explore a bit, here is the same data from the map above, plotted using Mapbox.