FlyerIntel Research

What Weather Costs Each Airport

Hourly weather at 64 airports, matched to every scheduled departure.

Published September 27, 2026 · Source period July 2023 – July 2026

Summary

17,864,400 scheduled departures from 64 airports, July 2023 to July 2026, were matched to the weather at the origin in the hour they were due to leave. 8.7% left in bad weather, and 4.4% of those were cancelled against 1.2% in normal conditions. Bad-weather hours held 26% of all cancellations. The cost does not end with the weather: the normal hours that follow cancelled more flights than usual too, and counting them adds about 49% to the extra cancellations of the bad hours themselves. The airlines’ weather code covers about 22% of the extra arrival delay in those hours.

Key findings

  • Bad weather covered 8.7% of departures and 26% of cancellations. 4.4% of departures in it were cancelled against 1.2% in normal conditions, and 65.7% of the flights that operated arrived on time against 79.3%.
  • Cancellations were highest in snow or ice hours (12.0%), heavy rain hours (8.8%) and thunderstorm hours (8.7%). IFR hours cancelled 3.9%. Thunderstorm hours had the lowest on-time rate for the flights that did leave, 35.4%.
  • Comparing each bad-weather flight only with normal-weather flights from the same airport, calendar month and scheduled hour raises the expected cancellation rate from 0.96% to 1.04%, so season and time of day account for 2% of the raw gap. Against that, bad-weather flights were cancelled 4.44%, about 4.2 times the expected rate.
  • The first normal hour after bad weather cancelled 3.7% of flights against 1.1% expected, and four to six hours after it was still 2.2% against 1.1%. Those hours carry about 25,551 extra cancellations beside the 52,124 in the bad hours.
  • Each completed flight in bad weather carried 16.5 more coded delay minutes than normal weather predicts. The airlines’ weather code holds 22% of that extra; late-arriving aircraft holds 36%, air traffic holds 27% and airline holds 16%.
  • The cost is uneven. At LGA (New York) bad weather cost 9.1 flights per thousand scheduled departures, and at TUS (Tucson) none that stands out; bad-weather hours held 45% of cancellations at MDW and 2% at SJU.
  • Airlines coded 75% of the cancellations in bad-weather hours as extreme weather, but only 33% of everything they coded as weather was scheduled for a bad-weather hour at the origin. 17% was scheduled for a normal hour within six hours after one, and 50% for a quiet hour or one of marginal weather.

What counts as bad weather

Every hourly weather report for each airport is reduced to the worst conditions reported in that clock hour. The hour is bad weather when it is IFR or worse (IFR is ceiling 500 to 999 feet or visibility 1 to under 3 miles; LIFR is ceiling under 500 feet or visibility under 1 mile), or when any of these was reported: a thunderstorm reported at the airport; snow, snow grains, ice pellets, freezing rain or freezing drizzle; fog or freezing fog reported at the airport; heavy rain reported at the airport; wind of 25 knots or more, or gusts of 30 knots or more. Normal conditions are VFR (ceiling above 3,000 feet and visibility above 5 miles) with none of those. Marginal VFR, the hours with a ceiling or visibility just under those lines, is neither, and is left out of the comparison. The conditions overlap, because a thunderstorm can arrive under a low ceiling, so a departure is counted in every row its hour fits.

Condition by condition

Condition by condition
Weather at the airportDeparturesShare of allCancelledTimes normalArrived on timePoints against normalAverage departure delay
Normal conditions14,683,79882.2%1.2%—79.3%—12.4 min
Any bad weather1,556,7498.7%4.4%3.9 times65.7%-13.723.7 min
MVFR1,769,2239.9%2.1%1.9 times76.4%-3.014.5 min
Low ceiling832,9304.7%3.3%2.9 times73.7%-5.716.3 min
IFR704,6363.9%3.9%3.4 times69.8%-9.619.9 min
Low visibility557,6663.1%6.0%5.2 times63.0%-16.325.8 min
High wind340,8601.9%4.8%4.2 times63.1%-16.226.9 min
LIFR321,6741.8%5.4%4.7 times68.4%-10.921.4 min
Thunderstorm214,3591.2%8.7%7.6 times35.4%-43.960.7 min
Snow or ice191,3201.1%12.0%10.5 times44.4%-34.930.2 min
Heavy rain103,3260.6%8.8%7.6 times42.9%-36.452.9 min
Fog91,3180.5%6.7%5.8 times65.5%-13.924.4 min

