Analysis of Route 70 O’Connor for October 2019

When I publish route analyses, they are usually of the heavyweights like the King and Queen streetcars, or major bus routes like those on Finch, Dufferin, Keele, or Don Mills.

Back on Saturday afternoon, October 5, 2019, I was watching my Twitter feed, and a message went by from someone complaining “where is my bus?” about 70 O’Connor. I looked at Nextbus and to my amazement, all four of the buses were running in a pack headed eastbound on O’Connor, and there was no service anywhere else on the route. I camped on to the route to see what would happen and this is how they evolved.

  • 3:55 pm: Four buses headed outward on the common section of the route on O’Connor
  • 4:00 pm: Two buses are headed east to Warden Station and two northeast to Eglinton
  • 4:33 pm: All four buses are southbound on Coxwell
  • 4:37 pm: All four buses are at Coxwell Station

To put this in context, here is the section from the TTC’s Scheduled Service Summary which describes the service as it should be on 70 O’Connor. (Click on the table to expand it.)

Before we go any further, there are a few important points here:

  • 70 O’Connor is not the most important route in the TTC’s system, but it serves Toronto East General Hospital and one would hope that this connection to the subway would be reliable. This route carried 7,745 riders per weekday in December 2016, the date of the most recent route-level statistics published by the TTC on Toronto’s “Open Data” site. This puts it in the same league as 6 Bay and higher than the express service to University of Toronto Scarborough.
  • When buses run together for an extended period with no visible effort to space out the service properly, this shows that nobody is “minding the store”. From a rider’s point of view, the long gaps in service are precisely why “TTC” means “Take The Car” when they cannot depend on service to show up. This theme was part of my recent exploration of the 41 Keele bus.
  • Service that operates this erratically will not attract customers, and even worse, a lot of the space in that pack of four buses was probably empty. When the TTC looks at vehicle loads, they do this on an average basis, and will see low utilization, a possible incentive for a service cut.

Making routes like this work properly (not to mention the really big routes that carry tens of thousands daily) is important. This is central to making transit service attractive.

On Saturday afternoon, there are four buses providing, in theory, a combined service every 11 minutes on the common portion of the route, and every 22 minutes on the branches.

After seeing this, I thought, well, maybe it’s an oddity, something must be wrong, and surely the TTC will sort things out. But just for interest, I added route 70 to my request for vehicle tracking data to see how it behaved for the rest of the month, including the parts of October 5 I had not been watching online. The results were not at all pretty, and I let loose a blast on Twitter about the appalling state of service. It struck a nerve and sparked the most activity I have seen on a Tweet of mine for quite some time. Riders, and not just on O’Connor, see bad service every day.

There is a problem with NextBus (the source of all vehicle tracking seen outside of the TTC) in that it only tracks scheduled runs. Applications that use a route-based data feed from NextBus will not “see” any extra unscheduled buses because NextBus does not follow them. However, they should still exist in the TTC’s source data somewhere. The data I use comes from the TTC, not from NextBus, and should at least show all vehicles that are “signed on” to the route, not just the scheduled buses. If an extra is not signed on to route 70, it will not show up in the data I receive for that route.

The TTC’s position is that I do not have the portion of the tracking data showing unscheduled extras (also known as “RADs” or “Run As Directed” buses) that were used to fill gaps on the route due to construction. My response is that this is as much a face saving stance than an examination of the details. It is one thing to have an extra filling in for extra running time caused by construction, but quite another to have all of the scheduled buses in the same place at the same time with no evident attempt to sort out the service. If the TTC does have records of where the extra(s) operated on O’Connor, I would be happy to receive them and blend them into my analysis. After all, the TTC should be doing the same thing itself already.

Here is what I found, at least for the buses reported in the data provided by the TTC.

Updated 5:56 pm November 20, 2019

The CBC posted a story on their site about this today.

Saturday, October 5, 2019

Click on any of the charts below to expand them in a separate browser tab. Each page covering three hours starting at 7:00 am. The full set for the day is in a PDF linked below them.

An explanation of the format:

Coxwell Station is at the bottom of the page and travel north and east is upward. Because the route branches, there is a separate section to show vehicles on the O’Connor service to Eglinton. Vehicles on this branch will disappear from the lower part of the chart and reappear directly above.

In the morning, the service is well-behaved with buses departing regularly from Coxwell Station and merging properly on their return trips southbound at St. Clair & O’Connor.

By late morning, the even spacing has started to break up, and the Eglinton service is no longer properly meshed with the Warden Station branch. Pairs of buses leave Coxwell Station together starting at 11:40.

Order is restored briefly around 1 pm (13:00), but things really fall apart later with all four buses converging on Coxwell Station around 15:40. They leave together, and this is the cluster of buses we see above in the NextBus snapshots.

The two buses on the Warden Station branch remain close buddies for a few trips until one of them goes out of service just after 6:10 pm (18:10).

Meanwhile, the pair of buses on the Eglinton branch stay fairly close to each other until one of them goes out of service at 8:20 pm. Regular service then is restored with only two buses left on the route.

Full chart set: 70_20191005_Chart

In all of these charts, the slope of the lines is consistent showing that vehicles were not the victims of congestion. They were simply too friendly, and nobody sorted out the service.

And so, I wondered, was October 5 an abberation? What did the weekdays look like?

Tuesday, October 1, 2019

The AM peak of October 1 is not too badly behaved. Some congestion is visible westbound near St. Clair (note the change in the slope of the lines between 8:20 and 9:10), and by 10:00 some bunching is evident inbound to Coxwell Station.

The service gets sorted out, more or less, by 11 am, although one bus sits north of Eglinton. The delay logs for this date show that it was disabled.

In the early afternoon, service on both branches shows bunching. This is in part due to the scheduled swap of vehicles between branches at this time – a pair of buses runs together to Warden on one trip, and runs together to Eglinton on the next one. As we will see below, they were inseparable for hours.

By the PM peak, much of the service was running in a pack with five buses leaving Coxwell Station more or less together at about 3:30 (above) and again at 4:30 (below). The situation continues until after 7:00 pm.

A peculiar thing shows up in the late evening with the Eglinton and Warden Station branches shifting slightly on each trip relative to each other even though they are both supposed to be on a 30 minute headway giving a 15 minute blended service on the common part of the route. Headways between these services vary considerably from trip to trip.

