A 170-year-old ledger, turned into a living map
The deepest thing I have made. How a section-by-section accounting record of 1,527 railway openings, dates and mileages but no map, became an atlas that 22,000 people explored and that the data-visualisation field's own weekly roundup featured.
The brief
I wanted to see my country's entire railway history as one living thing, 170 years of it, and let anyone find the exact year the line first reached their home town. No one had drawn it from the primary records; the maps that exist flatten 170 years into a single "today."
The source: just rows
The spine is a University of Warwick economics ledger, a section-by-section record with exact opening dates for 1,527 line openings, from Bori Bunder to Thane in 1853 onward. Dates, mileages, route names. No coordinates, no geometry, no map. Just rows in a table.
The hard part: turning rows into a map
A ledger row reads "Cawnpore to Tannah, 1854, 21 miles." A map needs two real points and a path between them. So the pipeline:
- Match. Every section's endpoints placed against a gazetteer of 13,000+ stations (Wikidata, DataMeet) across India, Pakistan, Bangladesh and Myanmar.
- Translate. The colonial spellings the ledger still used, decoded: Cawnpore → Kanpur, Tannah → Thane, dozens of them.
- Route. Each dated section traced along today's real rail alignments from OpenStreetMap, then checked against the ledger's own recorded mileage. 98% of the routed mileage follows the true track.
- Resolve. Where the ledger and Wikidata disagreed on a date, the earlier verifiable date won.
The decision that mattered: honesty
The hardest call was what to do with what I could not prove. 28,000 km of line runs today that the records cannot yet date. I refused to hide it or invent a date. I drew it in grey, underneath the dated lines in ink, so the map shows the complete network while staying honest about which parts it can place in time. 7,927 of 11,665 stations carry a verified year; the rest say so plainly. A map of a country's memory has to be careful with the truth.
The design
My one rule is that every pixel has to earn its place, so I cut, and cut again. The map is the loudest thing on the page; the timeline, the labels and the chrome all recede until the network is the only thing you really see. No legend, no manual. I made it move instead: drag a timeline and the network grows year by year, a single line in 1853, the Partition of 1947 visibly severing it in two, the Chenab bridge in 2025.
The build
End to end in code, no mockups and no hand-offs. A custom canvas renderer projects 850 dated line geometries and 11,665 station points, redrawn live as you scrub the timeline. The "find your station" search runs entirely in your browser.
The outcome
Free, no ads, made by one person. 22,000 people explored it, and it was featured in Datawrapper's Data Vis Dispatch, the data-visualisation field's weekly roundup of the best work.
“Thanks for sharing your work, the tooltips, wow!”— Michael Do Thoi, Datawrapper


























