STRIPED DONKEYWe do the heavy lifting.
Developer quick start →

The city collection · Nairobi & Lagos

Two cities.
More perspective.

Explore two synthetic cities through the same connected model. Compare what is available, follow the records, and find the right starting point for your work.

44domains to compare
40original sample files
3,902free sample rows

One collection. Two perspectives.
Scope & sources ↗

01 / Compare

Find what matters to you.

Choose a domain, compare the published metrics, or explore how the models change through time.

Download coverage index ↓

Domain coverage

Domain availability and samples in Nairobi and Lagos. Two domains per page.
DomainNairobi KenyaLagos Nigeria

Source field counts describe each original download. Samples from different domains are independently selected.

02 / Follow a life

Go beyond the city totals.

Try the connected example ↗

Available histories differ by city; each explorer explains its scope.

03 / Take it with you

Both cities.
One free download.

40 original CSV files, comparison metrics, model timelines and runnable Python + SQL.

Run the comparison in Python & SQL

Extract the ZIP and run this command in its folder. Python 3 is the only prerequisite; no packages, account or network connection are needed.

Terminal
python compare.py

The script verifies hashes and source values, then runs the supplied SQLite queries. It writes no files. Samples remain separate by city and domain.

Example · matching definitions
SELECT domain, metric,
  MAX(CASE WHEN city = 'nairobi' THEN value END) AS nairobi,
  MAX(CASE WHEN city = 'lagos' THEN value END) AS lagos
FROM metrics
WHERE status = 'published'
GROUP BY domain, metric;

Open the connected-sample quick start ↗
Scope, sources & evidence

Nairobi and Lagos are the only cities included; they do not represent all of Africa or their countries. Source dates and original schemas travel with the downloads. The row total spans different record types and is not a count of people.

City IDs must remain distinct. Independently selected domain samples do not form a single connected population. Insurance's unavailable source zero is marked unavailable in the comparison. Record counts and structural checks do not establish empirical accuracy.