All 64 covered airports together, July 2023 to July 2026. Cancelled is the share of scheduled departures; arrived on time is the share of flights that operated arriving under 15 minutes late. The rows overlap, so they do not add up to the total. A condition is shown when it holds at least 120 departures.

Season and hour

Bad weather is not spread evenly through the year or the day, and neither are cancellations: winter and evening flights are cancelled more often whatever the weather. Pooled over every airport, the quiet hours cancelled 0.96% of departures and bad-weather hours 4.44%. Holding each bad-weather flight to quiet-hour flights from the same airport, the same calendar month and the same scheduled hour raises the bar: those flights would have been cancelled 1.04% of the time in normal weather, and they were cancelled 4.44%. Season and time of day account for 2% of the raw gap, and what is left is what this report counts as the cost of the weather. Of the flights that operated, 65.6% arrived on time where 82.4% would in normal weather, and the average departure was 13.8 minutes later than it would have been (23.7 against 9.9 minutes). 1.3% of bad-weather flights sat in an airport, calendar month and hour with too few quiet-hour flights to build a comparison from, and are left out of these figures.

Bad weather and the hours after it, against normal weather

Bad weather and the hours after it, against normal weather
GroupDeparturesCancelledExpected cancelledTimes expectedArrived on timeExpected on timeAverage departure delayExpected delay
Bad-weather hours1,537,0004.4%1.0%4.2 times65.6%82.4%23.7 min9.9 min
One hour after284,3643.7%1.1%3.3 times61.5%78.0%30.0 min13.6 min
Two hours after269,0913.3%1.1%3.0 times65.3%78.3%26.6 min13.4 min
Three hours after255,7102.9%1.1%2.7 times68.0%78.3%23.6 min13.3 min
Four to six hours after676,0792.2%1.1%2.1 times70.8%78.3%20.4 min13.3 min

Expected figures are what the quiet-hour flights of the same airport, calendar month and scheduled hour did, applied to the group’s own flights, stratum by stratum. A stratum is used when it holds at least 120 quiet-hour flights. The hours after bad weather are hours of normal weather whose most recent bad-weather hour at that airport, within the previous six hours, was that far back; a departure counts once, by the nearest.

After the weather passes

A flight scheduled for an hour of normal weather can still feel the weather that came before it: crews and aircraft are out of place, and an airport that cancelled a bank of flights an hour ago is rebuilding its schedule. Sorting the normal hours by how long it had been since the last bad-weather hour at the same airport, the excess fades with each hour but has not gone by the end of the window. In the first hour after, 3.7% of departures were cancelled against 1.1% expected, and 61.5% of those that flew arrived on time against 78.0%. Over the six hours that follow, the normal hours carry about 25,551 more cancellations than the quiet hours would have produced, on top of about 52,124 in the bad-weather hours. Counting only the bad hours leaves out 49% of what it counts.

Where the delay is filed

The DOT asks airlines to file every arrival delay of 15 minutes or more under one of five causes: extreme weather, the air traffic system, a late-arriving aircraft, the airline, or security. The DOT’s definitions file non-extreme weather under air traffic, which is one reason the weather code is small. In bad-weather hours, the coded minutes per completed flight were 28.3 against 11.8 in the same airport, calendar month and hour in normal weather, 16.5 more. Of that extra, 22% was filed as extreme weather, and late-arriving aircraft took 36%, air traffic took 27% and airline took 16%. A late-arriving aircraft is the previous flight of the same airframe arriving late, so part of that share can be an earlier weather delay passed on to the next flight.