I reviewed the data for the whole month, and this bunching behaviour in the late afternoon occurred to some degree almost every weekday in the month.

On Time Performance and the Embargo on Short Turns

One thing that is quite obvious in these charts is that if a few buses in those clumps were short-turned, something like regular service could be restored. There is no point in sending three buses together to Warden Station, for example, only to have them return in a pack carrying a long gap when at least one of them could have been short turned to fill it. That is what short turns are for.

However, TTC management avoid short turns because the count is reported in the monthly CEO’s report, and the constant decline over recent years gets them a gold star. Unfortunately, this “improvement” hides the problem with gaps and bunches which are not part of the monthly statistics.

The other metric reported by management is “on time performance” at terminals. The premise is that if buses leave terminals on time (define as no more than 1 minute early and up to 5 minutes late), then the rest of the line will take care of itself. As I have shown repeatedly in route analyses, most recently for 41 Keele, even when buses are regularly spaced at the terminal, this quickly degrades into bunched and gapped service because there is little effort to maintain even spacing between buses. However, the condition of service anywhere but the terminal is not reported.

The TTC used to publish an On Time Departure Report for all routes, but this practice stopped after August 2018. The stats for O’Connor were not particularly good, and this goes back to 2015.

Surface construction for the Eglinton Crosstown LRT only began recently, compared to the timeframe of this chart, and it cannot be blamed for the decline in performance shown above.

Headways Leaving Coxwell Station Northbound

Notes about chart formats for new readers:

  • In the charts with the coloured dots, each dot represents one bus. Its y position is the interval in minutes to the next bus before it, and the x value is the time of day. Each day has its own colour, and the trend lines show the overall lie of the data through the day. Dots close to the x axis (values near zero) are buses that are closely following their leaders.
  • In the “box and whisker” charts, the four sections of each hourly column represent quartiles within all of the data for that hour. The middle two (the box) account for half of the service, with the dividing line between the green and blue segments being the median value. The outer whiskers account for the other half of the service, the top and bottom 25% of trips. Ideally, we would see a box that is about 6 minutes wide (the TTC’s target) and fairly short tails on either side indicating that there is not much spread in the values around that target band.

The screenline for Coxwell Station is at Wolverleigh, one block north of the station. This ensures that arrivals and departures are not erroneously recorded for movements at the station.

The chart below shows the headways leaving Coxwell Station for Week 1 of October.

These values lie mainly in a 20-minute wide band, but many of them are close to zero (two or more buses in a bunch) and several are above the 20 minute line. One is over 50 minutes (Friday, October 4) and it is immediately followed by a bunch of four short headways. This is a five-bus bunch leaving the station.

The same data portrayed in box-and-whisker format showing the quartile distribution of values:

Saturdays do not fare much better as we saw in the example above. Saturday October 5th, the day that started me on this exploration, was particularly bad, but there is a lot of scatter in the data for Saturday October 12th as well

Sunday, which should be a quiet day, also has its problems, but not the extremes of other days. All the same, there are a lot of short headways, and the data values cannot possibly represent the TTC’s goal of a six-minute band within the scheduled departures.

The spike in the top quartile at 12:00 was caused by a gap in the Vision data.

Full chart set: 70_201910_NB_Wolverleigh_MonthHeadways

Headways Leaving Warden Station Westbound

The screenline for this service is at Herron Avenue, about 400m west of Warden. This location was chosen because there is a problem with the data reported from Warden Station – some buses never appear to actually cross Warden Avenue itself (in other words, they never report a location east of Warden). To ensure that all vehicles are captured in headway calculations, the screenline is set far enough west to catch all vehicles.

Mea culpa: When I tweeted about headways on this route, I had not caught this problem in the data which caused some very large values to appear at Warden. This has been fixed, but the  maxima are still quite high. Those were “gaps” caused by data errors, but most of the gaps in service were caused by the buses, not by the monitoring system.

Data for the first week of October show a wide scatter in values. This service is supposed to operate every 17-18 minutes until the early evening, but there are many wider gaps, and several buses running at headways below 5 minutes.

Saturday is better, particularly in the morning and evening, but afternoons are very bad on the 5th and 12th of October. Remember that this is the branch of 70 O’Connor that is not affected by construction of the Crosstown at Eglinton and Victoria Park.

Sundays are better than Saturdays, but there is still a lot of scatter in the data especially on the 6th and 13th. Note that the service is scheduled to improve from every 30 to every 20 minutes  in the afternoon, and that is why the points and trend lines drop down a bit after 12:00.

Full chart set: 70_201910_WB_Herron_MonthHeadways

Headways Leaving Eglinton Southbound

In order to be clear of any ad hoc diversions around construction at Eglinton as well as to account for the late evening 70B variant of the route, I placed the screenline at O’Connor and Sunrise. This allows buses to make whatever looping move they will at the north end of the route while giving headway measurements at the point where buses start their inbound journey on the main part of this branch.

Headways inbound at Sunrise show the same patterns as service from the other termini. The values are widely scattered and close-to-zero headways occur even on a service scheduled to run every 17-18 minutes.

Week 1 weekdays:


The trend lines on Sundays behave oddly because the data points do not begin at the y axis, and the big swing on Sunday the 6th is caused by the gap in Vision data mentioned above. On Thanksgiving Monday the 14th, the service begins at 6 am.

Full chart set: 70_201910_SB_Sunrise_MonthHeadways

Headways Southbound on Coxwell from O’Connor

By the time inbound service reaches Coxwell, the headway values are spread over a wide range. As on other routes, any bunching and gapping become more accentuated as one moves along the route as bunches close up and gaps get wider. Here is the service for Week 1.

Although the scheduled headway is under 10 minutes, values much in excess of this are quite common as are values near zero (bunches of two or more vehicles). The charts for other weeks and weekends look just like this.

Full chart set: 70_201910_SB_CoxwellOConnor_MonthHeadways

Travel Times

An important issue in a route’s ability to stay on time is the degree to which the schedules provide adequately for actual conditions on street. 70 O’Connor has not gone through the process of “reliability improvement” seen on many other routes. This could contribute to problems on the route, but it does not explain the abdication of responsibility to maintain regular service.

Wolverleigh to Herron Eastbound

