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 \frac{(x-1)^2 + 1}{2x} and this equals 3 at x = 4 \pm \sqrt{14} \approx 7.74, 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 x = 1 + y/2 \pm \sqrt{(1 + y/2)^2 - 2}, 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 \sqrt[6]{e} \approx 1.18 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.


  1. Henry Chin

    Doesn’t this assume that the jitneys are colluding together to maximize their profits, though, instead of also competing against other jitneys? Lyft drivers are not organized other than the fact that they all use the same app, and ride-sharing apps don’t generally try to coordinate a fixed schedule in the first place.

    • Alon Levy

      Lyft Shuttle is different – the vehicles are branded, for one. So it’s likely there will be some top-down schedule coordination.

      • Henry Chin

        Hm, I was not aware of any branding (that went above and beyond traditional Lyft branding, anyways), so I was under the assumption that it was just the same Lyft drivers and vehicles utilized differently.

  2. alexhutcheson

    Interesting post! The economic incentives seem similar to those that cause Hotelling’s Law: In this case, the transit agency is constrained to play sub-optimally, by not changing their schedule in response to the competition.

    I wonder if anyone has modeled the dominant strategy if no players are constrained in their choices.

  3. threestationsquare

    I don’t think this model holds in the Lyft Shuttle case the way it does for the jitneys/sheruts.
    1) Likely riders have access via smartphone apps to projected arrival times for both the Lyft Shuttle and the Muni bus. Since Lyft Shuttle will be at least slightly more expensive than the bus (particularly since Muni has monthly passes and Lyft mostly doesn’t), if they see a Lyft Shuttle coming in 4 minutes and a bus coming in 5 minutes they’re less likely to pay the extra for the Lyft. So Lyft will have some incentive to run further ahead of the bus, decreasing average wait times.

    2) Your model assumes the separation between buses and Lyft Shuttles is constant throughout the route. But Lyft Shuttles (presumably ordinary Lyft-driver-owned cars, not small buses like the NJ jitneys) are likely to be substantially faster, due to fewer passengers requesting stops/ability to run express when full, fewer passengers boarding at each stop, no need for any passenger to pay cash, much better door:seat ratio, better acceleration and manoeuvrability, etc. So even if a Lyft Shuttle starts its run 1 minute ahead of a Muni bus, it will soon get further ahead and may even end up passing the next bus. Over the length of the route the spacing between Lyft Shuttles and Muni buses is likely to be pretty random. The only way to avoid this is for the drivers to drive slower to match speed with the Muni buses, but this means providing worse service to the passengers already in the car (faster service than Muni is a big selling point, and going slower than traffic flow is noticeable and aggravating); the drivers will also be reluctant to do this as they are paid largely by the mile, and insisting they do so sounds like the sort of fine control Lyft/Uber were ordered not to exercise if they didn’t want drivers to be categorised as employees rather than contractors.

    3) To divert anything like 25% of a Muni route’s peak ridership as you model, you need much more than a single Prius between every pair of buses. Either Lyft Shuttle will run substantially more frequently than Muni (in which case riders on that route at least will have lower wait times, though cross-subsidy of other routes may be undermined), or it will divert a minimal fraction of ridership.

    • Alon Levy

      Ad 1: that depends on value of time, no? You get a 2-minute separation with a $30/hour value of time, which seems realistic, maybe even a hair low, for the target market. (Would fliers pay $30 extra to cut an hour from their connection? Many do.)

      Ad 2 and 3: I think Lyft Shuttle is planned to be van-size (with branded vans colored pink) and not sedan-size. 10 seats per vehicle and not 4. Bridj, not Lyft Line. I don’t see a way of coherently running a fixed bus route with fixed stops with a sedan-size vehicle. At least in the case of Bridj, they even got special vans designed for faster access and egress, since your standard van, used e.g. in Sherut, has longer dwell times per passenger boarding due to the difficulty of getting on. With standard vans or with sedans, boarding time per passenger is so high that it might not even be faster than Muni, except on the nonstop segments.

      Sherut vans are actually faster than buses (or were in 2000, before the 2004 regulations made them more bus-like); at the time, you had to pay cash everywhere, or show a monthly pass on a bus, and this slowed down bus boarding a lot. The vans still tried to get to the major stations just before the buses did. Lyft Shuttle is going to be faster than Sherut, but Muni is faster than Dan buses, with off-board fare collection.

      • threestationsquare

        Have you seen any pictures of branded pink passenger vans? I’m pretty sure it’s just driver-owned vehicles (sedans or maybe six-seat “Lyft Plus” SUVs) from the general Lyft/Lyft Line pool. Notably if I try to request rides on the shuttle routes in the Lyft app it tells me that Lyft Shuttle is only available in the peak direction (into downtown in the morning, out in the evening) which makes sense if the vehicles are using the ambient Lyft supply as a source/sink at each end but not if they are special-purpose vehicles (which would then pile up downtown). Lyft-owned branded vans would go against Lyft’s model of externalising capital and insurance costs to drivers, and also potentially risk their legally-precarious arrangement where drivers are contractors and not employees.

        • Alon Levy

          Uber counts all Uber Pool revenue on its balance sheet (vs. only its cut of the UberX revenue), so there is some precedent for treating the transit (or transit-ish) component differently from the taxi component. I presume that if Lyft keeps doing this it will use bigger vehicles, with its own drivers, while running the taxi service with independent contractors as today. If anything it might make its legal situation easier: it could say, look, we have actual employees for Lyft Shuttle, this is just contractors.

        • threestationsquare

          Confirmed: “These are not heavy-duty vehicles. They’re standard passenger cars that people own that are already operating on the Lyft platform. That means they’re not giving Shuttle rides unless there is demand for one, which I think is one of the key features of Shuttle.” “Lyft Line and Lyft Shuttle both take up to three passengers at any time.” So it’s just three-passenger sedans, and it sounds like they intend to keep it that way.

          • Alon Levy

            So, the total revenue is going to be $9 per run? That really doesn’t sound like a viable business model.

          • threestationsquare

            Probably a bit more than that because of the potential for turnover at intermediate stops, also some of the longer routes are $3.50 and not $3.00. A regular (taxi-style) Lyft along the length of the same routes in SF costs $10-$13 as of this moment (admittedly offpeak) so they at least aren’t doing much worse with Shuttle than without it.

          • Alon Levy

            *I meant “is Lyft Line any less of a money pit than Uber Pool?”. Shuttle looks about comparable to Line, which isn’t good.

  4. Ben Kurtz

    If you run your jitney van — which you’ve said has a non-trivial per passenger boarding time — a mere minute ahead of the public bus, won’t you run into nearly the same bunching / leap-frogging dynamic that occurs when you run public buses with less than 3 minute headways?

    The appeal of a 15 passenger jitney van over a 100 passenger bus is that, even with equal per-passenger boarding times, the first passenger to board at a station (or a passenger already on board) is guaranteed only to have to wait for a maximum of 14 additional boardings before the bus moves off, while on a public bus he’d be at risk for another 99 boardings. Go hang out on East 86th Street and Lexington in Manhattan and watch the M86 bus load and unload to get a feel for how long this can take! I’ve timed it at several minutes per stop, but that was in the days of having to dip your Metrocard at the front door. Public systems can speed things using offboard fare collection (and have been finally adopting this in the U.S.), but now with apps so can jitneys. And even before apps, jitneys would often board everyone rapidly, move off, and handle cash fare collection once underway.

    With a relatively larger number of passenger boardings, the large bus runs a greater risk of having to board an unusually slow passenger at any given stop (whom I assume are randomly distributed around the passenger population) — for instance, a wheelchair user — and more passengers are stuck on the bus waiting for that boarding to complete as well.

    With a much lower capacity, there are greater odds that a van will fill up at points along the line, enabling it to skip boarding stops with waiting fares even when not officially running on an “express” schedule (assuming an on-board passenger does not wish to alight at the same stop — given the smaller number of passengers on board, there are greater odds of this being the case relative to a big bus, even on a dense, popular route). Also, with fewer passengers on board, the odds are reduced that any given request stop (without a new fare waiting for pickup) will be requested, which is particularly useful on an evening commuter line, where full vehicles depart the city center and slowly dribble off passengers as they drive long routes through residential suburbs with many potential request stops (ride some of the commuter lines from Port Authority to northern NJ to get a sense of this).

    Finally, small vans tend to have better acceleration, handling and overall speed in moderately dense traffic conditions, relative to large buses, allowing them to get places faster.

    The point of all the above is that, for a run down a given fixed route along city streets and suburban boulevards with relatively plentiful signposted stops where, if the vehicle has available capacity, it must stop to pick up a waiting fare and or set down a requesting on-board passenger, the fastest to slowest journey times, by mode, are probably: motorcycle taxi (see: Thailand); sedan taxi; shared-ride sedan; shared-ride van; large bus. We can assume frictionless fare collection (off board, app, whatever) to keep this tidy. The model changes quite a bit for highly concentrated demand; i.e. point-to-point or point-to-multipoint service — long distance intercity buses, or an airport taxi rank where everyone boards in one place and but alights at different destinations.

    The point is, a van which reaches the first stop a minute ahead of the public bus will probably increase its lead-time substantially along the entire line, and not maintain fixed spacing ahead of the bus to poach fares maximally.

    If a transit planner wishes to run 1,000 seats per hour down a given line, passenger travel time and service quality would be far better served by running vans with 15 passenger capacity on 54 second headways than buses with 100 passenger capacity on 6 minute (360 second) headways.

    It’s probably more expensive, given that you need 6.7x the drivers (but they can be lesser qualified drivers, and cheaper, because vans are less demanding to operate), and the fuel economy and maintenance savings per vehicle on the smaller vehicles is almost certainly eaten up by having a lot more of them. Funny enough, though, Ford Econoline minibuses tend to cost a good 7x-10x less than a full sized transit bus, so the capital cost is probably not all that far off. Still, the increase in service quality is probably enough to attract higher fares from existing users (apart from poor subsidized users), and even attract marginal users who’d otherwise drive or take a taxi in certain cases — I’d certainly like to see that business case sketched out in a plausible market like New York, Chicago, Boston, San Francisco or London.

  5. johndmuller

    This poaching of riders (the idea, at least, even if the actuality gets less effective as the route goes on), is kind of vaguely disturbing in a Marie Antoinette sort of way. Interloper swoops in and undermines the business of the public service, making it less economic than ever and possibly driving it out of some (perhaps the better) markets and maybe eventually all markets, leaving everyone dependent on the higher priced “cake”.

    Have we been here before? Back when all buses were private, were there not some more complicated arrangements involving (monopolistic) franchises and negotiated deals regarding the terms of service. Further back in trolley days, the need for track and wire infrastructure made some sort of arrangements necessary. Perhaps the need for this setup diminished with buses and became totally forgotten with public ownership of the transport companies and with the whole business seemingly unprofitable who wanted to add competition on top of it to make it even less profitable? …. until now, for some reason – could it just be tracking apps?

    Anyway, it doesn’t seem quite right for the interlopers to be able to cherry pick the local transportation world and leave the government (Our government) with the choice of taking responsibility for mainly the dregs of the system or abandoning it all and leaving those who are left out to handle it on their own. Are these services going to be obliged to provide for special needs clients? How, when they are “only an app”?

  6. Pingback: Brinens and Things

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.