This article is rather technical and is intended as an exploration of an alternate way of presenting dwell time statistics for routes to quickly identify where vehicles spend a lot of time, and in particular where there are extra stops near and farside of intersections.
Anyone who is interested in this discussion, please leave comments. The data presented here appeared in Part II of this series, but in a different format. This is an attempt to improve on the presentation.
Updated March 15, 2021 at 9:25 am: Charts have been added for 505 Dundas for weekdays and Saturdays in February 2021 as an illustration of the very different stopping behaviour on a mixed traffic route where all stops are nearside.
Updated March 14, 2021 at 9:00 pm: A sample chart has been added at the end of the article including a few changes in format.
Updated March 14, 2021 at 1:00 pm: The westbound charts originally published here were the wrong set and covered the period January 12-23 which includes two Sundays and excludes Fridays. The eastbound charts are for January 20-31 which includes only weekdays. All westbound charts and downloadable files have been replaced with new versions. The primary change is that replacing Sundays with Fridays increases the number of observations and strengthens the effects seen in peak periods.
I have received a request for raw data files so that people can play with their own versions. WordPress does not allow uploads of files that potentially could include executable code, macros, etc. If you want the data, please leave a comment and include a real email address.
Background on the Methodology
There is a challenge in figuring out where streetcars and buses spend their time because the vehicle tracking system does not record their location constantly, but rather on a routine update cycle. With the TTC’s new “Vision” system, this cycle is much shorter, but the vast majority of historical data I have comes from the pre-Vision system known as “CIS”, notably the streetcar network where full conversion did not complete until late 2020.
In the CIS system, the “polling interval” (the time between recorded locations of vehicles) is typically 20 seconds, although there can be cases where vehicles are missed. The most common problem lies with GPS signal reflections in certain parts of the city that caused cars to mis-report their location. Such data points must be discarded to avoid bizarre results in calculations of vehicle behaviour.
For consistency, where I do have either a mix of CIS and Vision data for a route (i.e. during the transition period) or all-Vision data, I round times in the observations to the same 20-second cycle as CIS data to allow analysis of all vehicles and time periods on a comparable basis. (Changing to a more fine-grained timescale is a project for another day, and I suspect it will not make much difference in the results.)
The starting point with any route’s data is that I “see” vehicles every 20 seconds. They might be stationary or they might be in motion.
A related part of the methodology I developed for this work is that the route geometry is converted into a one-dimensional space, in effect thinking of the line on the route map as a piece of string and pulling it out straight. One end of the string is the “zero” point, and there is a knot every 10m westward or northward dividing the route into small chunks independently of its twists and turns.
Why these directions? In TTC schedule parlance, westward or northward travel is usually “Up” while the reverse is “Down”. That’s what the “U” and “D” on transfers means.
GPS locations are mapped into this co-ordinate system by which every position on a route becomes a single number representing the distance from the eastern or southern terminus. There are special cases and challenges on a few routes, but in general this greatly simplifies and standardizes the internal representation of all routes. (The process is described in more detail in this article.)
For each “tick” of the clock, a vehicle is somewhere along this line, but when it is in motion, we rarely get two observations from adjacent points because vehicles travel more than 10m in 20 seconds. However, locations where vehicles are likely to be stopped will accumulate more vehicle observations than vehicles where they are usually moving. If you took a picture at any location every 20 seconds, some photos would have a bus or streetcar, but many would not.
To determine how likely it might be for a bus or streetcar to be delayed somewhere, it is not enough to just count how many observations there were in, say, an hour at each point along a route, although that will certainly show “popular” locations in the data. Of particular interest is the length of time vehicles spend without moving.
Even if a vehicle stops briefly to serve riders, it is possible that it will come and go within one 20 second cycle, although 40 (two cycles) is also likely. At busy stops, and particularly at stops where vehicles are held by traffic signals, left turns or congestion, a vehicle might appear within the same 10m segment of a route for over a minute.
(As an aside, the same sort of sampling is used to produce the average speed charts such as those in Part I of the series. Each observation is 20 seconds apart, and it is some multiple of 10m away from the next one. This makes calculating speed at that time simple, and values for many vehicles can be averaged to produce a speed profile for a route.)
For most analyses, I prefer to use about two weeks’ worth of data, subdivided by hour of the day, to avoid skewing from small numbers of unusual events. Using hourly periods gives data that are credible representatives of real conditions rather than smoothed over a long period. Averaging service at 10pm together with the peak hour would produce results that represent neither interval, and would mask behaviour specific to each of them.
This is probably the single biggest problem with many of the stats presented by the TTC: they are averaged over very long periods and a large number of observations during wildly different operating conditions. This is rather like saying that, on average, the DVP is not congested.
Looking at St. Clair
The charts below show the dwell time profile for 512 St. Clair westbound in the PM peak hour. The data are from the last two weeks of January 2020, pre-pandemic, and without any major winter storms.
To avoid crowding, the route is broken into two overlapping segments. Note that the horizontal scale is not exactly the same because the western “half” is slightly longer than the eastern one, but this does not affect what the charts display.
Each colour on the chart represents the group of cars that were observed for varying intervals at each 10m increment along the route. Green is for a single observation (i.e. one 20 second “tick” of the clock), while orange is for two (40 seconds) and so on up to dark red for six or more (2 minutes or above). There will always be more observations where cars are driving slowly, or are stopped briefly, but cases where they stay longer stick out quite clearly.
The basic point is that if a spike is not green, this is a location of interest. Mostly these are nearside or farside stop locations. If the predominant colour shows an even longer dwell for many of the vehicles, then this is could be a location with real problems unless there is a mitigating factor such as being at a terminal or subway interchange. In particular, longer dwells nearside of an intersection where the stop is farside show that traffic signals are not working in transit’s favour.
Several points to note here:
- Travel westbound is from left to right across the charts.
- Because cars loop through St. Clair West Station, they actually occupy the same 10m route segments more than once, and this causes particularly high counts at this location.
- The pattern of double-stopping, once nearside and once farside, at stops is quite clear.
- Bathurst Street is a point where streetcars are held for long periods.
- Oakwood Avenue is consistently a location where cars remain for extended periods during almost all hours of the day.
- At Gunns Loop, all of the dwell times are high because this is a layover point.
Click on any chart to see a larger version.
Here are the corresponding charts for eastbound travel. The direction of travel is right-to-left.
Here are the westbound charts for the 8-9am peak hour.
Here are the eastbound charts for 8-9am.
Below are links to full chart sets with one page for each hour. You can step through these as flip-chart animation to see how the stats evolve through the day. Problem locations rise and fall in the peaks and off-peaks.
- Westbound, eastern portion
- Westbound, western portion
- Eastbound, western portion
- Eastbound, eastern portion
These charts are a work in progress, but I would like to settle the format before turning to other routes with rights-of-way and farside stops.
In the process of writing this, I have already seen a few things to change:
- The “Stops” item in the legend is left over from another chart format and it should be removed.
- The colours for the various intervals should be rearranged so that the progression is clearly from “cool” to “hot” for longer dwell times.
- The two shades of red for “100” and “120” are too similar.
- The “120 sec” legend should be changed to “120+” in recognition that this group contains all observations at or above a 2 minute dwell.
Please let me know via comments if these charts “work” in displaying a route’s stopping behaviour and if you have any ideas for ways to improve them. Thanks in advance.
Here is one of the charts with two formatting changes:
- The 120 second data are now shown in a pink rather than dark red for better contrast with the 100 second red plot.
- Vertical lines showing stop locations have been restored. (It was an Excel thing. Don’t ask.)
505 Dundas February 2021
As a contrast to the St. Clair data above, here are sets of charts for 505 Dundas for weekdays and Saturdays in February 2021. Among points worth noting:
- There are locations where cars hold for extended periods that are not stops such as Victoria Street and south of Broadview Station.
- Some stops have long dwell times such as Parliament eastbound on Saturday evenings. It appears that this (among other locations on the route) may be places where cars are held for time, possibly to minimize backups at Broadview Station.