Service Quality on 41 Keele: Fall 2019 Update

At the TTC Board Meeting of September 24, 2019, a motion was introduced by Commissioners Shelley Carroll and Brad Bradford on behalf of Councillor James Pasternak in response to a citizens’ group, Action Keele, who have many requests regarding changes to the service on the 41/941 Keele bus routes. Two deputations from Action Keele, Matt Davis and Paul Grey, spoke to the request:

  • a. Include the #41 Keele bus route on the 10 Minute Network.
  • b. Increase the intervals for the green light facing west, at St. Clair Ave. and Old Weston Rd for easier turning maneuvers.
  • c. Move the Sir William Hearst bus stop further north to avoid extra congestion with vehicles accessing and exiting Highway 401.
  • d. Restrict the right-hand lanes, both northbound and southbound, at the Keele St. and Wilson Ave. intersection, to right turn only lanes, for better access of buses to the stops.
  • e. Add more vehicles to the local (not express) #41 Keele route to facilitate access to the network for individuals facing accessibility and mobility constraints.
  • f. Limit the main #41 Keele bus route to operate between Keele Station and Finch West Station and consider adding a #41B Keele bus route to operate less frequently from Keele Station to Pioneer Station.

Matt Davis noted that these proposals come from riders and staff, and that Action Keele had spent much of the year on surveys. He said that TTC data ranks Keele low on reliability, and riders complain about crowding and long waits.

Grey continued this theme stating that one of the main recommendations is the first, that Keele have 10 minute or better service all of the time. A consistent issue from riders at all stops was the frequency of service. One night of a survey during the coldest part of last winter, they canvassed at Keele and Lawrence where 10 people were huddled inside a shelter anticipating 20-30 minute waits for a bus.

That is not service that attracts riders, but rather drives away any who can afford to avoid it by moving or by getting a car.

Commissioner Carroll, although she presented the motion, was somewhat hostile to the deputants saying that their list of changes may or may not be implemented, and hoping that they understood there were financial impacts to this. Grey replied that there is a certain expertise gained in daily riding and operating on a route, and Action Keele thinks they have done their due diligence to produce helpful recommendations.

Vice Chair Alan Heisey asked staff if items b through d fell under the city’s Transportation Department. They do, and this part of the request would have to be dealt with there, although the TTC could provide an advocacy role as they claim to be interested in transit priority.

As for the service design, staff replied that they would review this route as part of their service plan, that there had been a service reliability improvement in September, and that they would report back. Furthermore, Keele and Lawrence has been identified as a “super stop” in the new plan now under development.

This sounds good, but it is a misleading response.

The service change in September consisted of stretching the running time allegedly so that buses could stay on schedule, but without adding vehicles so that headways actually became noticeably wider (see service history below). The reliability of service remains spotty as a review of vehicle monitoring data shows.

The TTC has a cultural inability to recognize that service does not operate on a reliable headway, and that bunching and gaps will not be fixed simply by padding running times. On routes like Keele where the scheduled service is infrequent, bunching can cause very wide gaps in service even though all of the scheduled trips are operated and few or no buses are short turned.

Commissioner Jennifer McKelvie asked when the five year service review coming back to the board. Staff replied that this will be in December 2019, and will be a “big picture” review to set up the plan for implementation. Changes will come in following years as the multi-year plan is updated. McKelvie was concerned that ad hoc requests from the community for service would be lost in this process.

Commissioner Carroll observed that requests from a local community to the TTC Board are not precedent setting giving the example of the Dufferin bus. Councillors who do not sit on the board historically bring forward concerns this way. Keele has been a problem every term of Council for a long time. Carroll mentioned demand at York University, although she missed the point that there is much demand on the Keele route that is completely separate from the university which now has two subway stations. Carroll emphasized that the Board wants engagement at this level saying “I don’t want to crap over that level of engagement”.

The request was referred to staff for consideration as part of the Service Plan on December 19.


This is a long article with a lot of detail intended for those advocating for better service on Keele Street, and to balance TTC claims that it has “improved” service with new schedules in September 2019. Some readers don’t want all this detail, and you can bail out when it gets tedious. I won’t mind.

