Key takeaways
- Over 19 months to July 31, 2026 the TTC logged 43,169 subway incidents. 28,041 of them (65%) carry zero delay minutes, so a raw row count overstates subway trouble about threefold.
- Nine codes covering disorderly patrons, the passenger alarm, injured or ill customers, assaults, people at track level and unsanitary vehicles account for 41.3% of subway delay incidents. The 28 codes beginning E, the equipment family, account for 9.6%.
- The TTC's own May 2026 CEO's Report puts 62% of March 2026 subway delay minutes under External Delays, against 21% for equipment. Different method, same answer.
- GO Rail's rise from 93.9% to 97.1% is not like for like: the annual reports define the allowance as a flat 5 minutes through 2023-24, then 10 minutes on journeys over 90 minutes from 2024-25.
- Metrolinx's own data inventory lists 164 datasets, 5 Open and 159 Under Review, including its passenger charter performance indicators. The gap is publication, not collection.
Most of what the TTC logs as a subway incident delays nobody. Over the 19 months to July 31, 2026 its subway file holds 43,169 logged incidents, and 28,041 of them (65%) carry zero delay minutes. The 15,128 that did hold up service work out to 26.2 a day, at a median of 5 minutes, and the top cause in the TTC's own words is "DISORDERLY PATRON". Read that as a count of events a control centre wrote down, not as your odds on a trip. The file carries no ridership, so nobody can turn it into how often your train is late. GO Transit reports the other way round, as one percentage per service, and its ruler moved.
What one row in the TTC's data actually is
A row is one logged incident. It is not one late train and it is not one late rider. The streetcar and bus readmes define the Min Delay field as the delay to the schedule of the following vehicle. The subway readme is terser and says only "Delay (in minutes) to subway service". Either way, a row means the control centre opened a record. The minutes say what it cost.
Two thirds of subway rows cost nothing.
Mode | Incidents logged | Logged with 0 delay minutes | Delay incidents | Delay incidents per day | Median delay |
|---|---|---|---|---|---|
Subway | 43,169 | 28,041 (65%) | 15,128 | 26.2 | 5 min |
Streetcar | 22,656 | 5,054 (22%) | 17,602 | 30.5 | 10 min |
Bus | 97,901 | 12,414 (13%) | 85,487 | 148.2 | 13 min |
LRT (Lines 5 and 6) | 4,088 | 1,675 (41%) | 2,413 | 10.2 | 6 min |
Those are the TTC's four open delay files, published by the City: subway, streetcar, bus and LRT. Every other figure counts only rows of one minute or more. Count raw rows instead and you overstate subway trouble about threefold.
On subway delay rows the median gap between vehicles is 8 minutes. On bus rows it is 26 minutes, so the modes are never added together. The LRT file starts later, on December 7, 2025, so its per day figure uses its own 237 days.
Subway delays are short. 48% ran under 5 minutes and 35% ran 5 to 9 minutes. Only 4.9% reached 20 minutes or more.
What actually delays the subway
People, mostly. Not machines. These are the ten codes that hold up the most trains, in the TTC's own wording.
TTC code | The TTC's description of the code | Delay incidents | Share | Delay minutes | Median |
|---|---|---|---|---|---|
SUDP | DISORDERLY PATRON | 1,840 | 12.2% | 11,728 | 5 min |
MUPAA | PAA - NO TROUBLE FOUND | 1,218 | 8.1% | 5,090 | 4 min |
MUIR | INJURED/ILL CUSTOMER ON TRAIN - MEDICAL AID REFUSED | 1,158 | 7.7% | 8,114 | 5 min |
PUOPO | OPTO (COMMUNICATIONS) TRAIN DOOR MONITORING | 1,026 | 6.8% | 5,089 | 4 min |
SUO | SECURITY OTHER | 712 | 4.7% | 6,089 | 5 min |
MUSAN | UNSANITARY VEHICLE | 678 | 4.5% | 2,936 | 4 min |
TUO | TRANSPORTATION OTHER | 566 | 3.7% | 3,295 | 5 min |
MUI | INJURED/ILL CUSTOMER ON TRAIN - TRANSPORTED | 521 | 3.4% | 5,689 | 7 min |
SUUT | UNAUTHORIZED AT TRACK LEVEL | 507 | 3.4% | 6,140 | 9 min |
MUO | MISCELLANEOUS OTHER | 351 | 2.3% | 2,097 | 4 min |
A PAA is a passenger assistance alarm, the strip you press inside the car. "No trouble found" means staff came, looked and found nothing wrong.
Group the whole code list and the pattern gets blunt. Nine codes cover disorderly patrons, the passenger alarm, injured or ill customers on trains and in stations, assaults, people at track level and unsanitary vehicles. Together they are 6,245 of 15,128 delay incidents (41.3%) and 42,804 of 117,924 delay minutes (36.3%). One borderline code sits outside that group. MUD, "DOOR PROBLEMS - PASSENGER RELATED", is filed as a door fault rather than a passenger cause, and its 166 incidents would take 41.3% to 42.4%. Against all that, the 28 codes beginning E, the TTC's equipment family as we read it off the descriptions, come to 1,448 incidents (9.6%) and 10,217 minutes (8.7%). The two sides use different tests, one on what the description says and one on the first letter, because the TTC publishes no legend for the letters.
The TTC counts this a different way and lands in the same place. Its May 2026 CEO's Report puts 62% of March 2026 subway delay minutes under "External Delays", led by injured or ill customers at 18% and disorderly patrons at 11%. Equipment is 21%. Different month, coarser grouping, so the two sets are never added together. The same report notes that "while total subway delays decreased 0.5% m/m and 8% y/y, passenger-related delays increased 10.5% m/m contributing notably to Line 1 performance".
Where and when delays get logged
Line | Delay incidents | Per day | Delay minutes | Median | Logged with 0 minutes |
|---|---|---|---|---|---|
Line 1 Yonge-University | 8,280 | 14.4 | 63,425 | 5 min | 62% |
Line 2 Bloor-Danforth | 6,239 | 10.8 | 49,571 | 4 min | 67% |
Line 4 Sheppard | 603 | 1.0 | 4,825 | 5 min | 64% |
Line 1 leads because it runs the most service. Stations work the same way.
Station | Delay incidents | Per month | Delay minutes | Median |
|---|---|---|---|---|
Bloor-Yonge | 801 | 42.3 | 4,969 | 4 min |
Kipling | 669 | 35.3 | 4,324 | 4 min |
Kennedy | 619 | 32.7 | 3,540 | 4 min |
Finch | 578 | 30.5 | 3,282 | 4 min |
St George | 513 | 27.1 | 3,581 | 5 min |
Wilson | 507 | 26.7 | 3,115 | 4 min |
Eglinton | 437 | 23.1 | 3,938 | 5 min |
Sheppard-Yonge | 396 | 20.9 | 3,275 | 5 min |
Bloor-Yonge tops the list because it is the transfer point between the two busiest lines, not because its riders wait more often. These files record no ridership, so no rate per rider can come out of them.
Two caveats ride with the data. The station field is cut off at 22 characters, leaving 1,237 spellings for roughly 70 stations. Any ranking depends on how those spellings are merged, and the rules used here are recorded with the study. The TTC's published code list also misses codes in the data. Subway code SUL turns up 943 times with no published meaning, and 6,835 rows across the four files carry a code that is not described. Those rows are counted, never guessed at.
The hours
Part of the day | Delay incidents | Share | Per hour, per day |
|---|---|---|---|
AM rush 06:00 to 08:59 | 2,682 | 17.7% | 1.55 |
Midday 09:00 to 14:59 | 3,977 | 26.3% | 1.15 |
PM rush 15:00 to 18:59 | 3,561 | 23.5% | 1.54 |
Evening 19:00 to 23:59 | 3,307 | 21.9% | 1.15 |
Overnight 00:00 to 05:59 | 1,601 | 10.6% | 0.46 |
Rush hour logs slightly more delay incidents per clock hour, but not by much. These counts carry no ridership and no trip counts, so they cannot say how the peak changes your own chance of a delay. The busiest single hour is 17:00 to 17:59 with 982 delay incidents, then 08:00 to 08:59 with 978.
The three worst days were all snow days
January 26, 2026 lost 2,871 delay minutes across 52 incidents. January 25 lost 2,713 across 51. February 16, 2025 lost 2,342 across 43. A normal day runs 174 delay minutes at the median and 204 at the mean. The TTC's own top code on each of those days was an ice, snow or weather code. Remember that when the GO figures arrive.
GO's numbers, and the ruler that moved
GO publishes one percentage per service and no delay log at all. That percentage is on-time performance: the share of trips arriving within an allowed number of minutes.
Read the allowance before the number. For GO Rail it is 5 minutes at the final stop on journeys under 90 minutes, and 10 minutes on trips over 90 minutes. For GO Bus it is 15 minutes. Every figure is a rolling 12-month average.
Service | 2022-23 | 2023-24 | 2024-25 | Newest published, Q3 FY2025-26 | Target |
|---|---|---|---|---|---|
GO Rail (the allowance changed for 2024-25) | 93.9% | 96.8% | 97.1% | 96.9% | 95% |
GO Bus | 96.0% | 96.3% | 96.0% | 96.6% | 96% |
UP Express | 97.8% | 98.2% | 97.8% | 97.6% | 97% |
The annual columns come from the Metrolinx Annual Report 2024-25, page 80. The last column is from the operations report to the Metrolinx board on February 12, 2026, the newest GO Rail figure that exists. One cell carries a footnote. GO Bus 2023-24 is 96.3% in that year's own annual report and 96.4% in the next year's chart. The older report prints both figures, and the original is used here.
The caveat belongs in the same breath as that GO Rail row: the series is not like for like. The 2022-23 and 2023-24 annual reports both define an on-time GO train as one arriving within five minutes, with no exception for long trips. The ten-minute allowance for journeys over 90 minutes first appears in the 2024-25 report. So 93.9% and 96.8% were measured one way and 97.1% another. The trips that extra allowance covers are the long ones, the ones most likely to fail a flat test. No motive is claimed here. The point is that 97.1% is not answering the question 93.9% answered.
Metrolinx publishes two definitions of the same measure right now. The annual report has the split version above. The Customer Charter, the scorecard aimed at riders, still has the flat one: "We will run 95% of trains within 5 minutes of scheduled time". That page carries the words "Last updated July 2023" and shows 94.6% for trains against a 95% target. So the number on GO's customer scorecard is three years old and under its own goal. GO's own You're Good to GO page advertises 97% to the same riders, on the newer definition. Two rider-facing pages, two numbers, two rulers. Metrolinx is reworking the bus definition too, its Business Plan 2026-27 says, because scheduled GO bus trips "vary from approximately 20 minutes to more than three hours".
One more caveat is unverified. The Auditor General found in 2020 that Metrolinx's on-time calculation "did not include delays due to some external factors that Metrolinx considered to be out of its control, such as extreme weather conditions". The current annual report does not say whether that still applies, so treat it as unconfirmed, not as today's rule. It would matter, because the TTC's three worst days were all snow and ice days and the TTC counts them.
Nobody publishes GO delays by corridor
GO Rail punctuality is one system-wide number covering all seven corridors. Nothing is published for the Barrie line or the Kitchener line on its own.
One per-corridor table exists, and Metrolinx did not build it. The Auditor General published it in December 2020. In 2019/20, 14.0% of the Kitchener line's 9,698 scheduled trips were delayed or cancelled, against 4.6% on Richmond Hill and 9.5% across all 116,450 trips. Read the label closely. That is a combined delay and cancellation rate for 2019/20, not on-time performance, so 14.0% does not mean Kitchener ran at 86%. It is six years old and predates the pandemic. It is here because a three-fold spread between corridors is what one system-wide number hides.
The gap is publication, not collection. The 2020 Metrolinx Open Data Inventory, still linked from the live open data page, lists 164 datasets. Five are marked Open and 159 "Under Review". Two withheld entries matter here. Entry 63 is the "GO Transit Passenger Charter Key Performance Indicators". Entry 131 is "Service Guarantee Trips", holding "the number of trips run during each month, and the number that were eligible for the Service Guarantee refund based on reasons for delay". Entry 97, monthly GO Rail ridership by station and corridor, is Open.
Why you cannot line the two agencies up
GO Rail | GO Bus | TTC subway | TTC bus | |
|---|---|---|---|---|
Newest published | 96.9% | 96.6% | 93.0% (April 2026) | 77% (April 2026) |
Lateness allowed | 5 min, or 10 min over 90 min | 15 min | not a lateness test | not a lateness test |
Measured where | Final stop | Scheduled arrival point | End terminal | End terminal |
Averaged over | Rolling 12 months | Rolling 12 months | One month | One month |
A GO bus gets three times the grace a GO train gets, which is most of why it scores higher than a TTC bus. The TTC's measure is not a lateness test at all. It is "Adherence to Schedule at Route End Terminals", relabelled "Headway Adherence - End Terminal" for the subway in May 2026. And a rolling 12-month average absorbs a bad winter, while monthly reporting does not. TTC streetcar on-time performance shows up as 54% in January 2026 against a 90% target. The TTC blames the weather: "Heavy snowfall cut roadway capacity and blocked streetcar tracks".
Neither agency measures lateness where you are standing. GO measures arrival at the final stop; the TTC measures the end of the run. A number in the nineties is compatible with a long wait on a platform in the middle of a line.
What this is good for
None of this is a live feed
These files lag by about a month. For whether your train is moving right now, the TTC runs service alerts, service advisories for planned closures, and a machine-readable GTFS-Realtime disruptions feed. None is archived, so none says how bad a normal week is.
Is it getting worse? Mixed, and small. From 2024 to 2025 subway delay incidents fell 3.2% and subway delay minutes fell 4.7%. Bus delay incidents rose 4.0%. Streetcar delay incidents fell 4.4% while streetcar delay minutes rose 11.3%. Two years side by side is not a trend.
Frequently asked questions
Why is the TTC subway so slow?
On the delay logs, the biggest single reason is other passengers. Nine codes covering disorderly patrons, the passenger alarm, injured or ill customers, assaults, people at track level and unsanitary vehicles cover 41.3% of subway delay incidents. The 28 codes beginning E, the equipment family, cover 9.6%.
Are there any TTC delays in Toronto today?
This page cannot answer that. The open delay files are refreshed monthly and ran to July 31, 2026. For today, use the TTC's service alerts or service advisories pages.
Which TTC subway line has the most delays?
Line 1 Yonge-University, with 8,280 delay incidents in 19 months against 6,239 on Line 2 and 603 on Line 4. That is a count of events, not a rate per trip, and Line 1 runs far more service than Line 4. On the TTC's April 2026 punctuality figures, Line 2 scored lowest at 90.2%, against 91.6% on Line 1 and 98.5% on Line 4.
Where can I get the TTC delay data myself?
How reliable is GO Transit?
Metrolinx reports 96.9% on-time for GO Rail, its newest published figure, against a 95% target. Two conditions come with it. A train counts as on time within 5 minutes at its final stop, or 10 minutes on journeys over 90 minutes. The figure is a rolling 12-month average. There is no public GO delay log to check it against.
Does GO Transit give refunds for delays?
Yes. Metrolinx runs a Service Guarantee. The Auditor General describes it as covering train delays of 15 minutes or more, and only where GO Transit is responsible. Equipment and signal failures count. Severe weather, medical emergencies, accidents and police investigations do not. That audit counted 824,901 refunds issued from 2015/16 to 2019/20. Metrolinx publishes no current payout figures. Its own 2020 open data inventory lists a Service Guarantee Trips dataset, which counts each month's trips that qualified, and marks it Under Review.
Sources (25)
- TTC Subway Delay Data · Toronto Transit Commission via City of Toronto Open Data (retrieved )
- TTC Streetcar Delay Data · Toronto Transit Commission via City of Toronto Open Data (retrieved )
- TTC Bus Delay Data · Toronto Transit Commission via City of Toronto Open Data (retrieved )
- TTC LRT Delay Data · Toronto Transit Commission via City of Toronto Open Data (retrieved )
- TTC GTFS-Realtime (GTFS-RT) Service Disruptions · Toronto Transit Commission via City of Toronto Open Data (retrieved )
- CEO's Report, Toronto Transit Commission, May 2026 (subway edition, reporting March 2026) · Toronto Transit Commission (retrieved )
- CEO's Report, Toronto Transit Commission, June 2026 (bus edition, reporting April 2026) · Toronto Transit Commission (retrieved )
- CEO's Report, Toronto Transit Commission, March 2026 (streetcar and LRT edition, reporting January 2026) · Toronto Transit Commission (retrieved )
- CEO's Report (index of every monthly report) · Toronto Transit Commission (retrieved )
- TTC Service alerts (live disruption feed) · Toronto Transit Commission (retrieved )
- TTC Service advisories (planned closures and short-term disruptions) · Toronto Transit Commission (retrieved )
- TTC.ca home page, on-time performance and elevator status widget · Toronto Transit Commission (retrieved )
- Metrolinx Annual Report 2024-25 (On-Time Performance KPIs, page 80) · Metrolinx (retrieved )
- Metrolinx Annual Report 2023-24 (On-Time Performance definition, flat five minutes) · Metrolinx (retrieved )
- Metrolinx Annual Report 2022-23 (On-Time Performance definition, flat five minutes) · Metrolinx (retrieved )
- Operations Quarterly Report, FY2025-26 Q3, Metrolinx Board meeting 2026-02-12, item 11.2 · Metrolinx (retrieved )
- Metrolinx Business Plan 2026-27 (on-time performance definitions) · Metrolinx (retrieved )
- Metrolinx Customer Charter (public scorecard, last updated July 2023) · Metrolinx (retrieved )
- Metrolinx Annual Reports and Corporate Plans (index) · Metrolinx (retrieved )
- You're Good to GO (GO Transit's on-time performance claim and its definition footnote) · GO Transit / Metrolinx (retrieved )
- Metrolinx Open Data · Metrolinx (retrieved )
- 2020 Metrolinx Open Data Inventory (164 datasets, 5 open, 159 under review) · Metrolinx (retrieved )
- Value-for-Money Audit: Metrolinx Operations and Governance (2020 Annual Report, chapter 6) · Office of the Auditor General of Ontario (retrieved )
- Regional and municipal transit data (CUTA operating statistics including GO Transit) · Ontario Ministry of Transportation (retrieved )
- Ontario Data Catalogue (searched for GO Transit, Metrolinx and on-time performance) · Government of Ontario (retrieved )
How this guide was made
Computed on August 27, 2026 from the TTC's four open delay datasets (subway, streetcar, bus and LRT) downloaded that day from the City of Toronto's open data portal, covering January 1, 2025 to July 31, 2026, joined to the TTC's own code description files. The TTC's aggregate figures come from its CEO's Reports to the TTC Board for March, May and June 2026. The GO Transit figures come from the Metrolinx Annual Reports for 2022-23, 2023-24 and 2024-25, the Operations Quarterly Report to the Metrolinx Board of February 12, 2026, the Metrolinx Business Plan 2026-27, the Metrolinx Customer Charter, GO's own on-time performance page, the 2020 Metrolinx Open Data Inventory and the Auditor General of Ontario's 2020 value-for-money audit of Metrolinx. Every PDF was read directly rather than through a summary.














