Every service, drawn through its real halts. The clock is live — the trains on the map are the trains on the tracks.
The roster. 168 directional services on 77 routes — 84 numbered pairs, of which six routes are worked by more than one pair (Patna–Tatanagar has three, and Delhi–Katra, Delhi–Varanasi, Jammu–Srinagar, Chennai–Mysuru and Secunderabad–Visakhapatnam have two each). By class that is 162 Vande Bharat Express chair car, 2 Vande Bharat Sleeper (27575/27576 Howrah–Kamakhya), and 4 Namo Bharat Rapid Rail, which are flagged separately in the legend because they are Vande Metro sets, not Vande Bharat Express. Timings, halts and running days were compiled from public timetable listings — ixigo, ConfirmTkt, erail, RailMitra and RailYatri — and every train carries its own source link in its panel.
How the lines are drawn. No route is a straight line between endpoints. India’s rail network was rebuilt as a station-adjacency graph from the DataMeet open schedule dataset — 8,225 stations, 10,298 links — and each consecutive pair of halts is a shortest path across that graph, so a corridor follows track rather than cutting across country. 1,180 of 1,210 segments resolved onto real track chains; the 30 that did not — the Katra–Banihal–Srinagar line and a handful of post-2015 stations absent from the open data — are drawn straight and say so in the train’s own panel. Across all 168 services the drawn length is a median 0.967 of the published route kilometres, which is what a great-circle chain should give against rail distance.
What was checked. Every service’s halt-by-halt timeline reconciles with its published origin-to-destination duration to within 25 minutes, and no halt-to-halt leg implies an impossible speed (median 73 km/h; the only two legs above 175 km/h are on the new Katra–Srinagar line, where the track is drawn straight because the open data predates it). The roster was diffed against three published lists.
The roster is verified against a primary source. On 23 July 2026 the Ministry of Railways answered Parliament with the complete list of Vande Bharat chair-car services then running — 81 numbered pairs. Every one of those 81 pairs is in this map, with the correct up-and-down numbering and matching endpoints on all 81. Nothing the Ministry lists is missing here, and nothing here contradicts it. That settles the roster, the train numbers and the direction of travel; the release carries no times or running days, so it settles nothing about the timetable.
Every chair-car service on this map is on the Ministry’s list, and the count matches it exactly: 162 against 162. That was not true of an earlier version. Two pairs — 20979/20980 Udaipur–Jaipur and 20981/20982 Udaipur–Agra Cantt — were carried here on the reasoning that the press had reported them running and India Rail Info still listed them, so their absence from the Ministry release looked like an omission. It was not an omission. Both were withdrawn in February 2026 — the Jaipur service last ran on the 14th, the Agra Cantt service on the 15th — and their trainset was reassigned to the new Udaipur–Asarva service, 26963/26964, which is on this map. They have been removed: the primary source was right and the inference against it was wrong. One naming difference is worth knowing: the Ministry calls 22925/22926 the Ahmedabad–Okha service, while every operational listing shows it starting and ending at Sabarmati Jn, which is where this map plots it.
The timetable cross-check. Times were then diffed against two separately compiled India Rail Info exports — a different compilation from the commercial listing sites, which syndicate one upstream feed between them. 162 of the 168 services agree: departure matched on 161, arrival on 159. The arrival differences are five minutes each, on 26901 and 26404, and each figure has a second source behind it, so they are left as they stand rather than churned. Running days were checked for the 94 services one export carried, and agreed on all 94. The remaining services were then pulled one at a time from ConfirmTkt, a second commercial listing, and agreed on all 70 that remain — so no service here now carries its running days from a single page. That is a weaker check than the India Rail Info one: the commercial listings appear to share an upstream feed, so agreement between two of them rules out a transcription error on our side, not an error in the feed. The genuinely separate confirmation still covers 98 of the 168. Route distance was the one field where the exports disagreed with the commercial listings, and there India Rail Info was the better source — it gives Mumbai CSMT–Madgaon as 581 km against the 765 km the listings carry, matching the length of the line drawn here. Those distances were adopted, resolving every distance this map had flagged as wrong.
Two questions closed in the process. 20705 departs 05:20, not the 05:00 some stale listings still show; and the Banaras–Khajuraho service is 26505/26506, not the 26421/26422 a November 2025 report gave it. Sabarmati–Veraval was moved to the Botad alignment on 17 August 2026, so the Rajkot routing still carried by some listings is the superseded one. A separate Namo Bharat export then corrected a real error here: the Jaynagar–Patna service was drawn as running daily, when 94803 in fact rests on Sunday and 94804 on Saturday. No service on this map now carries an unresolved timing question.
What is still thin, precisely. Two services have no second source for their times — the Howrah–Kamakhya sleeper pair, which no export carries. Running days now have two sources on all 168 and disagree on none, but on 70 of them the second source is a sibling commercial listing rather than an independent compilation. Every intermediate halt time is single-sourced — the exports carry endpoints, duration, halt count and distance, not the times in between, which is 1,042 of the 1,378 halt calls here. And nothing is checked against a primary Indian Railways timetable giving times: the Ministry list settles identity, not the clock.
What the map does not draw. There are no state boundaries — the Survey of India composite used here is the national outline only, and the rest of India’s railway, drawn faint underneath, does the orienting instead. Thirty route segments across ten routes are straight hops because the open rail data predates the track, the Katra–Srinagar line most visibly; those trains say so in their own panel. Nine station coordinates, 1.6% of all halt calls, were placed by hand.
What this will not do. No live tracking, no delay or cancellation data, no predicted running, and no modelled positions dressed up as observed ones. Where a timetable could not be sourced it is marked unverified rather than filled in. Widely-copied enumerations of “164 services” or similar are not quoted here: most still carry the two withdrawn Udaipur pairs, and they collapse the two Tatanagar–Patna routings into one. This count is built from the Ministry list, service by service, and stated with its own arithmetic above so you can check it.
Route geometry and the ghost network: DataMeet Railways, ODbL. National boundary: DataMeet / Survey of India. Timetables: public listing sites, compiled August 2026 — timetables drift, and this is a snapshot.