About Lines & Runs

In bus scheduling, a run (called a block in GTFS ⧉) is a sequence of trips assigned to a single vehicle for a service day. A run isn't tied to one route since a bus can start on one route, interline onto another, and finish on a third, all as part of the same continuous assignment. This creates a naming problem: since a bus's physical run box (the display showing its identifier) usually only fits a couple of digits, and the run itself can span multiple routes, agencies need a way to label runs that doesn't just default to "route number."


Run identification

On this site, runs are labeled XXX / YY, where XXX is the Line and YY is a sequential identifier that doubles as the physical run number. Numbers are assigned in order, though the lowest number still available on a Line isn't guaranteed to be the one used, since assignment can skip around as runs are built and retired through the day. Within a service day, no two runs on the same Line carry the same number at the same time, but the number alone doesn't identify a run. The Line does, so buses on different Lines can carry the same number at once without conflict. Runs are also day-specific: because schedules differ by service day (weekday, Saturday, Sunday, holiday), "Run 02" on a Monday is a completely different assignment than "Run 02" on a Saturday, despite sharing a label.

Each run is made up of individual trips. In GTFS, trips belonging to the same run are linked by the block_id field in trips.txt, so when block_id is populated reliably, trips sharing a block_id are exactly the trips that make up one vehicle's run.

Because TTC buses display their run number to the public in a run box on the windshield, this site lets you look up a run by its Line and number. The run box shows a yellow or white 2-digit number, and single digits are padded with a leading 0 or X, whereas this site always pads with a leading 0.


"Also covers" vs. "Interlines with"

On run/block pages, you'll sometimes see one of two notes listing extra routes alongside the ones already shown for that run:


Try it

Here's what a Line + Run search looks like on the home page ↗. It's shown here for reference only:

Although this search asks for a Line, it understands interlining and "also covers" relationships, so it can resolve a plain route number back to the correct Line/Run even if your request would otherwise be ambiguous.


Why is it called "Line"?

Grouping a run's trips under one dominant route is standard practice for transit agencies across Canada and the US (it's just not often given a rider-facing name), and the TTC doesn't use it operationally at all! So, 'Line' was chosen to represent this concept, even though it isn't standardized terminology. Also called: home route, dominant line, dominant route, or block group, depending on the agency and whom you ask.

This page reflects observed TTC practice and is provided for reference only. It is not affiliated with, endorsed by, or verified by the TTC, and may contain inaccuracies. See the full disclaimer ↗ for details.