Coded delay minutes per completed flight in bad weather

Coded delay minutes per completed flight in bad weather
Filed asIn bad weatherExpected in normal weatherExtraShare of the extra
Late-arriving aircraft10.34.45.936%
Air traffic6.82.44.427%
Extreme weather4.00.43.622%
Airline7.24.52.716%
Security0.00.00.0<1%

Minutes are those the DOT files under each cause, summed over the flights of bad-weather hours and divided by their 1,464,069 completed flights; a flight less than 15 minutes late carries none. Expected is the same figure for the quiet-hour flights of the same airport, calendar month and hour.

Airport by airport

The cost is not the same everywhere. Counting the cancellations in bad-weather hours beyond what normal weather predicts for the same flights, LGA (New York) lost 9.1 flights per thousand scheduled departures to it, and TUS (Tucson) none that stands out. At 15 of the 61 airports listed the extra is under half a flight per thousand. Bad-weather hours held 45% of the cancellations at MDW and 2% at SJU. The condition named in the last column is the one with the highest cancellation rate at that airport among those with enough departures to name.

Bad weather at each covered airport

Bad weather at each covered airport
AirportCityDepartures in bad weatherCancelled in bad weatherExpected at normal-weather rateExtra cancellations per thousand departuresShare of all cancellationsWorst condition
LGANew York56,339 (12.4%)8.98%1.58%9.134%Thunderstorm
EWRNewark51,613 (13.3%)6.89%1.39%7.332%Fog
DCAWashington41,449 (9.5%)9.28%1.62%7.330%Snow or ice
DFWDallas–Fort Worth72,822 (7.6%)10.41%1.01%7.135%Snow or ice
JFKNew York46,497 (13.2%)6.03%1.08%6.532%Thunderstorm
ORDChicago104,455 (11.0%)6.53%1.00%6.139%Thunderstorm
BOSBoston60,840 (13.8%)5.30%1.22%5.637%Snow or ice
PHLPhiladelphia32,038 (10.5%)6.48%1.20%5.532%Thunderstorm
MDWChicago26,598 (11.1%)5.01%0.89%4.645%Fog
DALDallas15,025 (6.7%)7.15%0.66%4.339%Snow or ice
CLTCharlotte55,311 (9.0%)5.69%1.00%4.231%Snow or ice
BWIBaltimore30,451 (10.2%)4.71%0.74%4.034%Snow or ice
MKEMilwaukee11,113 (12.7%)3.83%1.34%3.029%Fog
PITPittsburgh19,127 (14.4%)3.16%1.08%2.928%Fog
CLECleveland17,314 (13.7%)3.73%1.51%2.927%Fog
ATLAtlanta105,854 (10.5%)3.42%0.84%2.727%Snow or ice
TPATampa17,505 (7.2%)5.04%1.49%2.620%High wind
IADWashington17,867 (10.5%)3.27%0.86%2.526%Snow or ice
RDURaleigh–Durham16,672 (9.3%)4.04%1.37%2.521%High wind
CMHColumbus14,268 (10.7%)3.45%1.12%2.523%Fog
IAHHouston28,922 (8.0%)4.12%1.09%2.423%High wind
OMAOmaha8,317 (11.1%)3.15%0.98%2.429%Snow or ice
BNANashville20,643 (6.5%)4.67%1.03%2.322%Snow or ice
STLSt. Louis18,612 (9.4%)3.39%0.89%2.327%Snow or ice
INDIndianapolis17,460 (11.9%)2.95%1.09%2.222%Fog
BUFBuffalo12,365 (18.9%)3.10%0.96%2.241%Snow or ice
DENDenver92,610 (9.6%)2.83%0.64%2.130%Fog
JAXJacksonville8,338 (9.2%)3.83%1.53%2.120%High wind
MEMMemphis5,899 (8.1%)3.97%1.33%2.019%IFR
BURBurbank4,529 (4.8%)4.95%0.78%2.019%LIFR
RSWFort Myers6,927 (6.5%)4.60%1.46%2.016%High wind
MCIKansas City16,876 (11.1%)2.99%1.23%1.924%Snow or ice
MSPMinneapolis42,174 (11.4%)2.36%0.73%1.929%Snow or ice
MCOOrlando33,297 (6.7%)4.04%1.28%1.818%High wind
DTWDetroit53,809 (13.9%)2.45%1.15%1.827%Fog
SANSan Diego19,707 (6.6%)3.47%0.96%1.720%Fog
HOUHouston13,363 (7.8%)2.90%0.84%1.621%High wind
CHSCharleston5,105 (6.6%)4.04%1.72%1.513%High wind
MIAMiami15,746 (4.6%)4.48%1.42%1.414%Fog
MSYNew Orleans12,426 (8.1%)3.15%1.46%1.417%Fog
FLLFort Lauderdale13,418 (4.8%)3.30%1.63%0.89%LIFR
MYRMyrtle Beach2,891 (6.4%)3.26%1.81%0.711%LIFR
SATSan Antonio10,996 (8.6%)1.67%0.96%0.613%Thunderstorm
SNASanta Ana7,919 (5.8%)1.90%0.89%0.611%Fog
SFOSan Francisco36,006 (8.3%)1.53%0.87%0.613%Heavy rain
PDXPortland11,286 (6.0%)1.69%0.81%0.512%High wind
AUSAustin22,580 (8.3%)1.58%1.02%0.513%Heavy rain
ABQAlbuquerque4,134 (5.4%)1.63%0.78%0.411%High wind
ONTOntario4,096 (5.1%)1.54%0.78%0.49%High wind
HNLHonolulu4,177 (2.2%)2.27%0.90%0.36%Heavy rain
LAXLos Angeles60,639 (10.2%)1.00%0.71%0.313%Heavy rain
ANCAnchorage6,631 (11.3%)1.68%1.26%0.319%Fog
LASLas Vegas14,522 (2.6%)2.00%0.84%0.36%Thunderstorm
SMFSacramento12,018 (7.0%)0.99%0.56%0.311%High wind
SEASeattle43,416 (8.5%)1.50%1.18%0.315%Snow or ice
OAKOakland10,366 (8.8%)1.01%0.79%0.213%LIFR
PHXPhoenix6,215 (1.0%)2.51%0.74%0.24%Thunderstorm
SJCSan Jose4,322 (2.9%)0.99%0.61%0.15%LIFR
SJUSan Juan2,333 (2.2%)1.44%1.03%0.12%Heavy rain
SLCSalt Lake City20,014 (5.6%)0.59%0.63%0.06%Snow or ice
TUSTucson1,151 (1.9%)0.46%0.75%-0.1——

