Missed connections, built from flight records
Across the 30 busiest US airports, 17% of 45-minute connections failed between September 2023 and August 2026, counting cancellations. At Atlanta it was 14%, and a 95% chance took 130 minutes. Judging the risk from the inbound flight alone overstated it by 2.8 points at 45 minutes, because the outbound flight is often late too, and more often on the days the inbound is. The numbers come from 23.0 million domestic flights recorded by the US Bureau of Transportation Statistics, paired into 90.0 million connections.
missed at 45 and at 90 minutes, all 30 hubs together. At 30 minutes it was 31%.
for a 95% chance across all hubs. 3.0% of pairs fail on a cancellation or diversion that no layover fixes; if both flights operate, 95 minutes is enough.
by which the inbound-only shortcut overstated the miss rate at 45 minutes (20.0% against 17.2%). From 120 minutes on, it understates, because it ignores outbound cancellations.
minutes needed for 95% (if both fly) at the median hub, arriving at 8 am against 7 pm. Delay builds through the day.
of 45-minute connections missed, against 20.0% from the inbound flight alone.
Calibration error on the holdout: model 0.86 points, cell average 0.93, shortcut 2.05.
Method
The BTS on-time table lists flights, not passengers. Every connection here is constructed. At each hub, an arriving flight is paired with every departure on the same marketing airline (the name on the ticket, so a SkyWest-operated United Express leg counts as United) that leaves 30 to 180 minutes later on the schedule and goes somewhere other than where the arrival came from. Pairs flown by the same aircraft are dropped, since that plane cannot leave without its own passengers; that removed 1.5% of 567 million candidates, up to 8.6% at TPA. To keep every arrival equally represented, one departure is drawn at random for each arrival in each 15-minute layover band, leaving 90.0 million pairs on 196 hub and airline combinations. Results by layover use 5-minute bins labeled by their lower edge, so "45 minutes" means a scheduled layover of 45 to 49 minutes.
A pair is missed if the inbound was cancelled or diverted, if the outbound was cancelled, or if the inbound reached the gate too late: actual arrival plus a walk of W minutes later than actual departure minus D minutes, where D is when the door closes. The defaults are W = 20 and D = 10, so a connection needs 30 minutes between gate arrival and pushback. The lookup tool lets you change W.
Curves
The miss rate falls from 31% at 30 minutes to 12% at an hour and 6% at two hours, then flattens toward the cancellation floor. The worst hub at 45 minutes was Washington National at 23%; the best was Baltimore at 12%.
scripts/make_figures.py from tables/curves_hub.csv.The 95% layover
Departures leaving 15 or more minutes late rise from 7% in the 5 am hour to 32% in the 7 pm hour. Counting cancellations, only 22 of the 30 hubs reach a 95% chance within 180 minutes at all, so the map below takes cancellations out and asks a narrower question: if both flights operate, how much layover does a 95% chance need? At the median hub it is 60 minutes for an 8 am arrival and 120 for a 7 pm one.
tables/layover_needed_hub_hour.csv.The shortcut
The obvious way to judge a connection is to ask how often the inbound flight lands more than the spare time late. That ignores the outbound. When the inbound was 30 or more minutes late, the outbound left 15 or more minutes late 40% of the time, against 24% of all pairs: the same storm and the same congested airport hold up both. Part of the gap does not depend on that link: outbound flights leave late on average, so even unrelated delays would shrink the shortcut's estimate. The correlation between the two delays is 0.15 overall, from 0.05 at SLC to 0.21 at EWR.
At 45 minutes the shortcut gives 20.0% against a paired 17.2%. The delay part alone overstates by 3.4 points (17.6% against 14.2%), offset a little by the 1.1 points of outbound cancellations the shortcut never sees. The gap closes at about 120 minutes and reverses after it, when cancellations make up most of the remaining risk. By hub it runs from -0.3 points at SLC to 5.7 at BWI.
tables/shortcut_all.csv.Evaluation
Each estimator was fitted on September 2023 to February 2026 and scored on 2,000,000 pairs from March to August 2026, where 11.1% were missed. The inbound-only shortcut uses the same cells and backoff as the cell average, so the two differ only in what they average. The logistic model has terms for hub and airline, layover, arrival hour, month and weekday, with layover, month and hour allowed to vary by hub; it was fitted on 3,000,000 training pairs.
| Estimator | Mean prediction | Calibration error (points) | Brier score | Brier skill | Log loss |
|---|---|---|---|---|---|
| Inbound delay only | 11.6% | 2.05 | 0.0941 | 4.3% | 0.3269 |
| Cell average | 10.4% | 0.93 | 0.0927 | 5.8% | 0.3230 |
| Logistic model | 10.5% | 0.86 | 0.0926 | 5.9% | 0.3217 |
The model calibrated best by a small margin over the cell average, and the tool ships it. Both predicted fewer misses than happened in the test months (10.5% and 10.4% against 11.1%): March to August 2026 was worse than the same months before it (11.0% missed, against 10.4% in 2024 and 10.5% in 2025), and pairs lost to a cancelled or diverted flight rose to 3.8% from about 3.1%. The shortcut was the worst calibrated; in its top tenth it predicted 37% and saw 28%. Brier skill against always predicting the test average is small for all three, about 5.9% at best: most of what decides a single connection, such as a thunderstorm that afternoon, is not in the inputs.
tables/calibration.csv.To rank what drives risk, each factor was dropped from the model in turn and the test log loss compared. The layover itself mattered most, then the hour of arrival and the hub and airline. Dropping the day of the week made the test score slightly better, so it adds nothing out of sample. Taking out the month and the day of the week changed the test log loss by less than 0.001.
Pre-pandemic
The same 30 hubs and airlines in calendar 2019 (32.0 million pairs) missed 17% of 45-minute and 12% of 60-minute connections, against 17% and 12% in the main window. Cancellations and diversions were higher, 3.7% against 3.0%, so 95% was not reached within 180 minutes; if both flights flew, it took 90 minutes. Hub by hub at 45 minutes, 18 of 30 are worse now. DCA rose most (4.8 points) and EWR fell most (7.2 points).
Every hub
| Hub | Pairs (m) | Missed at 45 | 90% at | 95% at | 95% if both fly | Cancel or divert | Same tail | Delay corr. | Shortcut gap | |
|---|---|---|---|---|---|---|---|---|---|---|
| ATL | Atlanta | 8.3 | 14% | 65 | 130 | 85 | 2.4% | 0.8% | 0.17 | +1.8 |
| ORD | Chicago O'Hare | 7.5 | 20% | 95 | >180 | 110 | 3.8% | 1.1% | 0.18 | +3.1 |
| DEN | Denver | 6.5 | 15% | 65 | 120 | 90 | 2.1% | 1.3% | 0.19 | +5.3 |
| DFW | Dallas/Fort Worth | 7.5 | 20% | 100 | >180 | 110 | 4.4% | 0.7% | 0.14 | +3.4 |
| CLT | Charlotte | 5.7 | 17% | 75 | 165 | 100 | 2.9% | 0.9% | 0.11 | +2.1 |
| PHX | Phoenix | 3.9 | 15% | 60 | 105 | 90 | 1.4% | 2.4% | 0.07 | +2.9 |
| LAX | Los Angeles | 3.3 | 16% | 65 | 115 | 85 | 1.6% | 4.6% | 0.05 | +0.6 |
| LAS | Las Vegas | 3.1 | 15% | 60 | 95 | 80 | 1.5% | 3.4% | 0.18 | +5.5 |
| SEA | Seattle | 3.9 | 17% | 65 | 105 | 80 | 2.0% | 2.3% | 0.07 | +1.3 |
| IAH | Houston Intercontinental | 2.8 | 15% | 70 | 175 | 90 | 2.9% | 1.1% | 0.17 | +2.4 |
| LGA | New York LaGuardia | 3.0 | 21% | 105 | >180 | 95 | 6.1% | 2.9% | 0.21 | +1.7 |
| MCO | Orlando | 2.2 | 17% | 70 | 145 | 90 | 3.0% | 5.3% | 0.19 | +4.8 |
| DCA | Washington National | 2.4 | 23% | 115 | >180 | 110 | 5.9% | 2.5% | 0.13 | +1.5 |
| SFO | San Francisco | 2.1 | 22% | 80 | 140 | 105 | 2.1% | 2.8% | 0.14 | +3.8 |
| BOS | Boston | 2.1 | 20% | 80 | 175 | 95 | 3.6% | 4.6% | 0.20 | +3.4 |
| EWR | Newark | 2.6 | 20% | 100 | >180 | 100 | 5.1% | 1.8% | 0.21 | +1.3 |
| DTW | Detroit | 2.4 | 16% | 70 | 150 | 105 | 2.2% | 1.7% | 0.10 | +1.4 |
| MSP | Minneapolis | 2.5 | 15% | 65 | 120 | 90 | 1.7% | 1.6% | 0.10 | +1.3 |
| JFK | New York JFK | 2.3 | 21% | 105 | >180 | 100 | 5.2% | 3.3% | 0.16 | +1.7 |
| PHL | Philadelphia | 2.1 | 20% | 95 | >180 | 110 | 4.1% | 2.0% | 0.11 | +0.8 |
| SLC | Salt Lake City | 1.8 | 12% | 55 | 90 | 80 | 1.1% | 2.2% | 0.05 | -0.3 |
| MIA | Miami | 1.9 | 18% | 75 | 165 | 100 | 2.7% | 2.1% | 0.11 | +2.8 |
| BNA | Nashville | 1.6 | 15% | 60 | 100 | 75 | 2.1% | 4.1% | 0.16 | +5.1 |
| SAN | San Diego | 1.3 | 19% | 70 | 115 | 85 | 2.2% | 6.8% | 0.17 | +5.5 |
| BWI | Baltimore | 1.7 | 12% | 55 | 90 | 70 | 2.4% | 3.1% | 0.19 | +5.7 |
| FLL | Fort Lauderdale | 0.8 | 20% | 85 | >180 | 100 | 3.7% | 7.3% | 0.17 | +5.5 |
| AUS | Austin | 1.1 | 15% | 60 | 95 | 80 | 1.6% | 6.4% | 0.14 | +5.6 |
| IAD | Washington Dulles | 1.1 | 16% | 70 | 165 | 95 | 2.8% | 1.5% | 0.11 | +0.8 |
| TPA | Tampa | 0.7 | 18% | 70 | 130 | 85 | 3.0% | 8.6% | 0.19 | +3.9 |
| MDW | Chicago Midway | 1.6 | 14% | 55 | 95 | 75 | 2.4% | 3.0% | 0.19 | +5.5 |
Layovers in minutes from 5-minute bins with at least 200 pairs; ">180" means not reached within 180 minutes. Cancel or divert is the share of pairs lost to a cancelled or diverted flight. Same tail is the share of candidate pairs dropped because one aircraft flew both legs. The shortcut gap is the inbound-only estimate minus the paired one at 45 minutes, in points.
Limits
Sources