Optimal bus stop spacing
- 16. May 2026
- #mathematics
Did you know that building new roads can increase traffic congestion in a city? It’s called Braess’s paradox.
In a similar vein—though perhaps not as counterintuitive—adding bus stops to a bus route can increase travel time. That’s the main takeaway from the article “The United States needs fewer bus stops”. It’s great when we can improve a system by subtracting from it.
How can adding a stop increase travel time? The reason is that travel time is a function of two competing mechanisms:
- If there are many bus stops, you don’t have to walk far until you get to one
- However, with many bus stops, the bus will also have to stop many times on your journey
Simulation
Let us simulate this on a 10 kilometer stretch of road. We assume that population density is uniform along the road, so a journey can be randomly generated by drawing 2 numbers; a start and an end.
The figure below shows 25 random journeys, along with 6 equidistant bus stops 2000 meters apart.

The figure above outlines the basic simulation setup. We’ll also make the following assumptions:
- The bus has infinite passenger capacity and always stops at every bus stop.
- The bus dwells for 45 seconds at each bus stop.
- The bus has a speed of 25 kilometers per hour (slow, but realistic for a city).
- A person’s walking speed is 5 kilometers per hour.
Instead of 25 journeys, let us look at one million journeys. The figure below shows the distribution of travel time when traveling by foot and on the bus—a fine-grained histogram with a million journeys.

No journey ever takes more than two hours, since every person walks at a speed of 5 kilometers per hour, and the road is 10 kilometers long. Most journeys are faster by bus, but this is not the case for very short journeys—in that case walking is faster. The average travel time with the bus is 0.35 hours (21 minutes), which is significantly shorter than the average walking time of 0.67 hours.
What if we add more bus stops? Does it help? Let us try with 16 bus stops.

With 16 bus stops the average spacing goes down to 667 meters. The average travel time also goes down to 0.26 hours.
What if we keep adding bus stops? Will travel time continue to decrease? Let’s go all the way to 51 bus stops.

The figure above shows that more bus stops are not better, since with 51 bus stops the travel time is up to 0.36 hours. In fact, a road with 51 bus stops is worse than one with 6 bus stops!
Here is the figure you might have been waiting for; the average travel time as a function of bus stops.

The optimal number of bus stops is 16. Does 16 stops—a spacing of 667 meters—seem reasonable? I think so; you never have to walk for more than 333 meters to catch the bus, and on average you walk 167 meters. This corresponds to about 4 and 2 minutes of walking, respectively.
Analytical solution
The bus stop problem is excellent because it can be approached either by computer simulation or analytical mathematics (deriving equations). In fact, the two approaches complement each other nicely.
Let \(n\) be the number of bus stops and \(L\) be the length of the road (10 kilometers). Then \(\ell = L / (n-1)\) is the equidistant spacing between each bus stop. Furthermore, let \(v_w\) be the walking velocity and \(v_b\) be the bus velocity. Finally, we denote the dwell time of the bus, measured in hours, by \(d\).
The expected total travel time is the sum of three different terms:
- Starting at a random location, the average distance to the closest bus stop is \(\ell / 4\). We multiply this by two, since we have to walk both to the nearest bus stop at the start of our journey, and from the final bus stop at the end of our journey. The average time walking to and from the bus is therefore \(\ell / (2 v_w)\).
- The average distance traveled on the bus is roughly \(L / 3\). The total time on the bus, excluding dwelling times, is therefore \(L / (3 v_b)\).
- The number of stops on a journey of length \(L/3\) is \(L / (3 \ell)\), so the total time on the bus due to dwelling at bus stops is \(d L / (3 \ell)\).
The skeptical reader is encouraged to verify the claims above more thoroughly. If we put all this together, we obtain the average time \(T\), as a function of bus stops \(n\):
Differentiating and solving \(T'(n^{\star}) = 0\), we obtain
This analytical equation matches the simulation results nicely, as shown in the figure below.

Notice how the optimal number of bus stops grows like the square root of \(L\). If the road segment becomes four times as long, only twice as many bus stops are needed. This is because the average journey also becomes longer, due to the assumption that journeys are uniformly drawn from the line segment.
Why the discrepancy between the simulations and the equation? It’s because bus journeys were simulated by picking the fastest out of four possible journeys. Given a starting point for a journey, a person can either go left or go right to catch the bus. Similarly, a person can either exit the bus before or after the final endpoint of the journey. This gives four possible journeys, and in each simulation I computed the fastest one.