Guide
San Francisco, Oakland or San Jose: the Bay Area airport question
San Francisco International runs 75.3% on time. Oakland International manages 78.3% and Norman Y. Mineta San Jose International 81.9%. The reason is a specific and unusual piece of geography.

The Bay Area is the strongest argument in US aviation for checking the airport before booking. Over September 2025 to August 2026: San Francisco International 75.3% on time, Oakland International 78.3%, Norman Y. Mineta San Jose International 81.9%.
Three fields, one metropolitan area, one weather system. The gap comes from a specific piece of geometry.
Runway spacing, and why fog costs so much
San Francisco's two main arrival runways sit closer together than the separation standard requires for simultaneous independent approaches in poor visibility. In clear conditions, aircraft land on both at once. When the ceiling drops or the marine layer rolls in, arrivals collapse to a single stream and the airport's acceptance rate roughly halves.
That is not an operational failing anyone can fix by trying harder. It is the field's physical layout meeting a weather pattern the Bay Area produces reliably, most mornings, for much of the year.
The consequence shows up in the delay-cause split. Nationally, 21% of delay minutes are charged to the National Aviation System, meaning air traffic volume and flow control rather than any airline's own performance. At a capacity-constrained field in recurring marine layer, that category dominates, and no carrier prices its way out of it.
Oakland and San Jose sit under the same weather and do not have the same constraint.
What the gap costs a connecting passenger
The figure that decides a layover is the share of arrivals landing an hour or more behind schedule: 8.4% at San Francisco, 5.5% at Oakland, 4.7% at San Jose.
Cancellations: 1.00%, 0.61%, 0.68%.
This guide once broke the site's build. When the airport cut was the top 50, Oakland and Palm Beach tied at exactly 31,406 flights, the tie broke against Oakland, its page dropped out, and the build failed because this guide cited it. In September 2026 I raised the cut to 60 airports, and Oakland has its page back.
data/generated/airports/SFO.json, trimmed to the headline fields
{
"flights": 148532,
"completed": 146550,
"onTimePct": 75.3,
"veryLatePct": 8.4,
"avgDelayMin": 67.5,
"medianArrDelay": -5,
"cancelPct": 1,
"divertPct": 0.33,
"causes": {
"carrier": 0.2805,
"weather": 0.0306,
"nas": 0.233,
"security": 0.0005,
"lateAircraft": 0.4555
},
"byHourBlock": [92.5, 78.8, 67.8, 67.5, 74.5, 74.3 ],
"byMonth": [82.5, 81.7, 84, 74.7, 70.1, 67.1, 66.1, 65.5, 82.4, 80.1, 78.6, 76.3 ],
"byDow": [71.9, 80.4, 77.7, 71.7, 72.6, 80.8, 73.6 ]
}Percentages are shares of scheduled or completed flights as defined on the methodology page; byHourBlock runs 5am to overnight, byMonth January to December, byDow Monday to Sunday. Source: US DOT Bureau of Transportation Statistics, September 2025 to August 2026.
This is the file I publish for the San Francisco page, trimmed to the headline fields; every San Francisco figure in this guide is recomputed from it each month.
When the smaller fields are the wrong answer
When they force a connection. San Francisco has by far the deepest schedule and the most non-stops. Adding a connection to reach the same destination costs more reliability than the airport difference recovers, every time.
When you need the recovery options. A cancelled flight at a major hub finds you another seat within hours. At a field with three daily departures on your route, it may find you one tomorrow.
When the ground journey is genuinely worse. These three airports are not equidistant from anywhere. Measure door to door at the hour you will actually travel, on a weekday, and be honest about the number.
Frequency, and the recovery problem
San Francisco has the deepest schedule of the three by a wide margin. That matters on the day something breaks, and it partly offsets the airport's structural disadvantage.
Work it through. A cancellation at a field where your carrier flies your route six times daily costs three hours. At a field where it flies twice, the same event can cost the night, because the later departure is sold out and tomorrow morning is the first genuine option.
So the ranking above is not a booking rule on its own. It is one input, and on a thin route the airport with the worse average can still be the safer choice, because it has somewhere to put you.
What the figures do not capture
Ground journey, which in this region is the largest hidden variable: bridge and corridor traffic is severe at predictable hours, and an hour saved in the air is easily lost on the road.
Aircraft type is the second omission. The long-haul fleet operates almost entirely from one of the three, and long flights carry more scheduled padding in absolute minutes, which flatters an arrival figure independently of how well the airport is run.
Reading the daily curve here
Nationally the 5am–8am window runs 89.3% on time against 68.0% for 5pm–8pm. The Bay Area does not follow that shape cleanly, because the marine layer is a morning effect that clears while congestion is an all-day effect that accumulates. The two work against each other.
That makes this one of the few markets where the standard advice to take the first departure deserves checking against the actual chart rather than being applied by default. Each airport page carries its own six-block breakdown with the sample size behind each bar.
What I would book when it has to be San Francisco
Often it will, and the advice then is different from the advice about choosing.
Split the question by direction, because the record does. The two directions of a route are separate records in the data, which is why the San Francisco to Los Angeles route ran 70.9% on time while the reverse managed 60.1%.
Leaving San Francisco, the first wave is the one to book: departures between 5am and 8am ran 92.5% on time, against 67.8% for the 11am to 2pm window. The aircraft is already on the ground, and the marine layer slows arrivals far more than departures.
Flying into San Francisco, the timing that hurts is a mid-morning departure that lands while the low cloud is still in. On the Los Angeles to San Francisco route, flights leaving between 5am and 8am ran 85.8% on time and flights leaving between 8am and 11am 49.8%. The afternoon recovered only partly, to 55.4% for 2pm to 5pm departures. The practical rule is the usual one after all: book the first flight of the day when you can.
At 49.8%, I would not book the 8am to 11am wave into San Francisco for anything that has to connect.
Check the hour-block chart on the route's own page before committing, because the balance between clearing fog and accumulating congestion shifts with the season.
One more caution. From April to July 2026, flights into San Francisco fell to roughly 35 to 50% on time on several routes. When I first saw it I assumed a bug in the aggregation; checked against the raw month files, it is in the data. The data does not say why, so treat it as one period rather than a permanent change, but it drags the yearly figures for the routes it hit.
Compare the three fields: San Francisco (SFO) · Oakland (OAK) · San Jose (SJC)