GTFS·X now does service planning: generate timetables, block vehicles, compare variants

by Mark Egge (admin) · started 2026-06-19 · 1 reply

Mark Egge (admin) · 2026-06-19 · edited

GTFS·X started as a fast way to build and fix a GTFS feed. With this release it does a bit more: light service planning, aimed squarely at small and rural agencies. You can sketch service, see what it costs, and hand off a clean feed, without leaving the editor or buying a five-figure scheduling package.

Four new things, all in the map's pane (there's a new Map / Timetable / Blocks switcher at the top of it):

Generate a timetable from a headway. Draw a route, add stops, then open the Timetable view and hit Generate service. Give it a window (06:00 to 22:00), a headway ("a bus every 30 min"), and an end-to-end run time, and it lays out the trips. The run time is pre-filled from the route's shape length, so most of the time you just pick a window and a headway. Want a compact feed instead? Flip it to frequency-based and it writes a frequencies.txt window.

Block trips onto vehicles. The new Blocks view is a vehicle-by-time chart: each row is a bus, trip bars are colored by route, and the gaps between them show layover and deadhead. Quick Block auto-chains feasible trips onto as few vehicles as it can, Interline lets a vehicle switch routes, and you can drag any trip onto a different vehicle. It's a transparent heuristic you edit, not a solver. The header tracks your vehicle count and breaks the daily and annual cost into service, layover, and deadhead hours.

Set running times. Once trips exist, set the pattern's end-to-end run time and every trip re-times to match while keeping its start, so your headways don't move. Good for pushing a realistic run time through a generated schedule or stretching it for a busier season.

Compare service variants. This is the one I'm most curious to hear about. Fork the feed into a named variant, change it (add a Saturday span, cut a route, re-time a pattern), and compare it to your baseline. You get a side-by-side delta: change in trips, revenue hours, peak vehicles, and weekly + annual cost, plus a per-route breakdown like "Route 5: +12 trips/week, +$48k/yr". No second copy of the feed to keep straight. (These are different from the route-visibility "Scenarios" you may already use; variants carry real edits and a cost comparison.)

Docs: https://www.gtfsx.com/docs/service-planning/

Timetable generation, blocking, and running times are free for everyone; variant comparison is an Agency-plan feature. If you're costing a service change this budget season, give it a spin and tell me where it falls short. Especially keen on feedback about the blocking heuristic's defaults (layover window, deadhead speed) and what the variant comparison should show that it doesn't yet.