Airports with at least 500 departures in bad weather, 61 of 64, ordered by the extra cancellations per thousand departures. The cancelled and expected rates are over the bad-weather departures that could be matched to quiet hours of the same airport, calendar month and hour, and expected is the rate those hours predict. A share of all cancellations is shown for airports with at least 500 cancelled departures.

What the airline codes say

Every cancellation in the DOT data carries a reason code filed by the airline: its own operation, extreme weather, the air traffic system or security. In bad-weather hours, 75% of cancellations were coded extreme weather, 12% air traffic and 13% the airline. In quiet hours, 50% were still coded weather. Of all 157,862 cancellations coded as weather at these airports, 33% were scheduled for a bad-weather hour at the origin and 17% for a normal hour within six hours after one. The other 50% were scheduled for a quiet hour, which is normal weather with none of the six before it bad, or for an hour of marginal weather. The code names the weather that stopped the flight, and that can be at the destination, along the route, or a storm that passed the day before. The hourly weather here is the origin airport’s alone, so the two are different measures and neither replaces the other.

Cancellations by reason code and the weather in the scheduled hour

Cancellations by reason code and the weather in the scheduled hour
Weather at the originCancelledExtreme weatherAir trafficAirline
Bad-weather hours69,19574.5%12.4%13.1%
Normal hours after bad weather42,01263.8%17.0%19.1%
Quiet hours126,92949.8%14.8%35.3%
Marginal hours27,00560.1%15.6%24.3%