Several issues common to Keele and other routes are evident here:

  • Service does not leave terminals within the TTC’s 6-minute target, and irregular headways are common even where buses are supposed to be “on time”.
  • Service gets even worse as vehicles move along the route and closely spaced buses catch up to each other leaving wide gaps behind them.
  • TTC only measures service quality at terminals and, therefore, reports only on the best case situation along a route.
  • Service quality varies enormously by time of day and day of the week, but TTC reports only average values thereby burying the poor performance of the worst periods.
  • Express service runs on erratic headways which counter the supposed benefit of a faster trip.
  • Padding schedules with extra running and recovery time does not guarantee reliable service.

Some of 41 Keele’s problems are worsened by the use of articulated buses on wide headways. These vehicles were purchased for frequent routes like Finch West and they are out of place on Keele where they contribute to the very wide headways and the fact that this major route is not part of the Ten Minute Network. Unofficially, I have learned that there are plans to move the artics back to 7 Bathurst and change the 41 Keele local service to use standard sized buses with a concurrent reduction in headways. However, without an attention to service reliability, riders on Keele will still suffer.

To this I must add that TTC’s portrayal of service “improvements” work counter to the goal of both better service and a higher regard for the TTC. Schedule changes that make service worse for riders, not to mention “new” express services that are nothing more than a rebranding exercise, might play well with TTC Board members who do not look at the details. However, real improvements require better management of service on the street, an end to laissez-faire attitudes about bunching and the band-aid “fix” of extended running times, and a recognition that Toronto needs more service, not just tinkering for the sake of appearances.

History of Bus Service on Keele Street

The table linked below shows the evolution of service on 41 Keele and its recent express counterpart, the 941, since 2015. I went back that far in order to show the changes that took place when articulated buses replaced standard sized vehicles on the 41A local service between Keele Station and York University.



The January 2015 schedules operated both local and express services with 10m buses. The running times included provision for construction of the Spadina Subway Extension, as do all schedules from here forward to the point where the line opened in 2017.

In February 2015, 18m artics replaced standard 10m buses on the local service., but at the same time there was an overall improvement in route capacity because the change in frequency with the larger buses was not proportional to their size. At the same time, the 41E express service was substantially improved.

May 2015 saw a summer service cut on both local and express branches, but this was reversed in September 2015.

In 2016, the summer cut applied only to the express branch. However, when this was restored in the fall, running times were lengthened and headways were widened.

In 2017, the summer cut was deeper on the express branch, but service was improved on the local branch by the addition of one bus. This stayed in place in the fall when the express service went back to its winter level.

December 2017 brought the opening of the TYSSE. The Steeles branches of the local service were consolidated and terminated at Pioneer Village (aka Steeles West) Station, and the express service was cut back to end at Finch West Station because university-bound riders could use the subway to complete their trips. Peak headways were changed slightly at this time on both branches.

In 2018, the summer cut affected both the local and express services with headways on both of them widening, and they ran on a common headway. In practice this does not produce a blended service because even if they leave the terminals properly interleaved, the expresses will shift out of position because they skip stops. In September, the winter schedule for both branches was restored.

November 2018 brought the TTC’s exercise of rebranding the “E” branches as the 900-series express bus network. Service on 941 Keele was identical to the 41E service it replaced.

There was no further change to service until September of 2019 when, according to the TTC:

Schedules will be adjusted, Monday to Friday, to improve service reliability. Service levels will change slightly throughout the day.

In fact, what happened was that headways were widened at all periods of service so that driving and recovery times could be lengthened. The effect was a considerable cut in the scheduled service. Later in this article, I will examine the “before and after” situation to determine what benefit, if any, actually showed up on the street.

Weekend Service

The level of service on 41 Keele changed little from 2015 to 2019 except for the opening of the subway extension which rerouted it to Pioneer Village Station in December 2017.

Service Quality on Keele

Back in May 2017, I reported on service reliability problems on many routes including 41 Keele using vehicle tracking data from January 2017. At the time, construction of the Spadina Subway Extension and the Crosstown LRT both affected the route, and there was a plausible argument that erratic service stemmed from those projects and the upheavals on Keele Street.

Since then, I have reviewed tracking data from April 2018, July and September 2019 to see if changing circumstances both in construction projects and in schedules on the route have produced any improvement.

Technical note: By 2019, much of the bus service was tracked with the TTC’s new “VISION” system replacing the older “CIS” which is still in use on streetcars and a small number of older buses. The granularity of VISION data extracts is not as detailed as from CIS, especially at terminals where arrival and departure times cannot be reliably determined on some routes. The peculiarities of data from the two systems are discussed in detail in a separate article.

Overview: Average Headways and Standard Deviations