For the Warden Station branch of the route (measured from screenlines just north of Coxwell Station at Wolverleigh, and west of Warden Avenue at Herron), the rise and fall of travel times, especially in the afternoon peak, is quite evident as is the variation in values from day to day. This is typical of weekdays (open the full chart sets below to view data for the whole month). Some buses make the trip within the allotted time, but not all of them, and this chart does not include terminal access or dwell times.

On Saturday, the change in travel times is not as marked, but October 5 does stand out showing that conditions on that day were unusual.

Full chart set: 70_201910_EB_Wolverleigh_Herron_MonthLinks

Herron to Wolverleigh Westbound

The westbound data, as one would expect, show longer travel times in the AM peak than the PM, but the difference is not as marked as for eastbound data.

Saturday data show that travel times were somewhat longer on both the 5th and 19th of October, but there were not wide swings in values.

Full chart set: 70_201910_WB_Herron_Wolverleigh_MonthLinks

Wolverleigh to Sunrise Northbound

As with the branch to Warden Station, the Eglinton branch shows much higher travel times outbound in the PM peak but with a considerable day-to-day variation. This is the week 1 chart.

On Saturdays, the travel times are more consistent, but as with the Warden branch, October 5 (red) shows a wider variation in values. What is intriguing here is that since there are only two buses on the route, the alternating high and low times represent the behaviour of two separate buses and drivers. There is a similar pattern on October 12 (yellow).  (Note that this pattern does not exist on the Warden branch above.) What changed later in the month? A new schedule period with the same schedule, but likely with new operators. This is an example of how service analysis must deal with “data” that do not necessarily represent road conditions, but rather staff behaviour.

Full chart set: 70_201910_EB_Wolverleigh_Sunrise_MonthLinks

Sunrise to Wolverleigh Southbound

As with the Warden Station branch, the difference in peak running time is not as marked south/west bound on this route, but there are still days that are markedly different from others.

Saturday shows the same pattern for inbound trips with longer travel times on October 5th and 19th (red and green).

Full chart set: 70_201910_WB_Sunrise_Wolverleigh_MonthLinks

Sunrise to Eglinton Loop

These charts show the round trip time from O’Connor and Sunrise north to Eglinton, around the loop via Creighton and back to Sunrise and O’Connor. Where there are much shorter times (primarily in the evening) these are buses that took the much shorter turnback without going north of Eglinton (the 70B Eglinton Square routing). Some of these are daytime short turns.

The travel times vary over a wide range showing the effect of construction at Eglinton for the Crosstown LRT.

On Saturday, the travel times here are in a narrower band and with less variation throughout the day. Note that service runs through the loop via Creighton (the 70A routing) all evening and there is no cutback to the 70B Eglinton Square loop. The change in round trip times simply reflects better conditions during the evening.

There is a much more pronounced drop in travel times on Sunday when the 70B service does operate in the late evening.

Full chart set: 70_201910_Sunrise_To_Sunrise_TerminalMonthLinks

O’Connor Between Coxwell and St. Clair

Looking at the route in more detail, it turns out that the major source of congestion is on O’Connor itself in the common portion of the route. This is particularly so east/north bound, and the effect is not the same on every day. This could be due to spillover effects from construction at Eglinton shifting traffic south to St. Clair and O’Connor.


Full chart sets:

