gb‑transit
Rebuilt every night

The British rail timetable, as GTFS.

Every passenger train, sleeper, replacement bus and timetabled ferry in Great Britain — converted from the industry’s DTD feed, validated, and published as a plain zip you can bookmark or script against.

Covers
11/11/2026 → 11/02/2027
Trips
362,395
Built from
RJTTC999.ZIP
Built
11 Nov 2026, 12:55

Choose your feed

Same identifiers, different level of detail. Which to take depends on what you’re building.

gtfs.zip

The standard feed. Stops where passengers can board and alight, and nothing else — the shape every routing engine and trip planner expects.

  • Drops straight into OpenTripPlanner
  • Smaller, faster to load
  • Splits and joins resolved
  • Every trip drawn as a line
Trips
362,395
Stop times
3,853,681
Shapes
12,381

gtfs‑national‑rail‑only.zip

The standard feed without the services National Rail does not hold authority over — no tube, no Metro, no ferries, no scheduled buses, and no replacement buses TfL runs.

  • For a feed merged with other sources
  • Where those sources describe the metro better
  • Same identifiers as the standard feed
Trips
337,767
Stop times
3,717,732

gtfs‑rail‑and‑tfl.zip

The National Rail only feed with TfL's tube, DLR, trams, river boats and cable car beside it — journeys across London on the trains that run, not on fixed tube links.

  • For journeys that cross London
  • Tube stations inside a rail station are its platforms
  • Powered by TfL Open Data
Trips
385,090
Stop times
4,709,850

Every link resolves to the most recent build, so it can be bookmarked or scripted against and will never need changing. All three feeds in detail →

What’s inside

Passenger rail

The full national timetable, including sleeper services.

Replacement buses

Rail replacement road services as the timetable carries them.

Ferries

The shipping legs that appear in the rail timetable.

One source

Everything comes from the Rail Delivery Group’s DTD feed.

Checked before release

No broken feed ever ships

Every build runs through the MobilityData validator first. A build with a referential integrity error is never published — you get yesterday’s good feed instead of today’s bad one.

Read this first

The decisions made for you

Identifiers, splits and joins, service days and the extra columns are all choices the GTFS specification does not make. Using this data states every one of them.

Or build it yourself

The tool that produces this feed is open source, and it needs no database. Point it at a DTD file and it writes the zip.

$ npm install -g cif2gtfs$ cif2gtfs build --source RJTTFxxx.ZIP --out gtfs.zip

Four tools— for the DTD feeds, the CIF timetable, TransXChange bus data and merging feeds together.

planarnetwork/gb-transit— issues and pull requests welcome.

Sources and licences

Rail Delivery Group
Rail Settlement Plan data licence
Department for Transport
Open Government Licence v3.0
National Rail Enquiries
National Rail Enquiries Knowledgebase licence
Transport for London
Powered by TfL Open Data. Contains OS data © Crown copyright and database rights 2016 and Geomni UK Map data © and database rights [2019]

Read from the build rather than written here, so this cannot credit a source the feed was not built from. The list the build produced is published alongside the feed as enrichment-report.json, and the configuration it came from is gtfs.config.yaml.