For a quick way to see just how well-behaved, or not, service on a route is, we can look at average headways actually operated and the standard deviation in those values. Generally speaking, two-thirds of the data points lie within one standard deviation either side of the average. The larger the SD value, the greater the scatter of values around the average.

The TTC’s service standard target for departures at terminals is 6 minutes wide ranging from 1 minute early to 5 minutes late. If service actually ran to this standard, the SD would probably be about 2 minutes indicating that much of the service lies within a 4 minute wide band. At most, the SD value would be 3 minutes. This does not happen much of the time on the TTC.

Local Service

Here are the charts of averages and SDs northbound on 41 Keele in April 2018, July 2019 and September 2019. Note that for the 2019 figures, the values are measured at Dundas Street because departure times from Keele Station reported by the new VISION system are not reliable and many trips are missing. The express trips on 41E in April 2018 and on 941 for the 2019 plots are not included here, only the local service.

For each pair of charts, the plot on the left shows the average and SD values on a scale of 0-45 minutes, quite a range for a route with fairly frequent scheduled service. Note the growth in values well over 20 minutes especially in the 2019 charts. Click on the charts to open them full size in a separate browser tab.

For April 2018, the average bounces around a bit, especially in the PM peak (17:00), and the SD values goes up then too. Note that an SD of 5 minutes indicates that two thirds of the data lie in a band 10 minutes wide, and there are periods, especially in the evening, when the SD is above five minutes. This corresponds to periods when the data points are more scattered.

By July 2019, the average is slightly higher, but the SD values are particularly bad from about 16:00 onward. An SD of 10 minutes indicates that about two thirds of the headways lie in a range from 0 to 20 minutes. This corresponds to the period on the scatter chart when many headways are above 20 minutes, and a non-trivial number over half an hour.

In September 2019, a new schedule was introduced supposedly to improve route performance. However, this was achieved by stretching the scheduled headway. The SD values are lower in September than July except during the PM peak, but the wider scheduled headway means that many trips are still well over 20 minutes apart. The problem of irregular service has not been addressed, and the scheduled service is less frequent than it was before.

The situation at Lawrence Avenue northbound is much the same, but by this point the gaps are wider and the bunching more severe as buses on short headways catch up to their leaders. The service in September 2019 on the “improved” schedule is worse than what it replaced, especially in the pm peak and shoulders.

Express Service

The express service fares no better. Service leaving Keele Station northbound in April 2018 was smeared over a wide range of headways. This is clear both in the standard deviation values and in the scatter diagrams. The potential gap between express buses was wide enough that waiting for one could negate any benefit in travel time.

And northbound at Lawrence.

In July 2019 at St. Clair

In July 2019 at Lawrence

By September 2019 with the new, improved schedules, there is a slight improvement, but not much. In particular the SD values remain high showing a wide divergence in headways, well beyond the TTC’s target.

Note that data near Keele Station are not reliable because of problems with the VISION feed, and I have used St. Clair as a south end reference point.

At Lawrence:

Detailed View of April 2018

In April 2018, the Spadina extension was open, but construction was still underway on the Keelesdale Crosstown station at Eglinton Avenue. Service on both the local and express branches was erratic, and headways often fell well outside of the reliability targets the TTC sets for itself. Although the service was scheduled to have articulated buses on the local trips and standard buses on the express runs, a mix of vehicle types on both of these was common leading to local service having lower capacity than advertised.

Because of the strike at York University, weekday service between about 8 am and 4 pm short turned south of the University itself. Despite the additional layover time this provided to buses, service was erratic on the route.

Service during all periods on this route was very erratic with headways spread over a wide range of values thanks to bunching. The difference between this service and the quality the TTC claims as its target is immense.

Northbound from Keele Station

Local service leaving Keele Station northbound ran on a wide range of headways. For this analysis, the screenline is located just north of Keele Station, something that is possible with CIS data because it reports vehicle locations every 20 seconds.

Note that the scheduled peak service is less frequent than off-peak because the express buses run mixed with the locals. Although all buses were running as “route 41” at this point, I have separated the express runs from the locals for the analysis so that it mirrors the current 41/941 arrangement.

Here are the headways for week 1 of the month. There is a fair amount of scatter in these values especially in the evening.

The situation was worse in week 3:

Weekends did not fare any better, especially Sundays:

The full set of charts is linked as a PDF later in the article.

Northbound from Lawrence Avenue West