36 thoughts on “Analysis of Route 70 O’Connor for October 2019

  1. Thank you so much for this review Steve. My son and I were walking up Coxwell from the subway that early October Saturday afternoon, and I couldn’t believe my eyes when I saw those four buses literally bunched together, knowing that there were only four buses operating across both routes! What a great way to drive away ridership. I live at Coxwell and Cosburn and am very familiar with the unreliability of this route, so much so that I no longer use it. Instead, I will either walk to and from the subway or if I’m in a rush, drive and park close by. It’s a guarantee that I can walk to the subway in about 12 minutes, but waiting for a bus in the middle of the day will almost always easily exceed that.

    Steve said: … it turns out that the major source of congestion is on O’Connor itself in the common portion of the route. This is particularly so east/north bound, and the effect is not the same on every day. This could be due to spillover effects from construction at Eglinton shifting traffic south to St. Clair and O’Connor.

    I’m not so sure. I’ve lived in the area since 2004 and O’Connor between Coxwell and St Clair has always had a lot of congestion, especially north-east bound during the evening rush. But to your point, it does nothing to explain the bunching on weekends or off-peak hours. It is painfully evident that no one is minding this route, or most other TTC routes for that matter. I also place some of the blame on the operators though; why on earth would you ever leave a station right behind another bus, and then continue that pattern on the return trip?! They can’t blame it on traffic congestion on a quiet Saturday afternoon in East York.

    Steve: Thanks for confirming that the traffic congestion outbound on O’Connor is a long standing situation. The TTC appears to be trading on the problems up at Eglinton as the source of all evil in this case, and I think they really are grasping at straws on that.


  2. All of us early early morning commuters see the same type of thing on the 300 Blue Night. Woe betide anyone who has to start work before 7am.


  3. I too can confirm that congestion is a long-time story, the bulk of it is consistently concentrated from Woodbine Avenue, across the O’Connor bridge to St. Clair after which it dissipates considerably.


    Steve, how does the TTC handle the operator rules +1/-5 ?

    Does something flag at Transit Control or a to a route supervisor if a vehicle departs more than 1 minute early or 5 minutes late?

    If yes, what action is supposed to occur as a result procedurely?

    If no, what’s the point of tracking the information if it isn’t used for real-time intervention?

    Steve: There are so many vehicles that do not leave within the 6 minute window that any kind of operator counselling would be meaningless. Moreover, there are many legitimate late departures because of route disruptions. What is more critical are situations where operators habitually tailgate the bus or streetcar in front and “soak” their follower. However, there is no standard for headway maintenance nor any tracking of service quality except at terminals.

    The numbers are generated only for reporting the supposed quality of service, and they have not been produced, at least publicly, since July 2018.


    Relatedly, I’ve been wondering about whether the TTC even has algorithms that flag route/time/operator problems that are consistent over time.

    ie. If buses always left Coxwell more than 1M early or more than 5M late on Saturdays between 2-5pm, shouldn’t that automatically generate a reviewable action report? Does it?

    Just wondering what exactly the TTC does do to ensure service quality, since to most of us, it doesn’t appear to be much at all.

    Steve: I don’t think there are any mechanisms in place to catch this sort of thing.


  4. Whenever the conversation about service management comes up, everyone is always quick to point out that running long routes (as in the 501) in mixed traffic is asking for trouble, and it’s really no surprise that service becomes irregular.

    What these people never seem to acknowledge is that the quality of service is astoundingly poor everywhere, and it seems at all times of the day. About two months ago (October 4) I was outside Don Mills station taking a few photographs, and within the span of about 10-15 minutes I saw both buses operating on the Sheppard-Yonge – Don Mills branch of the route turn into the station, take their layovers, and then leave at the exact same time. Most people would just shrug their shoulders and take the subway, but for those with mobility impairments, climbing up Sheppard Avenue to the nearest subway station is no easy feat. From what I remember these buses were bunched together for quite a few round trips, which generates the additional concern of the environmental impact of running multiple buses together.

    I’ve seen TransSee report 27 minute wait times for the 66 at Queensway and Park Lawn (August 19) and also heard from a friend that all the buses on the 66 were at Old Mills station at some point or other on August 17.

    How is it possible that this issue is so prevalent for such an extended period of time? What are the dispatchers doing when stuff like this goes down?


  5. You fight the good fight Steve, I have been following your for decades. Saw you on CBC today. Keep up the uncompromising advocacy.


  6. I’ll see your 70 O’Connor and I’ll raise you a 92 Woodbine South. A short route, no branches, traffic pretty good during the midday and evening, two buses at 12-minute headway. Should be pretty easy. Over September and October, I counted six different occasions off-peak when both buses arrived running nose to tail. The last time I saw it happen, they did at least 4 runs (2 up / 2 down) that way. A scheduled 12-minute headway becomes a 24-minute headway (a.k.a. “might as well walk”).

    I agree with Leo. That shows me that there is no supervision (or it is ineffective), but it also suggests that the operators don’t care. I can accept that you might catch up to the preceding bus if it is delayed or if you are running light, but then to just keep running together over 3 or more additional runs when you know there are no other buses on the route? Does it not seem unusual to them that they would both leave the terminal together 4 times in a row?

    Actually, came close to happening this morning too. But they weren’t nose to tail today… they were 3 minutes (and 21 minutes) apart.

    Is there something different? I don’t know. Service Planning changed the schedule for “reliability” (!!). The bike lanes are somewhat new (although they shouldn’t be impacting things in the midday). Someone at my stop this morning said that he thought the drop in service quality coincided with the opening of a Tim’s at the south end of the route.

    The CBC covered this today. Stuart Green said something about “no riders filed complaints that day”. Does filing complaints do anything? I started doing it but gave up after the 3rd time. Figured it was pointless to keep on it. But if the TTC takes the position that everything is hunky-dory unless someone complains, then maybe I will reconsider.

    Steve: What really annoys me about “complaints” is that the TTC just cannot admit that service is unreliable, and there is always an excuse. Anyone can look at NextBus to see conditions on routes, but, oh, wait, there are phantom “extras” that don’t show up there, and nobody complained, so it didn’t happen.


  7. Please do the 123 Sherway next. It’s decent during the day, but from early evening until regular service ends, it’s awful. I’m looking at it on NextBus right now (10:13pm). There are 3 buses at the bottom of the route near Long Branch Loop and 1 bus at the top that just left Kipling Station:

    Northbound from Long Branch Loop:
    123C DUE / 123B 2 min / 123B 9 min

    Southbound from Kipling Station:
    123C 29 min / 123B 35 min / 123B 42 min

    Lately, if I chat up a 123 driver about the uneven service, they offer one or more of these reasons:

    – not enough running time in the schedule
    – traffic
    – the TTC is no longer using short turns to fix spacing issues

    All of these might be reasonable excuses earlier in the day, but after 10pm, they make no sense. Most of the route runs on 4-lane arterial roads through industrial areas which have very little traffic.

    There was watermain construction on Brown’s Line all summer, which caused a lot of evening service delays (due to major detours), but it’s finished now, and the evening bus service hasn’t gotten any better.


  8. To be fair, I would agree that the north end of the 70A branch would have been affected by the Eglinton construction. Vic Park was cut off at Eglinton at that time, so the northbound part of the loop had to divert (generally not so bad) and the southbound part had to contend with a lot of extra traffic on southbound Pharmacy and westbound Eglinton, and especially the westbound left to get onto Eglinton Square. The lights were really bad too — if you couldn’t turn left at Eglinton Square in the 15 or so seconds of the green arrow, you were stuck for another 2 minutes in the hopes you might make the next one.

    The counter-argument to that is

    a) that that’s why you have supervisors to manage the route,
    b) recognize that, while short turns may be strongly discouraged, there are cases where they may be the best tool available.

    Example using the set of time-space diagrams for Saturday October 5: at 3:50 PM it would have been evident that there was a problem with 3 of the 4 buses bunched eastbound at Woodbine and the other one only a few minutes behind. Why not turn “blue 70C” (e.g.) at O’Connor and St Clair using the 93 Parkview Hills turnaround so it can fill in the gap the other direction? The other 70C is right there for transferring passengers. (I am guessing they would not want to turn “yellow 70C” because it would need to fit into a certain slot in the evening when each bus starts to alternate between the two branches.) Or turn one of the 70As around using the 70B loop instead.

    I hate getting kicked off a bus on a short turn (especially if it is after having waited for over 45 minutes!) but when the turning bus and the continuing bus are basically side by side…

    To what extent is it a lack of supervision, vs. supervisors being handcuffed in the tools that they are able to use?


  9. Interestingly this is one the routes the TTC inherited from Hollinger Bus Lines after it was nationalized (and growing up I knew older family friends and relatives who resented Metro Toronto and swore that Hollinger had provided better bus service in East York than the TTC). I remember this route was unreliable even in the 1990s but it seems to have gotten substantially worse in the past 5 years or so.

    Unfortunately, the TTC’s “solution” will likely be increasing runtimes even more on weekends, we can look forward to 20-30 minute service on the shared section and >30 minute service on the branches.


  10. I saw the Twitter exchange. I love that @TTCStuart is out in the field playing propaganda-in-chief. Sure it’s management dealing him the crummy hand but if he expects to be able to talk to people as if they’re stupid and get away with it, he deserves all the heat the Twitter mob can muster at him. If he doesn’t like it, he can take it up with management.


  11. I can distinctly remember in the early afternoon of June 21, 2019, waiting at Bay and King for a north-bound no. 6 Bay bus. I saw 4 southbound buses bunched. It took 25 minutes to get a bus. There were two northbound buses leap-frogging. Evidence that the route supervisor did nothing about this situation.

    That tweet triggers an idea. The TTC should open a twitter account (wheresmyride) where passengers tweet their stop and route number and the delay they’re experiencing. The route supervisor must be required to answer immediately, to prove he/she is working. Maybe a phone number, where passengers can text or voice, but the message is published on a web site for all to see in real time.


  12. This is mostly a case of bad drivers. 4 buses running on 11 minute headways do not need a route supervisor to tell them to drive according to their schedule, or failing that to spread themselves out along the route.

    Having said that, it is also bad management. Drivers can only get this bad if management doesn’t do its job, which is to monitor, train, reprimand, discipline, and fire (in that order) drivers as needed to incentivize good operations. Once the don’t-cares are allowed to infest the organization, it becomes less attractive for people who actually want to be part of providing a service, and it can be very difficult to rebuild a culture of doing the job properly.

    Incidentally, while I have very little respect for TTC management, how hard are the last 3 of my management actions to perform in the labour environment? Is this a case where the union will blindly defend even the worst of the bad apples, or is management just afraid of doing their job?


  13. TTC managers may have all of the real time data but it’s clear they don’t do much with it as far as service and headway management goes. My suspicion is that some bad apples are dogging it and keep doing it because management is unwilling to rein them in. Too busy trying to meet their dumb KPI’s. If you can escape punishment every time, why not keep doing it?

    I can recall one night several years ago before the King route was split, listening in on a conversation between the streetcar op and another. He described observing a gap while he was on Dufferin waiting for his time slot to turn back eastbound for his final trip. It sounded like he waited until he saw an eastbound car to appear before sliding in behind it.

    He seemed pleased with himself that he was short turned again on his final trip and was told by control to head straight back to Russell from King instead of having to make the trip up to Broadview Station first.

    If management wasn’t so bad at their jobs, the conversation from control should have been “Quit ——- around!”

    Steve: As someone who has waited on more than one chilly night at Queen and Broadview for a car that should have gone up to Danforth but instead took an early trip back to the carhouse, I am well aware of this situation. There is a big gap between the TTC’s aims for “Customer service” and what they provide on the street. There is far too much self-congratulatory back patting in that organization.


  14. I worked near O’Connor Dr and Bermondsey Rd from 2000 until 2016 and the 70A O’Connor route service was just as appalling back then. The LRT construction is a lame excuse.

    I, plus my co-workers, constantly complained to the TTC and local City Councillors, to no avail.

    I landed up avoiding this route when possible, and would instead take the 23 Dawes Rd bus from Main St station (as it runs approximately every 6 minutes at rush hour), to St. Clair Ave E and Rexleigh Dr and walk 15 minutes to my work location. In the evenings I would do the reverse commute.


  15. “heard from a friend that all the buses on the 66 were at Old Mills station at some point or other on August 17.”

    Looks like all three of them were there at 3:15. One was 17 minutes behind schedule, one 8 minutes behind schedule and one was on time. They all left within 2 minutes of each other.

    This link to TransSee shows the stop history, but requires Premium User status.

    “That tweet triggers an idea. The TTC should open a twitter account (wheresmyride) where passengers tweet their stop and route number and the delay they’re experiencing.”

    If you tweet @ttchelps they will often contact the route supervisor about the problem and sometimes get a legitimate reason for it.


  16. “Relatedly, I’ve been wondering about whether the TTC even has algorithms that flag route/time/operator problems that are consistent over time.”

    I’ve done a bit of analysis of TransSee’s data from Oct 14th to today. These are the block_ids that have the lowest average gap at each stop from the bus ahead of it as measured by a percentage of the scheduled headway. A block set of trips operated by one vehicle. Each day during a board period a block is usually operated by the same drivers, each block is usually operated by more then one.

    Steve jumps in: The data below have been edited to correct a formatting problem triggered by the WordPress comment editor.

    Also I will mention that the Vision extracts I am getting do include the trip id, and so it would be possible to link behaviours day-to-day to specific trips. I have always made a point of not engaging in finger-pointing at specific operators by linking data in this way, although if there are routinely bad actors, their trips tend to stand out in the analysis. It is important also to recognize that the same trip id is not necessarily driven by the same driver all of the time either due to off day patterns or other arrangements.

    Average Gap  Route  Block_id  First trip_id
        67%        63   1688496   39100735
        67%       925   1689680   39134721
        69%       995   1686623   39050975
        70%       506   1685489   39032266
        70%       116   1684388   39013421
        70%       506   1685490   39032267
        71%       506   1685497   39032274
        72%       941   1686372   39048599
        72%       900   1687645   39079095
        72%       506   1685501   39032372
        72%       512   1689368   39125688

    Unfortunately Transit Feeds is now showing the schedule for the next board period, or I could provide links to make it clear when these blocks operate.

    I’m not sure the TTC’s data is refined as TransSee’s to allow it to easily generate this kind of information, but I am open to providing analysis services.

    Steve: Previous schedules are available on transitfeeds. I was just looking them.


  17. The only way to really shame TTC management is to have a real time bus map like YRT, GRT and other agencies in Ontario. A 24 hour video showing how many times bunching occurs on the real time map would show TTC commissioners and city councillors just how their route is performing.

    Steve: Anyone can see routes in real time now on NextBus. Here is the syntax of the URL calling out 506 Carlton:

    For other routes, just change the route number. Of course this does not give an historical view of, say, what service looked like “yesterday” possibly with time sped up to compress a day’s operation into a shorter time.


  18. First, for Darwin, thanks for the efforts, good to see folks other than Steve working on these types of analysis!

    Second, Steve, so just clicked on this link as provided in by you in Ernie’s post above at 5:40am.

    My first thought was that the service was spread nice and evenly………

    Then I realized every single arrow without exception was pointed westbound….,

    Ah, but ‘306’ overnight service…….of course………so switched the route number and found a single vehicle Eastbound at Upper Gerrard and Coxwell.

    Any thoughts I whether I was seeing a true representation of service?

    Were there really no eastbound Vehicles from High Park to Coxwell?

    If so that headway would be astonishingly poor; if not service map not overly accurate/helpful!

    Steve: The early service on Carlton originates in the east end and by 5:40 am there would usually be only two eastbound 506 cars. The TTC’s website shows the first eastbound car from High Park at 5:48, but looking at tracking data there are actually two earlier cars. There are 306 Carlton night cars on a 20 minute headway.


  19. Hi Steve, thank you very much for the analysis and the criticism. We live on this route and one person in our household also works along this route. Our decision to move to the area was partly based on being close to a #70 stop. It’s been so frustrating, as your numbers clearly show.

    For the one person taking this route, it’s been an even split between taking the bus and walking the 30-35 minutes, even in the cold and snow. TTC really needs to take a serious look at this line, but based on what they haven’t done in the past, what hopes do we have…


  20. Someone please do correct me if I’m wrong, but doing something to enforce headways would 1) meaningfully improve riders’ experiences and 2) be basically free (i.e., we can already monitor real-time bus locations/headways + improvements would require no new buses, no new staff – just do the job you’re already being paid to do)…right?

    So why hasn’t some savvy politician(s) decided to make hay out of this and then claim credit for “improving service”? I honestly don’t understand why someone in government hasn’t made this their axe to grind – it appears to be the most low-hanging of fruit.

    I live smack on Vaughan (route 90) and am consistently shocked by how often I see 2 or 3 buses clumped together going the same way. It’s a ~3km each-way route with 4 red lights on it – how hard could it possibly be?

    Steve: The first thing that has to happen is that “some savvy politicians” must first whether their target will be “those lazy union drivers” or the “inept, inefficient management” that have allowed this problem to fester for years. You can imagine how this debate would fall out among Council factions. Next, the TTC as an organization has to admit that it’s not doing a good job and start measuring itself on things like this that reflect actual rider experience, not a cooked up metric designed to make management look good. Boards of agencies like the TTC really hate to take on management over technical issues like this.


  21. I live at St. Clair and Rexleigh, and I have to say, unfortunately, not much surprise here.

    When I used to work at Kipling and Dundas, on days that I didn’t drive, I’d check Google Maps as I was heading out the door. Usually the quickest route was either Dawes or 70C to Coxwell, but it wasn’t that unusual for it to be faster to walk to O’Connor and get the 91, 93 or 70A, or even to take the 70C to Warden!

    Coming home, since a prediction from Kipling would usually be wrong by the time I got to the east end, I usually just got off at Woodbine, and walked from Glenwood and O’Connor. Partly for the exercise, and partly because the 91 and 93 tended to be more reliable than the 23 or 70. That was before the LRT construction, though.

    My work moved near Commerce station in Mississauga, and now I just drive all the time.


  22. yorkgradstudent said: doing something to enforce headways would 1) meaningfully improve riders’ experiences and 2) be basically free

    I would add my opinion. There are two natural causes for the disruption of planned headway schedules 1) traffic congestion and 2)uneven passenger usage such as after a subway delay we get a flood of people or when school lets out a bus route is flooded. Some disruptions are caused by drivers, some are slow – wait for a passenger running to the stop, others are quick – pull away despite seeing the passenger running to catch it.

    Now, what to do. Drivers are the first to know they are bunching up. They are unionized, must strictly follow rules, it’s not their problem. I was told, there is a rule that a bus is not supposed to pass the bus in front unless ordered by the route supervisor. Let us keep in mind, the bus driver is driving a bus in traffic and has human cargo. There is a law against using cell phones while driving. So communicating with a driver on route is possible but must be thought out.

    There is technology to inform a route supervisor what the spacing is like on a route. What he/she doesn’t know is how packed the buses are. We can identify bunching. So what can be done?
    Having enough buses on a route is being done satisfactorily, it’s just spacing them.
    What can a route supervisor do when he/she see a bunch?
    When there are known delays due to construction, he/she can flood the route with extra buses.
    Are there plays (as in basketball or football) where the drivers can co-ordinate?
    I’m sure there are some very smart bus drivers who have thought about this. They are unionized so they have to shut up. Maybe some route supervisors have some tricks.
    For me, I don’t know how you untangle a bunch up.

    What is clear is that management, who draw the big bucks, have never addressed the problem. It is their job to identify the bunching and have a system to address it. I dare say, it is what the public wants.

    Steve: The issue of skip-stopping is a classic example of a blanket solution that does not always apply. The big problem is that if the buses playing hopscotch are on different routes, or branches of the same route, they might bypass waiting passengers who want their particular service. However, in many cases, the buses are all going to the same destination, and playing hopscotch does not affect riders, in fact it actually improves the service.

    Operators have lots of time to talk to transit control when they are stopped, and they have visual displays of their location relative to leading and trailing buses. The question, however, is why two or more vehicles would leave a terminal together, or even worse why a pair of vehicles would follow each other for an entire round trip. That’s a management issue, although it’s easy to say “the union made us do it”. All operators know about “soakers” who leave their followers in a big gap, and those who are stuck in those gaps are not amused.

    The TTC does have the ability to add buses to routes affected by construction. Whether they have enough to go around, or whether they run them well-integrated with the scheduled service is another matter. There is a technical issue between NextBus and the design of schedules that only runs that appear in the schedule are tracked, and the extras do not show up in vehicle predictions. Someone who looks up when their bus might arrive or depends on a display at their shelter or station would not know that an extra might be nearby. NextBus has a way to deal with this, but I don’t think the TTC uses it, and may not even know about it. (I only know from chatting with NextBus folks years ago when the system was first implemented here.)

    A major problem facing route supervisors is that the TTC senior management want to drive down the count of short turns as a measure of how much better service is. However, this approach can perpetuate bunching by removing one of the important tools a supervisor has to break up groups of vehicles and restore regular service. This is a problem of TTC management culture.


  23. I’ll come back to real-time monitoring with AI analysis and flags as a critical step one.

    This is real-world tech today; its either on-board (through Vision) or could be acquired off-the-shelf.

    The absence of its use is like a doctor’s office making appointments via Fax, instead of encrypted online interface. Its maddening to see critical public dollars misused by way being a generation behind in solutions/technology.

    I’ll then add, there’s no reason one can’t assess how packed a bus is remotely step counters should be able to gauge use; or weight sensors could be used instead, alternatively bus cameras can be integrated for real-time head counts.

    Steve: The TTC buses already have automatic passenger counters. They are coming to streetcars too. One problem is counting errors due to packed vestibules.

    No, none of these are a panacea, some might only make sense to roll out with new rolling stock but its very do-able and very affordable in the context of million-dollar plus buses, and the substantial costs of inefficient service.

    Of course you need to have sufficient route supervisors or transit control staff to make adjustments as required, someone has to respond to the data prompts.

    While ‘lazy’ union drivers should not be a catch-all excuse/insult; penalties for wilful soaking should apply where appropriate.

    Finally, while short-turns have a legitimate role; I see solutions that use neither short-turn, nor RAD buses, nor do they involve ‘do nothing’. How about taking a bus that falls behind, and letting it get to the end of its route (no one told to get off); and then ‘expressing it’ back to where it should be?

    Steve: If there is another bus to cover the missed stops, certainly. It is ironic that this type of operation is common in Boston whence CEO Rick Leary hails.

    Doubtless there are other service solutions as well; what’s infuriating in all this is not the details; its the seeming indifference of management to do something, anything to tackle the issue.


  24. I notice long waits for the 32D Emmett bus at Eglington West station during non peak times. I had to wait over an hour several times when it should be every 30 minutes.


  25. So, Coxwell is, in fact, the terminus of a line (whether TTC calls it one or not). Standard practice at NORMAL agencies is to restore headways at every terminus. So after one bus has left Coxwell northbound, the next one is *not allowed* to leave until the correct headway has passed. (If headways are fifteen minutes, the buses are released from the terminus one every fifteen minutes.)

    This is almost universal among bus operators who operate to headways as opposed to schedules, and headway operation is typically done on any route which is running fairly frequently and all day (as opposed to peak-only “once a day” services).

    Even when a bus operator operates to schedule rather than headway, something similar is done: if a bus arrives too late at the southern terminal to start its next northbound run on schedule, the next run either has a replacement bus pressed into service or it’s cancelled entirely, announced as cancelled, and marked as cancelled in the records; the incoming bus waits around for another scheduled run, so that the service runs on schedule.

    There are of course many other ways of restoring headway or restoring schedule (short turns, etc.) but this is the simplest and most trivial, operationally — which is why almost all agencies use it as a baseline, before trying more complex recovery methods — and apparently the TTC can’t even do the most basic one.

    Wow. That’s an astounding level of management incompetence. It’s like they just don’t even care about providing service.

    They are not operating to headway and they are not operating to schedule. The bus drivers are just driving around tailgating each other with zero regard to service provision. This is not done by any other agency in the WORLD, to my knowledge.

    From an earlier comment:

    “heard from a friend that all the buses on the 66 were at Old Mills station at some point or other on August 17.”

    “Looks like all three of them were there at 3:15. One was 17 minutes behind schedule, one 8 minutes behind schedule and one was on time. They all left within 2 minutes of each other.”

    This is just flat out malpractice. That is not how you do it. When you get to a headway-correction or schedule-correction point (typically each terminus, because nobody is riding *through* the terminus), the one who is closest to on time gets to go, and the others aren’t allowed to leave at all; they’re required to wait for the requisite headway, or for the next scheduled run. (The only exception is if one bus is actually jampacked full and can’t take on additional passengers.) That is how literally every agency I have ever encountered EXCEPT the TTC operates, as a baseline. All other tricks like short turns are done to prevent the cancelled runs which this results in, but this is the first and most basic management principle.

    I am positively astounded. Apparently there is literally no management of bus service at the TTC!

    Liked by 1 person

  26. Nathanael said: “I am positively astounded. Apparently there is literally no management of bus service at the TTC!”

    This is unfortunately a well documented fact of life with all TTC surface routes; one suspects that the only reason the subway is properly spaced is that there would be major accidents if it were not!.

    The lack of interest in the needs of customers is shown again by Steve who states:

    “There is a technical issue between NextBus and the design of schedules that only runs that appear in the schedule are tracked, and the extras do not show up in vehicle predictions. Someone who looks up when their bus might arrive or depends on a display at their shelter or station would not know that an extra might be nearby. NextBus has a way to deal with this, but I don’t think the TTC uses it, and may not even know about it.”

    That’s just crazy!

    An award winning transit authority should ‘hang its head in shame’ if it cannot manage the scheduling of the vehicles it has properly and cannot accurately tell customers (and route ‘managers’?) where they are!

    Steve: Don’t forget that the awards were not for running well-managed service.


  27. Nathanael said:

    Standard practice at NORMAL agencies is to restore headways at every terminus. … If headways are fifteen minutes, the buses are released from the terminus one every fifteen minutes. … if a bus arrives too late at the southern terminal to start its next northbound run on schedule, the next run either has a replacement bus pressed into service or it’s cancelled entirely,…There are of course many other ways of restoring headway or restoring schedule (short turns, etc.)

    It is obvious, that I don’t have any transit training. I know that when 4 buses are bunched together, there is bad service everywhere else on the route. Inserting a replacement bus from the terminal helps but is not good enough, especially since we now can see spacing of the whole route. A pool of replacement buses doesn’t sound like a good use of resources and means drivers need to know all the routes because they wouldn’t know which route they will be called to operate on. Defining procedures to untangling a bunch is my goal. I would like the packed buses to advance and only let passengers off. We inconvenience the least passengers by emptying the least loaded bus and making it turn around. This is all too complicated and not realistic.

    There is one doable procedure. If three buses from the same route arrive at a terminal at the same time, we can send one out empty to start pick-ups at some mid-point in the line. One loads as regular service and we send it out as soon as it gets full, regardless of headway. The third gets loaded and leaves on the reset headway of the bus ahead. The bus ahead will make slow progress until hits the point where the first bus started picking up passengers.

    A word about bunch ups. This is another management failure. Some bunch ups are due to road design. At rush hour, roads like Sheppard and Victoria Park get jammed up because of cars lining up to get on the DVP or 401. So management should be inputting to City Planning pinch points where better road design would help public transit. We are not getting our money’s worth from TTC management and the politicians are too stupid to fix it.


  28. To paraphrase an old joke:

    “There is nothing like a well run transit agency,
    And this is not a well run transit agency.”

    There has to be somebody who pays for letting the service get this screwed up.


  29. The Queen shuttle buses do not all congregate together, as there are too many of them. But they still do travel in packs of two or three. Last night at 11 PM I saw three buses eastbound at Kipling. Obviously they had left Long Branch loop at about the same time, because Kipling is about a five minute drive and there’s no congestion on Lake Shore at 11 PM.

    The buses are also laying over further and further east on Lake Shore; anyone who wants to actually go to Long Branch loop (e.g. to catch a 110, 123, or Miway 5 or 23) has a five minute walk ahead of them. Totally coincidentally, there’s a Tim Hortons right across the street at the corner of Thirty Eighth.


  30. I couldn’t help noticing that both buses on 65 were running next to each other on Sunday morning. The route is scheduled for 2 buses with a 15 minute headway.


  31. First they complained to no end about buses getting short turned not realizing that the short turns were restoring service for the rest of the line.

    Then the politicians had enough and put an end to short turns.

    In order to facilitate this the TTC is changing the run times of all the routes to minimize short turns. Although the TTC hasn’t been able to get around to every route yet. So they find a route to complain about and scream, “why are there no short turns”?

    Let TTC manage the service and it will be great. Complain all day about being inconvenienced by having to get off a bus because it’s getting short turned and make the whole city suffer the consequences.

    Steve: The situation is a bit more complex, and it shows how simplistic “solutions” don’t always work as intended. Many years ago, there were big problems on some lines with the erratic service (still a major problem) being compounded by the gaps and hassle short turns represent. In theory, if service were properly spaced and short turns were used only to recover from service disruptions, then a short turn would not be a huge inconvenience. Through cars and buses to the ends of lines would be available to handle riders dropped off from short turns, and the tactic would be used to ensure the restoration of reliable service.

    In practice, short turns became a quick-and-dirty way to deal with scheduling problems and with the lack of resources to properly manage routes. There was a big push to cut back on overtime, and the ATU contract has big penalties for operators getting off their shift late. Putting operators on time took precedence over service. Some routes did have bad schedules that did not have enough time for vehicles to complete their trips, but we have gone to the opposite extreme where schedules are designed to fit the 95th percentile of travel times. This leaves a lot of trips with too much time leading to bunching at terminals and the sense that leaving on time really isn’t necessary because one can always make up time along the way.

    This is compounded with the creation of “Key Performance Indicators” (KPIs) that grossly oversimplify the view of service quality, and there are two key ones trotted out in every CEO’s report. One is the count of short turns, and the other is “on time performance” at terminals. A lot short turn count does not necessarily mean that a line has good service, especially if vehicles are running in bunches with big gaps in between. However the KPI only measures “on time” performance at terminals defined as leaving no more than one minute early or up to five minutes late. This does not tell us anything about vehicle spacing, nor does it define any standard for what service should look like a few blocks away, let alone after vehicles travel several kilometres. Management gets to pat itself on the back because they “hit” targets that are not meaningful in the larger context of rider experience.


  32. “First they complained to no end about buses getting short turned not realizing that the short turns were restoring service for the rest of the line.”

    How quickly the reality on the ground is forgotten. There were days in the late part of the last decade where it was a given that you would be short-turned on your regular bus or streetcar trip to and from work twice a week, if not more often if you lived beyond the last short turn point. A transit service that gets you to your destination on the first try only 75% of the time is not a workable transit service for daily travel. Combine that with ridiculous practices like short turns being announced only spontaneously at the short-turn point; or the second of two bunched vehicles being the one that is short-turned, with the first speeding away to leave the people on the second vehicle stranded. Some long route travelers had to deal with more than one short turn: you get kicked off one bus, then another would come and that would then short turn at a later point too. It’s not hard to see why Councillors shut that down hard. I believe some 501 riders bound for the Beach once famously revolted when their streetcar attempted to short turn at Woodbine because most of them had already been previously kicked off a streetcar for a short turn at Broadview. Multiple short turns on one trip being a common experience was a ridiculous situation.

    Steve: Actually, the common 501 Queen short turn was/is at Woodbine Loop (Kingston Road), not Broadview. This has been a problem for a very, very long time, and I was involved in a study of streetcar short turning back in 1984 that flagged the high level of unscheduled turnbacks and, even worse, the number of “surprise” short turns that would be announced long after riders boarded a vehicle they thought would reach their destination.

    But for all that “no short turns” would fix this problem, it created another, namely a slavish adherence to a goal that requires considerable resources (padding schedules to stretch running times at the expense of service frequency), and which can actually hurt service if short turns are not used when necessary to restore service after an event that causes bunching. Pairs (or worse) of vehicles running through to a terminal do not provide better service because riders still see the wide gaps between bunches which, from a service point of view, are a single “vehicle” providing infrequent, unreliable service.


  33. One way “surprise” short turns could be seen as advantageous, is buses usually only say “Short Turn”, and not where they’re turning. So everyone getting on has to ask the driver, which slows down boarding, especially at busy stops where it then becomes difficult to get off again if you want to just wait for the next one. Still annoying, though.


  34. I ran an analysis of TransSee data for November to find the most unreliable routes. For routes with an average scheduled headway of less the 15 minutes it is based on the average number of seconds off the scheduled headway at each stop. For routes with a headway more then 15 minutes it is based on the average seconds off schedule. It’s not always clear how much of the problem is real and how much is NextBus tracking problems. I know that 71 is because of a NextBus tracking problem, but 935 looks like a real problem.

    The streetcar routes with ROWs are all among the best routes

    Across all agencies supported by TransSee the worst was the 3 San Fransisco cable car routes.

    Steve: I have reformatted the table you supplied inline in your comment with three changes:

    • I have added route names because even I don’t have all of the numbers memorized.
    • I have converted the times in seconds to mm:ss format to save on mental math.
    • I have presented the list both in your original sequence (by descending divergence from scheduled times) and by route number (for easy lookup)

    The table is now nicely formatted here.


  35. “Putting operators on time took precedence over service”

    So this is why they refuse to perform headway management out of terminals? This is outright unacceptable. It doesn’t really matter how much it costs. If they have to cancel entire routes to fund it, fine, because it’s the difference between functional service and nonfunctional service.

    Every route with decent frequency (20 minutes or less) needs to have strict headway management departing the terminals. Every route with lower frequency needs to have strict schedule adherence departing the terminals.

    If this makes operators “late to go home”, so be it. With heavily padded schedules, it really shouldn’t…. but regardless, even if it does, buses should never be bunching on departure from the terminal, unless they are actually full departing the terminal.

    There are other techniques which can be used for recovering headway when things are disrupted, but “you have to walk before you can run”, and the core element of any headway operation is maintaining the headway when departing from the end of the line.


Comments are closed.