One “benefit” of being cooped up at home more than usual is that I have a lot of time to devote to rummaging around in TTC data. This article begins a series that I am sure most people will not read in its entirety, but instead concentrate on routes of interest to them. I will not feel bad if you don’t read every word, and there is no test at the end.
A common complaint about TTC service in pre-covid days was that it was inadequate to demand and unreliable. Complaints like this go back decades, and one of my earlier advocacy projects was a review of streetcar service back in 1984 conducted jointly by the Streetcars for Toronto Committee, some members of Council and volunteers from local community groups.
The covid era brings its own challenges including reduced vehicle capacity for distancing, plus a scramble by the TTC to adjust service across the system on very short notice. On some routes, riders still complain about crowding and the inability to distance, and we are now in a period where higher load factors will be part of TTC service. The TTC neither has enough vehicles, nor enough revenue to operate a service with generous distances between riders as the demand slowly returns across the network. This build-up has been strongest on surface routes in the suburbs where work-from-home is not an option for many jobs, and where fewer trips can easily be taken by alternate modes such as walking or cycling. The TTC has reported riding on some routes at forty per cent of per-covid levels and growing.
Suburban routes pose a special problem because travel demand does not necessarily fit into the classic patterns of time and direction for core-oriented commutes, Service that is designed to get people downtown (or at least to the subway) does not necessarily serve other demands well. In “normal” times, this problem can be masked, but when core-bound and academic travel patterns are stripped away, the mismatch between suburban demand and capacity, especially allowing for distancing, becomes evident.
Service designs have evolved over past months.
Through January and February 2020, there were few changes to scheduled service, but by the March 29 schedule changes, the effects of covid were showing up across the city with much lower demand and reduced traffic congestion.
There were actually two versions of the March 29 schedules, and the big difference in the second was the disappearance of almost all premium and express services. This allowed the TTC to reduce total service in response to increased employee absence, and to redirect some of the express buses as unscheduled supplements to local service.
By the May 10 schedule changes, further cuts were implemented, although many were on an ad hoc basis to avoid complete rescheduling of routes. Instead of writing new schedules, selective crews were cancelled leaving gaps in service that were supposed to be managed on the fly by route supervisors. A separate pool of standby buses and crews was allocated to be dispatched as needed as the TTC learned where services were overstretched based on new loading standards.
The TTC did not issue a “Scheduled Service Summary” for May 2020 because of the number of ad hoc changes, but some of the planned schedules can be inferred from the June-August summary where effective dates for some schedules are in May.
These standby buses did not appear in the published schedules for routes nor on the vehicle tracking apps, and they may or may not show up in historical tracking data depending on how operators “signed on” to the system. For example, a bus running on 35 Jane has to sign on to a run that exists in the schedule to show up in NextBus (and all of the apps using the NextBus feed), and it must at least sign on to the route to have any hope of being tracked after the fact to analyze the service actually operated.
A further problem is that the TTC does not publish information about where these unscheduled buses are used. They have issued a list of routes that are monitored for overcrowding, but no information about specific actions on these or other routes.
- 300 Bloor-Danforth Blue Night
- 320 Yonge Blue Night
- 29 Dufferin
- 35 Jane
- 37 Islington
- 39 Finch East
- 41 Keele
- 44 Kipling South
- 52 Lawrence West – (Airport trips)
- 96 Wilson
- 102 Markham Rd
- 117 Alness-Chesswood
- 119 Torbarrie
- 123 Sherway
- 165 Weston Rd North
(The list above might be adjusted based on TTC’s monitoring.)
Regular readers might recall a series of articles about the 70 O’Connor bus and its erratic service. The TTC claimed that there were run-as-directed buses added to the service, but these do not show up in the tracking data. One could ask why, after the expenditure of millions on a new vehicle monitoring system, the TTC is unable to demonstrate where they operate this type of supplementary service.
Finally, the June 21 changes returned some of the buses that had been cut in previous months to scheduled service, but on a different basis from the pre-covid arrangements. Instead of a roughly three-hour AM and PM peak period with added vehicles, the extra vehicles are scheduled for two seven-hour periods from the very early hours of the AM peak starting between 5 and 6 AM and running until noon to 1 PM. A second batch of extras enters service between 2 and 3 PM running until 9 to 10 PM. The affected routes are:
- 7 Bathurst
- 24 Victoria Park
- 29 Dufferin
- 34 Eglinton East
- 35 Jane
- 39 Finch East
- 41 Keele
- 52 Lawrence West
- 54 Lawrence East
- 86 Scarborough
- 102 Markham Road
- 165 Weston Road North
This has two effects on the routes where the extras are used:
One effect is that the headway (time between buses) for the block of extras is generally not the same as for the regular service. This can cause erratic headways and uneven loading. For example, if an 8 minute “A” service and a 10 minute “B” service are mixed on the same route, the pattern of departure times (minutes after the hour) could look like this. Sometimes the “B” service nicely splits the headway of the “A” service, but at others the two leave close together or at the same time.
This sort of thing is unavoidable when headways on any mixed service are not the same. However, the TTC has a six-minute window (from 1 minute early to 5 minutes late) for a bus to be considered on time. When the scheduled headways are in single digits, bunched service is inevitable even if the schedule does not have built in gaps and bunching. However, if the scheduled headways are wider, but uneven, this builds uneven service into a route’s operation.
The other effect is that there is a two-hour period between each set of “trippers” on the affected routes where headways are much wider than at other times, and this can be compounded by uneven headways for the vehicles that do remain over the bridge period.
The cancelled runs cause scheduled gaps where one or more buses are missing, but the times of adjacent runs have not been adjusted to compensate. It is not clear how much effort the TTC is putting into fixing this problem, and the generally uneven level of service can make it hard to distinguish this from other problems with headway reliability.
The situations are unique to each affected route, and I will go into the details in the route-by-route review.
A Note About Data Sources
All schedules for the TTC are available in GTFS (General Transit Feed Specification). The current version is on the City of Toronto Open Data site, but archived version for the TTC and many other transit systems are available on the transitfeeds site. These data contain the same information that is published on the TTC’s timetable pages, but in a format that lends itself to analysis and presentation.
Tracking data for TTC vehicles is archived by the TTC from two systems: the 30+ year old “CIS” (Communications and Information System) and its replacement “VISION” which has more extensive capabilities for line management. As of early July 2020, most of the surface fleet has been converted to VISION with only a portion of the streetcars remaining to be completed.
[The tracking data are not published for general access, but are available to me and others by arrangement with the TTC. The data sets are very large and require substantial reworking to permit analysis and presentation. For a general discussion of analyses with these data, please see Understanding TTC Service Analysis Charts: A Primer .]
In the articles to follow, I will divide the major routes into geographic groups. This is an arbitrary split both for reasons of size, and to allow readers to home in on specific routes of interest by area.
As an introduction, here is a review of route 54 Lawrence East.
Analysis of 54 Lawrence East Service in 2020
In the pre-covid era, service on Lawrence Avenue was provided by two branches of 54 Lawrence East and by the peak period 954 Lawrence East Express.
- 54A Lawrence East: Eglinton Stn to Starspray Loop
- 54B Lawrence East: Eglinton Stn to Orton Park
- 954 Lawrence East Express: Lawrence East Station to Starspray Loop
The extracts below show the service plan that was in effect for March 2020:
By June, the plan had changed to:
In the June plan, which remains in effect through the summer, the former 954 service has returned but as the 54T (“T” for “tripper”), the buses that operate as scheduled extra service between Starspray and Lawrence East Station, but making all stops. The difference is that the “54T” buses are out for about seven hours each, morning and afternoon/evening while the 954 buses only ran during peak periods.
The combined effect is that peak service is slightly less frequent than in March, but off-peak service is improved.
However, that is not the full story. Because the trippers and the regular service do not operate on a common headway, their spacing will vary as described above. Here is what the scheduled headway looks like westbound at Markham Road.
There is a period in the early afternoon where headways sit at a constant 7 minutes corresponding to the blended Starspray and Orton Park branches with no trippers. The point here is that the service is scheduled to be irregular although in theory this could be managed around to smooth things out.
However, there is a further problem with “on time performance”, a favourite TTC metric that treats a vehicle as “on time” provided it leaves the terminal no more than one minute early or five minutes late. On a service with a scheduled frequency under six minutes, pairs and triples can be “on time” while providing rotten service.
Measuring service inbound from Starspray Loop is tricky because vehicles tend to take their layovers at different locations for the drivers’ convenience. For the purpose of these charts, I have used Port Union Road, west of Rouge Hill GO Station as the measurement point.
Here is the service of tracked vehicles (not including standby buses) in week 3 of June 2020, before the scheduled trippers were added:
In week 4, with the scheduled trippers, the tracked service looked like this:
The problem with both of these charts is the scatter of actual headway values. Waits of well over 10 minutes are common, as are groups of closely spaced buses running on very short headways.
This is shown generally by a plot of average headways and standard deviations, a statistical measure of scatter in values:
The blue and purple lines above (weeks 4 and 5) show the effect of the new schedules, but the dotted lines, the standard deviations tell their own story. With values in the 4-6 minute range, the SDs tell us that headways actually operated at a considerable typical distance from the average.
The TTC loves to report averages because these tend to mask all of the ups and down, while riders have to deal with the actual condition of service when they arrive at a stop.
A problem common to all branching routes like Lawrence East is that with service on each branch operating only roughly “on time”, the so-called blended service is itself irregular.
Here is the service westbound at Markham Road in week 4, just west of the point where the 54B Orton Park service joins the line:
All of these buses reach Lawrence East Station, a point where one might think it would be possible to restore order to the service without having buses take layovers on the street. Here is the service westbound at Kennedy, just west of the station, in week 4. (Note that Monday, June 22 is omitted because some data are missing for that date.)
Eastbound departures from Eglinton Station have been omitted here because with all of the Metrolinx construction, headways in that part of the world are a bit chaotic. However, again Lawrence East Station should provide a chance to sort everything out and dispatch a well-spaced service. That is not what actually happens as this plot of service eastbound at Midland (just east of the station) shows.
Although I have the tracking data for July 2020, I have not published it here because the results are the same as for the latter part of June.
This situation on Lawrence East is not new, and plots of data from pre-covid times look much the same.
The TTC’s explanation that the standby buses fill in the gaps might be credible for dealing with holes in service, but this does not explain the large number of buses running nose-to-tail on the route. Many of the gaps are of the TTC’s own making, and especially on a route with scheduled trippers, there should be little need for standbys.
The TTC has automatic passenger counters on its vehicles and has published “heat maps” showing where services are well-used. However, the underlying data have not been made available when I have asked for it. An obvious test would be to map the variation in actual headways against variation in on-board crowding.
The problem of uneven vehicle spacing is chronic across the TTC and the situation long predates the pandemic era. There will be a lot of talk in coming budget debates about subsidies, crowding and service levels, and we may well see the TTC forced to operate with reduced means for some time to come.
This is not the time to point to average statistics that claim service is running just fine, thank you, when what is actually on the street, to the degree we can track it, demonstrably is not.
For those who are interested, the full chart sets for the locations cited above are linked here.