By the time the service reaches Lawrence, bunching that was bad at Keele Station has become even worse. The charts below show the week 1, week 3 and Sunday data for a screenline located just north of Lawrence Avenue.

Southbound at Finch Avenue West

The service shown here is measured at a screenline just north of Finch, but south of Finch West Station where some 41A trips short turned. Headways are erratic all day long. Week 1 is shown here, but other weeks and weekends are just as bad.

Southbound at Lawrence Avenue West

Service at Lawrence southbound shows the pattern of bunching and gapping worsening along the route.

Overall Service

The following charts show service for the period from 1 to 4 pm on a weekday, April 17, and a Sunday, April 29. Note the bunching of service with buses running close together for extended periods and the short turns at Finch that sometimes filled gaps successfully (April 17) and sometimes not (April 29). Also note that there is little congestion at Eglinton (this would be shown by the lines changing slope), a problem seen more at Wilson and at St. Clair.

Weekday service did not enter York University while picket lines were up for the strike then in progress.

The Evolution of Bunching and Gapping

A major problem with looking at service only at terminals, as the TTC does in its regular reports, is that this is the “best case” for headway reliability. As vehicles move along a route, any bunching becomes worse as following buses catch up to their leaders and gaps between the bunches widens.

The first chart below shows the headways on April 17 leaving Keele Station. Several buses leave on very short headways, and they are followed by longer gaps.

The situation on Sunday April 29 was even worse.

Express Service

The 41E Keele Express service ran only in peak periods just as the 941 does today. Headways from both ends of the line and at Lawrence were erratic, and any rider with the option would be just as well to take the local bus if it showed up first. The service does not operate within the TTC’s six-minute band of “on time service”, and some headways are very wide. The difference in travel times simply is not reliably less than the wait for an express bus.

In the charts below, the AM and PM peaks are shown separately so that the trend lines are not influenced by the gap between the peaks. Moreover, I have used linear trend lines because, in theory, the headway through the peak should be fairly constant, not up and down as with all-day service.

As as sample of a “good week” and a “bad week”, here are the PM peak headways northbound from Keele Station in weeks 1 and 4. Note that the maximum value on the Y-axis is 45 minutes as opposed to 30 minutes on the charts of the 41A local service above so that some of the large values, over half an hour, are visible.

The chart sets below include data for the express service at Keele Station northbound, north of Lawrence both ways, and north of Finch southbound.

Full Chart Sets

Detailed View of July 2019

The data through the five weeks of July 2019 are similar, and the charts below show week 3 for all four locations. The full sets with all weeks and the weekends are linked at the end of this section.

I have not included details of the 941 (formerly 41E) here because they are similar to the data shown for April 2018, and the scatter of headways on the express service is shown in the overview charts earlier in the article.

Dundas NB

Because of problems resolving vehicle locations at terminals with VISION data (about which more below), the screenline used to measure northbound trips is set at Dundas Street. Althouth the trend lines broadly follow the scheduled headways, there is a wide scatter on all days. The easiest thing to spot are the data points very close to zero which are buses running immediately behind their leaders.

Lawrence Northbound

As in the April 2018 data, the bunching and gapping worsen as the service progresses northward.

Vanier Southbound

As at the southern terminus, VISION data are not reliable for departures from Pioneer Village Station, and the screenline for headway measurements is set at Vanier, far enough away that all buses actually report crossing that line. However, there is a fair amount of short turning further south, and the service at Vanier is worse that the service at Lawrence (see below). This is shown by the rise in the trend lines for most days this week away from the values seen at Lawrence, especially on Tuesday July 16.

On the evening of July 16, service was very severely disrupted on 41 Keele, and there are three data points that actually lie above the range of the chart with the maximum value at 83 minutes! This pulls the trendline (red below) well away from values for other days which are not well behaved themselves.

Lawrence Southbound

The trendlines are much better behaved at Lawrence southbound, but headways are scattered over a wide range of values.

Detailed Service Charts for July 2019

The charts below are excerpts from three days operation. There are several points worth noting:

  • At both termini (Keele and Pioneer Village Stations) many buses appear only briefly at the station itself, but have a leisurely approach or departure. Some buses never show up right at the end of the line at all. These are peculiarities of the VISION data stream which is stop based, rather than showing continuous position location.
  • Buses run in pairs or triplets over entire round trips without being spaced.
  • Short turns at the north end of the route are fairly common.

Tuesday, July 16

