Have you ever waited for your bus at a bus stop for a very long time – only to be greeted by two or more buses arriving together?

This phenomenon, known as “bus bunching,” is a problem that bus transit systems around the world have been trying to solve for decades. During this time, researchers have used mathematical models to study the behavior of bus transit systems to better understand why this happens. The mathematics identify what causes this problem – and also suggests that bus-tracking technology can be combined with simple control algorithms to improve the situation.

Bunching is annoying for riders, since it increases both the average time spent waiting for the bus and the variability in this waiting time.

Bunching also makes the bus system less reliable, because it causes buses to get off schedule. The long waits induced by bunching can also cause people to shift away from buses toward other, less sustainable modes of transportation.

Bus bunching occurs because bus routes are inherently unstable. When the buses are on schedule, everything seems to work fine. They travel from stop to stop, waiting at each for passengers to exit or climb aboard. However, once a bus gets behind schedule, it’s nearly impossible for it to get back on track. It will continue to get further and further behind schedule until the next bus on the route catches up.

The same thing happens to buses that are early: They continue to get earlier and earlier as they travel through their route, until they catch up to the bus just ahead.

Equations that describe how buses move along a route identify why this happens. The time buses spend serving passengers at a stop is related to the amount of time between consecutive bus arrivals, commonly known as bus headway. When a bus runs late, its headway increases and more passengers arrive that need to be served at its next stop. But the more passengers waiting at a stop, the longer a bus needs to spend there. So late buses need to spend more time at each subsequent stop, causing them to run even later. The opposite happens for a bus that’s early. This cycle continues until multiple buses eventually catch up to each other and bunch.

So what can be done to stop this? Transit agencies have worked with researchers such as ourselves to propose many different ideas to eliminate bus bunching.

One strategy is to instruct late buses to skip stops where passengers don’t need to get off or to limit the number of people allowed to board late buses at each stop. Both of these allows the late bus to spend less time at each stop, which allows it the opportunity to catch up. Of course, doing so can leave potential users stranded.

Another common strategy is to build more time than needed into a bus’s schedule. This additional time – called slack – helps accommodate the variability in bus travel time. Buses that are early are instructed to hold at selected stops until the scheduled time to depart. However, this strategy does not help late buses recover. It’s also susceptible to any disturbances that cause buses to get off schedule. Delaying or holding buses in this way also reduces the speed at which passengers can travel along the route.

New technology may be able to help. Transit agencies can now track the location of buses in real time and offer tailored feedback to drivers. These novel strategies treat consecutive buses as if they were all connected by springs. Buses that are too close together along the route are given instructions to help “push” them apart, while buses that are too far apart are given information to help “pull” them back together. Drivers might be told to spend this much extra time to spend at a stop or to travel that much slower or faster along a route.

Researchers have developed algorithms that agencies can use to provide such instructions to individual buses and avoid bus bunching. These instructions could be sent from dispatchers at the transit agency who monitor the system and provide simple guidance to drivers or through on-board computers that calculate exactly what drivers should do to prevent bunching automatically. Computer simulations and field tests suggest that these dynamic strategies may one day make bunching a thing of the past.