← Back to the map

Sources & Methodology

An open, work-in-progress dataset of how metro systems were built — one record per line, with construction dates and costs. Currently covering 12 cities: Amsterdam, Barcelona, Berlin, Boston, Copenhagen, London, New York City, Oslo, Rotterdam, Stockholm, Tokyo, Warsaw. Download the whole thing →

Data model

The unit is a metro line. Each line is split into construction phases(staged openings, extensions, reopenings) so we can model when each piece of track first opened. Curated facts (dates, costs, sources) are kept separate from map geometry and are authored in a database, then exported as plain JSON so they can be corrected and extended.

Line geometry

Line shapes come from OpenStreetMap via the Overpass API (route=subway relations), fetched offline and committed as GeoJSON. Each spine is sliced per phase so a line builds up segment-by-segment at the historical opening dates.

Costs & inflation

Costs are recorded as reported — in the currency and year of the day (e.g. Dutch guilders or Deutsche Mark before the euro, converted at their fixed 1999 rates). Figures are then adjusted for inflation on a euro-base price index and expressed in ~2026 US dollars (at a flat €1≈$1.08) for comparison. These adjustments are indicative, not accounting: INDICATIVE price-level index, rebased so 2026 = 100. Built from euro-area HICP (2009 onward) spliced with Netherlands CPI (1970–2009). Pre-1970 anchors (1863–1965) are an indicative long-run Western-European consumer-price composite scaled to join at 1970=12.0 — deliberately ROUGH (esp. across war-era spikes and currency resets), so deep-history costs convert to a realistic order of magnitude rather than the old 1970-floor (which under-stated everything before 1970). Use for rough cross-era comparison only; not an official series. 2025-2026 carried forward at ~1.6%/yr. Final figures are PRESENTED in ~2026 US dollars: adjusted on this euro-base index, then converted at the flat USD_per_EUR rate in currencyConversion (€1≈$1.08) — for USD-nominal costs the round-trip through euros cancels exactly.

Verification & data quality

Every opening date, construction start, and cost in the dataset is backed by at least one cited source. New cities are researched with a workflow that fans out per line, requires a source and a supporting quote for each fact, and adversarially cross-checks every claim with independent reviewers before it enters the dataset. Facts carry a confidence tag shown alongside citations in the app, computed from evidence strength rather than reviewer agreement: high means corroborated by at least two independent sources beyond Wikipedia (including a primary or contemporary one), medium means one such source, low means the fact currently rests on Wikipedia alone. Most date facts grade low today — that is the honest baseline the citation-chase program is working up.

We hold the dataset to a higher bar than “it has a citation”, and we publish the honest numbers below. Cited links are snapshotted to the Internet Archive, so citations stay checkable even when the live page changes or disappears.

Every cost figure has additionally been put through a citation chase: where a cost was cited to Wikipedia, we followed Wikipedia’s own references to the underlying contemporary sources (operator reports, government documents, newspapers of the day — in their original languages), verified that they actually support the figure, attached them with verbatim quotes, and classified each cost as an estimate, budget, or outturn figure. Each verdict was made by an independent reviewer and contested figures went to an adversarial panel — a process that corrected two published values and re-graded every cost’s confidence on evidence strength (independent sources, source tier) rather than reviewer agreement.

Every line’s construction-start dates have since been put through the same chase, one reviewer per line reading the underlying article and its references, with year-level contradictions escalated to an adversarial panel. It proved a higher error rate than costs: thirteen published construction-start dates were corrected across all eleven cities — most often a contract-signing, approval-vote, or partial-opening year that had been recorded as the date works actually began.

Every phase’s opening date was then chased the same way — all 689 of them. Opening dates proved by far the best-documented fact in transit history: only two were wrong (~0.3%, versus ~6% for construction starts), both cases of a ceremonial or structure-completion date standing in for the start of public revenue service. The pass attached hundreds of contemporary sources, which is what drove wiki-only coverage down to a third and roughly tripled the high-confidence phase count.

As an independent check, every cost was cross-validated against the Transit Costs Project database (NYU). For the sixteen projects both datasets cover at a comparable scope, fourteen agree within ~12% (most within a few percent); the two larger gaps were a currency-and-inflation basis difference, not a value error, and Crossrail’s whole-programme vs. central-tunnels scope — which surfaced one mislabelled cost basis we corrected. No cost values were found wrong.

Facts (line phases) with ≥1 cited source710 of 710 (100%)
Source records3132 — wikipedia 2229 · primary 246 · news 274 · other 383
Sources with a supporting quote2439 (78%)
Facts resting on Wikipedia alone238 (34%) — the upgrade program is working this number down
Verification confidence (high / medium / low / untagged)127 / 348 / 235 / 0
Cost figures143 — 143 sourced · 143 with confidence · 142 classified estimate/budget/outturn
Cited links archived against link rot2976 of 3132 (95%)

Sources

Contributing

Corrections and new cities are welcome. Add or edit a city’s data, cite a source for every date and cost, and run the geometry fetch + data validation scripts. See the project README.

Cost confidence varies by city and line — some figures are firm (sourced to operator or government records), others are well-sourced estimates, and a few archival-era costs are indicative or omitted with a note in the data. Official line-colour hex values are approximate.