Service on July 16 was severely disrupted by a collision at Wilson Avenue which blocked the intersection from about 4:30 pm until after midnight. What is extremely troubling, however, is the degree to which buses were already running in bunches before the blockage (which affects mainly southbound traffic until a bit after 6 pm, and the erratic service for a few hours afterward.

Wednesday, July 17

No eAlerts were issued on July 17 indicating any major problems, but this did not prevent some buses from running in packs.

Friday, July 19

Again on July 19 there were no eAlerts about service on 41 Keele, and yet some buses ran in pairs (or worse) for a period of several hours. This is a symptom of abdication of responsibility for line management.


Full Chart Sets

Detailed View of September 2019

As with the July 2019 VISION data, the screenlines used for the north and south ends of the line are at Vanier and Dundas respectively due to problems with vehicle location near terminals in the data.

Also, on Friday, September 20, VISION was offline for a period in the early evening and headway stats for that day are skewed by a “gap” of over an hour at all locations as a result. Therefore, I have used week 2 rather than week 3 as the representative week for this month.

On the “improved” schedules for September 2019, headways for the local 41 service were supposed to be:

  • AM Peak: 14’30”
  • Midday: 12’00”
  • PM Peak: 15’30”
  • Early Evening: 15’45”
  • Late Evening: 25’00”

Although express trips (not included in the charts below) were also present in peak periods, the wide variation from scheduled headways for both 41 and 941 services meant that any hope of blending is lost. In any event, it is impossible to “blend” services supposedly running with different stopping patterns and scheduled speeds except at terminals where they are theoretically “on time”.

In some of the charts below, the trend lines track above the scheduled headways particularly in the PM peak and early evening. Considering that vehicles have more running time and generous layovers at terminals, this is not what was supposed to happen. Combined with the wider scheduled headways (about one third longer than in the previous schedules) this does not make for improved service.

Northbound at Dundas

Northbound at Lawrence

As in previous examples, by the time the service reaches Lawrence northbound, the long headways have grown and there is more bunching.

Southbound at Vanier

The southbound service at Vanier is affected by short turning (yes, it still happens even with the padded schedules) in the evening. Earlier in the day, headways are comparatively well behaved and are clustered around the trend lines and scheduled values, but things fall apart in the late afternoon. Detailed charts for Monday, September 9 (purple) and Friday, September 13 (turquoise) are shown later in this article.

Southbound at Lawrence

By the time the service reaches Lawrence southbound, the trend lines are not so far off of the scheduled values in the evening, but the headways are scattered over a much wider range even early in the day when they were comparatively reliable leaving the north end of the line (above).

Detailed Service Charts for September 2019

For the two days illustrated below, there were no eAlerts of major delays/incidents on the 41 Keele route.

Monday, September 9

In the afternoon, bunching begins to develop and there are some buses that stick together for extended periods even leaving terminals together.

In the PM peak, congestion develops southbound between St. Clair and Dundas triggering some short turns at Sheppard and points north. This is responsible for wide gaps in the service from Pioneer Village Station.

By the early evening, the service is starting to get sorted out, but this takes until after 8 pm.

Friday, September 13

On Friday the 13th, bunching is already evident in the afternoon even though there is no congestion along the route.

During the PM peak, several vehicles short turn north of or at St. Clair southbound creating gaps in service from Keele Station, and the service northbound is poorly spaced especially where a bus turning back near Rogers Road runs as a pair with a bus from Keele Station northbound.

Full Chart Sets

4 thoughts on “Service Quality on 41 Keele: Fall 2019 Update

  1. I have a pole card from the late 1980s showing the 41 Keele service with service levels every 11 minutes until 2:30am from Lansdowne stn to Forthbridge as the two routes (Steeles-Lansdowne stn & Forthbridge-Lansdowne stn) operating every 22 minutes. So this route has severely regressed in 30 years to the embarrassment it is today.

    Steve: In April 2008, the 41 Keele bus ran every 6 minutes in peak, every 7’20” off peak.


  2. If the TTC wants to restore some routes within the ten minute network, one of the options they could do is temporarily discontinue some express routes that runs along routes that are temporarily removed from the ten minute network and increase service on local branches until where there is enough resources to restore express services.


  3. The TTC will claim that it’s a part of the 10 min network because south of St. Clair it runs alongside the 89 and 989 Weston road buses which makes service along Keele south of St. Clair 10 min or better.


Comments are closed.