What Is the Waiting Time Paradox on Pythonic Perambulations?
Updated
The waiting time paradox is the counterintuitive result that if a bus arrives every 10 minutes on average, your average wait when you show up at a random time is about 10 minutes, not 5. The post "The Waiting Time Paradox, or, Why Is My Bus Always Late?" on jakevdp.github.io (Pythonic Perambulations, published September 13, 2018) explains why this happens and then tests the idea against real data.
The core claim
If buses ran exactly on schedule, a random arrival would land uniformly inside a 10-minute gap, giving an average wait of 5 minutes. The paradox arises once you drop that assumption. When arrival times vary, the schedule is no longer a set of equal gaps, and a random moment is more likely to fall inside a long gap than a short one. That length-biased sampling pushes the expected wait above 5 minutes, and under the assumptions used in the post it lands at roughly 10 minutes.
Why random arrivals favor long gaps
Picture the timeline as a series of gaps between consecutive buses. If you pick a random instant, the probability of landing in a given gap is proportional to that gap's length. A 20-minute gap occupies twice as much of the timeline as a 10-minute gap, so you are twice as likely to arrive during it. Averaging your wait over where you actually land, rather than over the gaps themselves, weights the long waits more heavily. That is the mechanism behind the "why is my bus always late?" feeling.
How the post builds the argument
The article approaches the question from two directions before turning to data:
- Simulation — generating bus arrival processes and measuring the resulting waits directly.
- Probabilistic reasoning — deriving the expected wait analytically to show the result is not an artifact of one simulation.
Running both is what makes the conclusion credible: the simulation shows the effect appears in practice, and the probability argument explains why it must.
Testing it on real buses
The post then examines actual bus arrival time data from Seattle to see whether the "reasonable assumptions" behind the paradox hold up in the real world. This is the step that separates a neat theoretical result from a claim about your commute. Real transit data includes variability that a clean model may not capture, so checking the prediction against observed arrivals is what settles whether the paradox describes reality or just an idealized model.
What to take away
- The 5-minute intuition assumes perfectly regular buses; real variability breaks it.
- Length-biased sampling is the key idea: you are more likely to arrive during a long gap.
- The post supports the result with both simulation and probability, then checks it against Seattle data.
If you want the full derivation, the simulations, and the Seattle analysis, read the original post at jakevdp.github.io.