Modeling Jitney-Bus Competition
I just published a piece at the Bay City Beacon about Lyft Shuttle, the company’s foray into fixed-route buses. In the piece, I mentioned briefly that adding a competing operator can reduce the average quality of service. The piece, nominally 500 words, really 700, was far too short for me to expound on the model, even though people on social media had asked me about it before. So here it is.
The first assumption is that the routes are identical. This is largely true for some of the more northern Lyft Shuttle routes, duplicating Muni’s 2 and 41 buses (the 41 duplicator skips some inner stops, though).
The second assumption is that the bus has a fixed schedule, but the jitney can schedule itself in response to the bus. This is true of the case studies I know of (and, to make it very clear, “case study” means “I’ve read an article” or “I’ve heard it discussed on social media”): Israel’s Sherut vans, and Hudson County’s private jitneys. Both use dynamic schedules, which in plain English means drivers radioing each other (in Israel) or employing lookouts (in New Jersey); the bus companies have fixed schedules that are slower to change.
The third assumption is that marginal riders take whichever route they see first. This is the case with regular jitneys. Not all riders are marginal: there might be an explicit ethnic dimension, e.g. dollar vans in New York are more popular with unassimilated immigrants, because they provide amenities like use of their own language rather than English. Lyft Shuttle is booked via app, so the situation there is murkier; however, most likely the use case will involve passengers buying a ticket a few minutes in advance, possibly checking against a bus app to see which will come first. Some people will stick with one system over the other (tech boosters seem to hate public services, people without other reasons to download the Lyft app will probably stick to the bus), but some will be flexible.
Let us work this out first assuming perfect scheduling and then introducing schedule irregularities due to bunching.
Now, let’s assume the public bus arrives every 6 minutes. If the transit agency wishes to double service, it will schedule additional service at the midpoint between each pair of successive trips, providing 3-minute frequency. But if additional service comes from a private operator, the incentive is to schedule to compete and not to cooperate. Say the public bus arrives at my station at :00 on a 6-minute takt. The private operator can schedule itself to arrive at :03 on a 6-minute takt and get half of my station’s traffic, or it can schedule itself at :05 and get 5/6 of its traffic. Let’s set the fudge factor at 1 minute for now: if the separation is smaller, for example if the jitney comes at :05:30 and the public bus at :06, then I see both at the same time and am indifferent as to which to ride.
By itself, this still means adding service. However, it’s likely that there is going to be some service diversion – that some public bus riders will switch to the private service (e.g. because it usually comes first). If one quarter of the bus riders switch, then the schedule is cut to a bus every 8 minutes. The jitney still aims to arrive 1 minute before the bus for maximum revenue, perhaps getting bigger vehicles if it needs the capacity, as the New Jersey jitneys did. So now my bus comes at :00, :08, etc., and the jitney comes at :07, :15, etc. Average wait time is 3.125 minutes, whereas before it was 3 minutes.
The formula in general if both vehicles come every x minutes and are separated by 1 minute is and this equals 3 at
, corresponding to about 23.5% reduction in transit use; any higher reduction makes average wait times worse. If the original headway was y, then we have
, or just under 2 extra minutes; the fixed separation, 1 minute, means this calculation is not scale-invariant.
Now, let’s introduce schedule irregularity into this system. As a toy model, let’s look at what happens if the bus can be up to 1 minute behind or ahead. If the route only has public buses, and one bus is off by 1 minute, then instead of two 6-minute gaps there’s a 5-minute gap and a 7-minute gap, for an average wait of 3:05. If the route has public buses and jitneys, scheduled 1 minute apart as above, then a 1-minute error is good for passengers if it evens out the schedules (it converts a 3.125-minute wait to a 2.5-minute wait), but bad for passengers if it makes the bus and the jitney arrive at exactly the same time (the wait rises to 4 minutes).
But really, bus schedules are an unstable equilibrium. (So are train schedules, but the instability is too slow to cause bunching). If a bus is a minute behind, then at the next bus stop it will have an above-average crowd size, since people had more time to show up and wait. Boarding time is a significant fraction of bus travel time, so the bus will go behind even further, until the bus behind it will catch up, at which point the two buses will leapfrog each other. It’s possible to reduce this effect by cutting boarding time, via low-floor buses and off-board fare collection with all-door boarding; Muni has implemented both, but this is still not enough to remove the instability. In practice, this imposes a minimum headway of about 3 minutes – below it, buses bunch so much that adding service doesn’t add any capacity. In theory it’s possible to go lower, but when ridership is high enough to justify 3-minute headways, it’s high enough for dwell times to make lower headways infeasible.
Jitneys do not have a 3-minute minimum headway; they’re more flexible about running express if they’re already full. This, in turn, means that schedules on jitney routes are more irregular than on buses, making wait times less predictable, and ultimately longer (since, at equal service, less even intervals translate to longer average waits). But more to the point, jitneys still aim to schedule themselves to come just before the bus does. This means that jitney arrival irregularity largely tracks bus arrival irregularity. So with this in mind, if the city bus gets delayed by a minute again, and the jitney adjusts, then we have the following service gaps, in minutes: 8, 1, 6, 1. Average wait time is now 3.1875 minutes.
So the question is, what effect does demand diversion from buses to jitneys have on bus irregularity? The answer is, not much. This depends on additional assumptions on dwell times and the initial delay. Delays compound exponentially, but the exponent (“Lyapunov exponent” in dynamics) is low; on a 6-minute bus route, a 1-minute delay means that future dwell times go up by 1/6, and at 2.5 seconds of variable dwell time per boarding or alighting (Muni average with all-door boarding, see PDF-p. 16 here) it takes 60*6/2.5 = 144 boardings and alightings to delay the schedule by another minute. Muni averages 127 boardings and alightings per hour, so it takes more than an hour for the 1 minute of delay to compound by another minute (strictly speaking, by minutes). The busiest bus in North America, Vancouver’s 99, averages 320, so the compounding takes just 27 minutes (almost a full one-way trip); Vancouver buses with comparable ridership to the routes Lyft is duplicating average maybe half that.
The point of this exercise is that on the timescales relevant to a bus route, schedule irregularity is approximately linear. So demand diversion from buses to jitneys has a linear effect on schedule irregularity: 25% diversion means that instead of a 1-minute delay there’s only a 45-second delay. A 1-minute delay with 6-minute buses is still better than no delay with 8-minute buses an jitney spaced a minute apart, so the jitneys still remove value. At higher delays, this is no longer true (average wait time is quadratic in the delay); the point of equality is about 1.61 minutes of bus delay due to schedule instability (other delays, like traffic, affect all routes equally regardless of frequency). So jitneys can add value on long, busy routes (don’t forget – the lower the headway, the more significant the assumed 1-minute separation is). But the routes the Lyft Shuttle jitney runs are less busy, and more importantly are short, with less opportunity for delay compounding; delays do not compound past the terminus with decent dispatching.
The upshot is that jitneys do not universally remove value from transportation networks. But on short 6-minute routes, they do even under mild assumptions on ridership diversion. There’s more service in operation, but from the riders’ perspective, wait times have increased and regularity has degraded. The logic of competing private companies is not always the logic of better service for passengers. Sometimes, having a government monopoly inherently improves efficiency.