Shares are of each row’s cancelled flights that carry a reason code. Security is at most 0.1% of any row and is left out. The normal hours after bad weather are the six hours that follow one.

What this does not show

The weather is the origin airport’s, in the hour the flight was scheduled to leave. It is not the weather at the destination or on the way, and it is not the weather that arrived after the scheduled hour, so a flight cancelled for a storm at the other end, or cancelled a day ahead for one that had not yet arrived, sits in the normal-weather rows. The comparison is between hours of weather and hours without it at the same airport, calendar month and hour, not between what happened and what would have happened without the weather, and days with bad weather also differ in ways this does not see: an airline with a bad day, a runway closure, a ground stop for another reason. Nothing here says which flights the weather cancelled, and no single flight’s cancellation is attributed to it. 20,189 of 17,884,589 scheduled departures (0.1%) are not in the figures: they left in an hour with no weather report, or at a scheduled time the flight records cannot place in one hour.

Methodology

Calculated by FlyerIntel from 21,708,321 individual flight records in the US Department of Transportation Bureau of Transportation Statistics Reporting Carrier On-Time Performance dataset, covering July 2023 through July 2026. Following BTS methodology, a flight counts as delayed when it arrives 15 or more minutes after its scheduled arrival time. Cancelled and diverted flights have no arrival time and are excluded from on-time rates rather than counted as late; cancellation rates are reported separately. Full definitions are published at /methodology/. This report also uses hourly surface weather for each covered airport, 38 UTC months from 2023-07 to 2026-08, from the Iowa Environmental Mesonet’s archive of METAR and SPECI reports, which republishes the National Weather Service stream. An airport’s reports are reduced to one row per UTC clock hour holding the lowest ceiling, lowest visibility, strongest wind and gust, and every present-weather group reported in that hour. Each flight is matched to the row for its origin in its scheduled departure hour: the scheduled local hour in the flight record is turned into an instant using the airport’s own time zone and the daylight-saving rules of that date, and cut to the UTC hour. Flights whose scheduled time is written as midnight, which does not say which midnight, and flights in a local hour that does not exist or happens twice when the clocks change are left out, as are flights in an hour with no report. Each remaining flight is in one group: bad weather, normal weather with a bad-weather hour at that airport six hours or fewer before it (by the nearest one), normal weather with none, or marginal. Expected figures come from flights of the same airport, calendar month and scheduled local hour in the quiet group, when that group holds at least 120 flights, and are summed over strata, never averaged as rates. A rate is printed for a group of at least 120 departures, and an airport is listed with at least 500 departures in bad weather. The condition rows are read from the airport_weather_performance table, which the site’s airport pages also read.

Limitations

The source dataset covers scheduled domestic flights operated by carriers above the DOT reporting threshold; smaller carriers and international flights are not included. Flights sold under a mainline brand but flown by a regional carrier are attributed to the operating carrier, which is how the DOT records them. Past performance describes what has happened and is not a prediction about any individual flight. The weather archive is provided as collected, with very little quality control, and a missing value cannot always be told from an unreported one. An hour’s weather is the worst any report in that hour gave, so an hour with several special reports is more likely to show a brief storm than one with a single report. The figures describe hours of weather, not causes: they show what flying was like in them, and comparing with the same airport, calendar month and hour removes season and time of day but not everything else that differs on a bad-weather day. A cancellation carries the weather at its scheduled departure hour, even when it was decided the day before.

Sources

  • FlyerIntel analysis — FlyerIntel · source
  • Iowa Environmental Mesonet ASOS/METAR archive — Iowa Environmental Mesonet, Iowa State University · source
  • Reporting Carrier On-Time Performance — US Department of Transportation, Bureau of Transportation Statistics · source

Full FlyerIntel methodology · Report a problem with this analysis