As I’m working on refining a concrete map for Brooklyn buses, I’m implementing the following formula:
Daily service hours * average speed per hour = daily frequencies * network length
In this post I’m going to go over what this formula really means and where it is relevant.
The left-hand side represents costs. The operating costs of buses are proportional to time, not distance. A few independent American industry sources state that about 75-80% of the cost of bus service is the driver’s wage; these include Jarrett Walker as well as a look at the payrolls in Chicago. The remaining costs are fuel, which in a congested city tracks time more than distance (because if buses run slow it’s because of stop-and-go traffic and idling at stops or red lights), and maintenance, which tracks a combination of time and distance because acceleration and braking cycles stress the engine.
This means that the number of service hours is fixed as part of the budget. My understanding is that the number in Brooklyn is 10,000 per weekday. I have seen five different sources about bus speeds and service provision in New York (or Brooklyn) and each disagrees with the others; the range of hours is between 9,500 and 12,500 depending on source, and the range of average speeds is between 9.7 km/h (imputed from the NTD and TransitCenter’s API) and 11 km/h (taken from schedules). The speed and hours figures are not inversely correlated, so some sources believe there are more service-km than others.
On a rail network, the same formula applies but the left-hand side should directly include service-kilometers, since rail operating costs (such as maintenance and energy) are much more distance- than time-dependent; only the driver’s wage is time-dependent, and the driver’s wage is a small share of the variable costs of rail operations.
Creating more service
Note that on a bus network, the implication of the formula is that higher speed is equivalent to more service-hours. My current belief, based on the higher numbers taken from schedules, is that 14 km/h is a realistic average speed for a reformed bus network: it’s somewhat lower than the average scheduled speed of the B44 SBS and somewhat higher than that of the B46 SBS, and overall the network should have somewhat denser stop spacing than SBS but also higher-quality bus lanes canceling out with it. The problem is that it’s not clear that SBS actually averages 14 km/h; my other sources for these two routes are in the 12-13 km/h range, and I don’t yet know what is correct. This is on top of the fact that faster transit attracts more paying riders.
Another way to create more service is to reduce deadheading and turnaround times. This is difficult. Bus depots are not sited based on optimal service. They are land-intensive and polluting and end up in the geographic and socioeconomic fringes of the city. The largest bus depot in New York (named after TWU founder Mike Quill) is in Hudson Yards, but predates the redevelopment of the area. In Brooklyn the largest depots appear to be East New York (more or less the poorest neighborhood in the city) and Jackie Gleason (sandwiched between a subway railyard and a cemetery). Figuring out how to route the buses in a way that lets them begin or end near a depot so as to reduce deadheading is not an easy task, but can squeeze more revenue-hours out of an operating cost formula that is really about total hours including turnaround time and non-revenue moves.
The right-hand side of the equation describes how much service is provided. The network length is just the combined length of all routes. Daily frequency is measured in the average number of trips per day, which is not an easily understandable metric, so it’s better to convert it to actual frequencies:
|15 minutes 6 am-9 pm, 30 minutes otherwise 5-1 am||70|
|15 minutes 24/7||96|
|5 minutes 7-9 am, 5-7 pm, 10 minutes otherwise 6 am-10 pm, 30 minutes 10 pm-12 am||124|
|5 minutes 7-9 am, 5-7 pm, 7.5 minutes otherwise 6 am-10 pm, 15 minutes 10 pm-12 am, 30 minutes overnight||164|
|6 minutes 6 am-10 pm, 10 minutes otherwise 5-12 am, 30 minutes overnight||188|
|5 minutes 6 am-10 pm, 10 minutes otherwise 5-12 am, 20 minutes overnight||228|
|3 minutes 7-9 am, 5-7 pm, 5 minutes otherwise 6 am-10 pm, 10 minutes otherwise 5-12 am, 20 minutes overnight||260|
Daily trips are given per direction; for trips in both directions, multiply by 2. There are internal tradeoffs to each number of daily trips between peak and off-peak frequency and between midday frequency and span. But for the most part the tradeoff is between the average number of daily trips per route and the total route-length. This is the quantitative version of Jarrett’s frequency-coverage tradeoff. In reality it’s somewhat more complicated – for example, average speeds are lower at the peak than off-peak and lower in the CBD than outside the CBD, so in practice adding more crosstown routes with high off-peak frequency costs less than providing the same number of revenue-km on peaky CBD-bound buses.
It’s also important to understand that this calculation only really works for frequent transit, defined to be such that the ratio of the turnaround time to the frequency and length of each route is small. On low-frequency routes, or routes that are so short that their total length is a small multiple of the headway, the analysis must be discrete rather than continuous, aiming to get the one-way trip time plus turnaround time (including schedule padding) to be an even multiple of the headway, to avoid wasting time. On regional rail, which often has trains coming every half hour on outer tails and which is much more precisely scheduled than a street bus ever could be, it’s better to instead get the length of every route from the pulse point to the outer end to be an integer or half-integer multiple of the clockface headway minus the turnaround time.
Where is New York?
All of my numbers for New York so far should be viewed as true up to a fudge factor of 10-15% in each direction, as my source datasets disagree. But right now, Brooklyn has about 10,500 revenue-hours per weekday (slightly more on a school day, slightly fewer on a non-school day) and an average speed of about 10.5 km/h, for a total of 110,000 revenue-km. Its bus network is 550 km long, counting local and limited versions of the same bus route as a single route but counting two bus routes that interline (such as the B67 and B69) separately; interlining is uncommon in Brooklyn, and removing it only shortens the network by a few km. This means that the average bus gets 200 runs per day, or 100 per direction.
Based on the above table, 100 runs per direction implies a frequency somewhat worse than every 5 minutes peak and every 10 off-peak. This indeed appears to be the case – nearly half of Brooklyn’s network by length has off-peak weekday frequency between 10 and 15 minutes, and the median is 12. At the peak, the median frequency, again by route-length, is 7 minutes. 7 minutes peak, 12 off-peak with some extra evening and night service works out to just less than 100 runs a day in each direction.
This exercise demonstrates the need to both shrink the network via rationalization to reduce the number of route-km and increase speed to raise the left-hand side of the equation. SBS treatments increased the speed on the B44 and B46 by 30-40% relative to the locals (not the limiteds), but just keeping the network as is would onl permit 130-140 buses per weekday per direction, which is more frequency but not a lot of frequency. The 7.5-minute standard that appears to be used in Toronto and Vancouver requires more; Barcelona’s range of 3-8 minutes implies an average of 5-6 and requires even more.
Where could New York be?
It’s definitely possible to get the number of daily frequencies on the average Brooklyn bus route to more than 200 in each direction. In Manhattan this appears true as well (the big question is whether the avenues can get two-way service), and in the Bronx 250 is easy. But even 200 in Brooklyn (which implies perhaps 350 km of network) requires some nontrivial choices about which routes get buses and which don’t, cutting some buses that are too close to other routes or to the subway. I’m not committing to anything yet because the margin calls happen entirely within the 10-15% fudge factor in my datasets.
The main reason I post this now is that I believe the formula is of general interest. In any city that wants to rationalize its transit system (bus or rail), the formula is a useful construction for the tradeoffs involved in transit provision. You can look at the formula and understand why some systems choose to branch: at the same average frequency the busiest parts of the network would get more service. You can also understand why some systems choose not to branch: at some ranges of frequency, the outer ends would get so little frequency that it would discourage ridership.
What is high frequency?
I’m using 5-6 minutes as a placeholder value beyond which there’s no point in raising frequency if there’s no capacity crunch. This isn’t quite true – on a 15-minute bus trip, going from 6 minutes between buses to 3 is a 14% cut in worst-case trip time including wait – but at this point higher frequency is at best a second-order factor. It’s not like now, when going from 15 minutes to 6 would reduce the worst-case trip time on the same bus trip by 30%.
The actual values depend on trip length. An intercontinental flight every hour is frequent; a regional train every hour is infrequent; a city bus every hour might as well not exist. One fortunate consequence is that bus trips tend to be shorter in precisely the cities that can most afford to run intensive service: dense cities with large rail networks for the buses to feed. New York’s average NYCT bus trip (excluding express buses) is 3.5 km; Chicago’s is 4.1 km; Los Angeles’s is 6.7 km. Los Angeles can’t afford to run 6-minute service on its grid routes, but trips are long enough that 10-minute service may be good enough to start attracting riders who are not too poor to own a car.