Transit insights
Fleet status
See published fleet inventory, reliability and current vehicle observations with their source limits.
Share this page
Share this page
Use the permanent public link to this page and its sources.
Only the public link is shared, with a short tag that names the app you picked. Panel state, location, receipts, and other browser-only details are left out. Email and social services apply their own privacy terms.
A dated fleet inventory and maintenance report sit beside current public vehicle observations. They answer different questions.
Fleet composition, not the number available for today’s service.
OC Transpo Transit Committee update · slide 22 ↗Current vehicle observations, not fleet availability or repair status. Latest feed observation: Oct 7, 2026, 9:14 a.m.
Open observed vehicles ↗Retained public GTFS-RT positions
What did public vehicle feeds show?
Look back at retained position samples for one service date. These are feed observations, not a count of physical buses or completed trips.
OC Transpo
STO
Latest retained position:
Recorded vehicle-feed checks
Checks of the operators’ vehicle feeds recorded for this date. These records do not show whether every planned check ran.
OC Transpo
- Response contained records
- 316
- Empty response
- 0
- Old data
- 0
- Check failed
- 0
Last recorded check: · Last successful check:
STO
- Response contained records
- 283
- Empty response
- 33
- Old data
- 0
- Check failed
- 0
Last recorded check: · Last successful check:
Which feed IDs were seen?
One selected service date and operator. These public identifiers are observed in retained positions; they are not a physical vehicle roster.
- 4612OC Transpo
First seen: · Last seen:
1 routes with positions · 4 route–trip claims
Find in retained samples ↗Separate recent feed-ID trip history (not limited to this date or operator) ↗ - 4713OC Transpo
First seen: · Last seen:
0 routes with positions · 0 route–trip claims
Find in retained samples ↗Separate recent feed-ID trip history (not limited to this date or operator) ↗ - 2184OC Transpo
First seen: · Last seen:
2 routes with positions · 4 route–trip claims
Find in retained samples ↗Separate recent feed-ID trip history (not limited to this date or operator) ↗ - 6401OC Transpo
First seen: · Last seen:
2 routes with positions · 4 route–trip claims
Find in retained samples ↗Separate recent feed-ID trip history (not limited to this date or operator) ↗ - 2213OC Transpo
First seen: · Last seen:
2 routes with positions · 5 route–trip claims
Find in retained samples ↗Separate recent feed-ID trip history (not limited to this date or operator) ↗ - 2113OC Transpo
First seen: · Last seen:
2 routes with positions · 3 route–trip claims
Find in retained samples ↗Separate recent feed-ID trip history (not limited to this date or operator) ↗ - 4745OC Transpo
First seen: · Last seen:
3 routes with positions · 3 route–trip claims
Find in retained samples ↗Separate recent feed-ID trip history (not limited to this date or operator) ↗ - 2226OC Transpo
First seen: · Last seen:
1 routes with positions · 1 route–trip claims
Find in retained samples ↗Separate recent feed-ID trip history (not limited to this date or operator) ↗ - 6627OC Transpo
First seen: · Last seen:
2 routes with positions · 2 route–trip claims
Find in retained samples ↗Separate recent feed-ID trip history (not limited to this date or operator) ↗ - 2176OC Transpo
First seen: · Last seen:
2 routes with positions · 4 route–trip claims
Find in retained samples ↗Separate recent feed-ID trip history (not limited to this date or operator) ↗ - 2215OC Transpo
First seen: · Last seen:
3 routes with positions · 4 route–trip claims
Find in retained samples ↗Separate recent feed-ID trip history (not limited to this date or operator) ↗ - 6514OC Transpo
First seen: · Last seen:
2 routes with positions · 4 route–trip claims
Find in retained samples ↗Separate recent feed-ID trip history (not limited to this date or operator) ↗ - 6550OC Transpo
First seen: · Last seen:
1 routes with positions · 3 route–trip claims
Find in retained samples ↗Separate recent feed-ID trip history (not limited to this date or operator) ↗ - 4617OC Transpo
First seen: · Last seen:
1 routes with positions · 2 route–trip claims
Find in retained samples ↗Separate recent feed-ID trip history (not limited to this date or operator) ↗ - 2223OC Transpo
First seen: · Last seen:
2 routes with positions · 2 route–trip claims
Find in retained samples ↗Separate recent feed-ID trip history (not limited to this date or operator) ↗ - 4776OC Transpo
First seen: · Last seen:
1 routes with positions · 5 route–trip claims
Find in retained samples ↗Separate recent feed-ID trip history (not limited to this date or operator) ↗ - 2109OC Transpo
First seen: · Last seen:
1 routes with positions · 1 route–trip claims
Find in retained samples ↗Separate recent feed-ID trip history (not limited to this date or operator) ↗ - 6396OC Transpo
First seen: · Last seen:
2 routes with positions · 2 route–trip claims
Find in retained samples ↗Separate recent feed-ID trip history (not limited to this date or operator) ↗ - 4841OC Transpo
First seen: · Last seen:
2 routes with positions · 2 route–trip claims
Find in retained samples ↗Separate recent feed-ID trip history (not limited to this date or operator) ↗ - 2205OC Transpo
First seen: · Last seen:
1 routes with positions · 4 route–trip claims
Find in retained samples ↗Separate recent feed-ID trip history (not limited to this date or operator) ↗ - 2520OC Transpo
First seen: · Last seen:
5 routes with positions · 6 route–trip claims
Find in retained samples ↗Separate recent feed-ID trip history (not limited to this date or operator) ↗ - 2535OC Transpo
First seen: · Last seen:
2 routes with positions · 4 route–trip claims
Find in retained samples ↗Separate recent feed-ID trip history (not limited to this date or operator) ↗ - 6593OC Transpo
First seen: · Last seen:
0 routes with positions · 0 route–trip claims
Find in retained samples ↗Separate recent feed-ID trip history (not limited to this date or operator) ↗ - 4640OC Transpo
First seen: · Last seen:
0 routes with positions · 0 route–trip claims
Find in retained samples ↗Separate recent feed-ID trip history (not limited to this date or operator) ↗ - 4814OC Transpo
First seen: · Last seen:
3 routes with positions · 4 route–trip claims
Find in retained samples ↗Separate recent feed-ID trip history (not limited to this date or operator) ↗
Showing up to 25 IDs in a stable order. Use Next to continue; your browser Back returns to the previous page.
Recent retained service dates (up to seven)
- 2026-10-01 · OC Transpo572
- 2026-10-01 · STO206
- 2026-10-02 · OC Transpo557
- 2026-10-02 · STO199
- 2026-10-03 · OC Transpo360
- 2026-10-03 · STO64
- 2026-10-04 · OC Transpo354
- 2026-10-04 · STO62
- 2026-10-05 · OC Transpo568
- 2026-10-05 · STO189
- 2026-10-06 · OC Transpo568
- 2026-10-06 · STO209
- 2026-10-07 · OC Transpo552
- 2026-10-07 · STO200
Routes observed on this date
- Inspect 75Open route 7550 route–trip assignments seen
- Inspect 39Open route 3944 route–trip assignments seen
- Inspect 98Open route 9842 route–trip assignments seen
- Inspect 6Open route 641 route–trip assignments seen
- Inspect 88Open route 8841 route–trip assignments seen
- Inspect 85Open route 8536 route–trip assignments seen
- Inspect 400Open route 40035 route–trip assignments seen
- Inspect 12Open route 1235 route–trip assignments seen
- Inspect 68Open route 6835 route–trip assignments seen
- Inspect 40Open route 4035 route–trip assignments seen
- Inspect 24Open route 2434 route–trip assignments seen
- Inspect 41Open route 4134 route–trip assignments seen
Showing the 12 routes with the most observed trip assignments.
Method: retained public position feed IDs grouped by Toronto service date (04:00–03:59). The peak is the largest sampled minute, not an in-service or fleet peak. Feed IDs can change or be reused. The expected polling schedule is unavailable. A minute without retained positions could be an empty feed, a failed request, or a collection gap.
September 2026 inventory
What makes up the bus fleet?
Official inventory by vehicle type, September 2026.
- 60-foot articulated
- 250 82*
- Double-decker
- 10 10*
- 40-foot diesel
- 260 260*
- 40-foot electric
- 175 354*
* September 2027 projection: 706 buses in the fleet.
OC TRANSPO · September 2026 inventory
How often do buses break down?
A fleet-wide average of kilometres travelled before a breakdown; it is not a daily count of buses in repair.
Q4 2027 projection: 13,750 km
Compare vehicle types
* Q4 2027 projection
OC TRANSPO · September 2026
What share of maintenance is planned?
This is the mix of maintenance work, not the share of vehicles in repair.
OC Transpo Transit Committee update · slide 25 ↗OC Transpo · before the January 2025 opening
South O-Train inventory
- Stadler FLIRT trainsets
- 7
- Alstom LINT trainsets
- 6
Operator-reported trainsets for Lines 2 and 4, not passenger cars or a current count available for service. Line 1 availability and repair counts are not established by this inventory. A missing train position does not mean it is out of service.
OC Transpo train inventory ↗STO · 2025 annual report
STO regular bus inventory
374- Regular diesel
- 131
- Regular hybrid
- 145
- Articulated diesel
- 59
- Articulated hybrid
- 37
- Electric
- 2
Paratransit minibuses, separate from regular buses: 24.
This annual inventory does not say how many vehicles are available or in repair today.
STO 2025 annual report ↗Investigate a vehicle observation
Search the live public-feed records by route or feed ID. Feed IDs have not been verified against physical fleet numbers.
Open observed vehicles ↗The September 2027 figures are projections, not observed inventory. The update does not publish a current in-service or repair count on these slides.
Official feeds, calculated measures, civic data, and rider observations stay visibly separate. Missing evidence is unavailable, never zero.