Every number on this site is either verified tail by tail by an independent community tracker, derived from an aircraft type, or modelled from what an airline said publicly — and we label which. This page is the whole method: the three confidence tiers, the formula with a worked example, what the score cannot see, and how fresh the data is.
The tiers are not a disclaimer, they are part of the answer. A ConnectScore from the Coarse tier and a per-flight probability from the Verified tier are different kinds of claim, and blurring them is the single most misleading thing this site could do. The API says which tier every response came from; so does the extension.
Every equipped aircraft is confirmed against united.com by unitedstarlinktracker.com, and we additionally cache how often each tracked flight number has actually been flown by an equipped aircraft. That is the only tier where we will quote odds for your specific flight, and the API labels it method: "route-history" with the observation count attached.
The roster is verified the same way, by alaskastarlinktracker.com — but nobody publishes which aircraft is scheduled onto which Alaska flight, so there is no history to count. The honest answer is the sub-fleet: the E175 regional fleet is finished and a mainline 737 mostly is not, so the aircraft type on your itinerary tells you far more than the fleet average does.
No per-tail verification exists for these fleets, so the input is what the airline itself has said publicly about how many aircraft are equipped, as of July 2026. Good enough to choose an airline; not good enough to say anything about one departure. The API labels every one of these method: "airline-coarse" and returns prob: null rather than a number we would have had to invent.
The split is derived from the data, not maintained by hand: an airline moves up a tier the moment a verified per-tail feed exists for it, and the build re-sorts these lists automatically. That is the plan for Hawaiian next.
ConnectScore answers one question — what are the odds I get the good system, and is it free once I am on it? Three factors, multiplied, rounded to an integer from 0 to 100:
Equipped aircraft ÷ total aircraft, from the verified roster where one exists and from the airline’s own published counts otherwise. Where an airline publishes no tail counts at all (only “fleetwide”), a stated coverage fraction is used and the basis is reported as fleetwide-coverage.
Starlink and Amazon Leo score 1.0. Viasat and 2Ku score 0.6. Older geostationary hardware scores 0.3. Low-earth-orbit is a different product from a satellite dish pointed at the equator, and pretending otherwise would flatten the only distinction that matters onboard.
Free for everyone, or free with a free loyalty signup, scores 1.00. A paid status tier, a partial rollout or an unconfirmed claim scores 0.85. Paid scores 0.70. Working WiFi you have to buy at 35,000 feet is not the same product as working WiFi you just connect to.
Those are the live numbers, generated at build time by the same function the API and the extension call. Same figure on United’s page →
This is what the Verified tier buys you, and why the fleet-wide 27 is the wrong number to quote for a specific flight in either direction. Confidence is the sample size: low under 10 observations, medium 10–15, high 16 or more. Rank a whole route →
These are real limits, not hedges. If one of them applies to your flight, no number on this site can fix it — so here they are in plain language, with what to do instead.
Airlines reassign aircraft until departure — for maintenance, weather, crew, a broken jet somewhere else. Our per-flight odds are a history of what has flown that flight number, not a booking of what will. A flight with 80% odds can still board the one unequipped aircraft in the sub-fleet. Re-check the day before, which is exactly what the extension’s Tail-swap Guardian is for.
16 of the 18 airlines here have no public, verifiable list of which aircraft are equipped. For those we can only model the fleet share, and we will not pretend to more. If you need certainty on one of those carriers, the aircraft type on your itinerary plus whatever the airline said about which sub-fleet it converted first is genuinely better information than our score.
The free-for-you factor is a snapshot of a commercial decision, and those change with a press release and no notice — a free system can acquire a paywall, or a loyalty requirement can be dropped, weeks before we notice. Cabin-level throttling and “free messaging only” tiers are not modelled at all. Treat the free column as “what was true in July 2026”, and the airline’s own page as authoritative on price.
We score the hardware and the policy, never the throughput. A full Starlink cabin over the Atlantic is a different experience from an empty one over Kansas, and nothing here measures that. ConnectScore is the chance of getting the good system — not a bandwidth guarantee, and not a promise that any WiFi at all will be working.
ConnectScore is the chance of getting the GOOD system, not of any wifi at all. Legacy satellite service on the not-yet-converted part of a fleet is not credited. Signed-but-unflown deals (AA Starlink 2027, DL/B6 Amazon Leo) score zero until they fly. That is deliberate: the question being answered is “what are my odds of the good WiFi”, not “is there any WiFi at all”. It is why an airline with fleetwide legacy service can score near zero.
| Input | Source | Cadence | Last refresh |
|---|---|---|---|
| United fleet + per-tail roster | unitedstarlinktracker.com | pulled daily | 2026-07-24 |
| United per-flight route history | unitedstarlinktracker.com check-flight pages | daily, 48 cached routes | 2026-07-24 |
| Alaska fleet | alaskastarlinktracker.com | pulled daily | 2026-07 |
| The other 16 airlines | public airline announcements | reviewed by hand | July 2026 |
| Every page, score and chart on this site | this build | re-baked on every data commit | 2026-07-24 |
Nothing on wifiodds.com is fetched live. The daily pull commits united/data.json, that commit rebuilds every page, and the ConnectScore API reads the same file out of the same deploy — so the page, the API and the extension cannot disagree with each other. If the date above is stale, the data is stale everywhere at once, visibly, rather than in one surface quietly.
Quote the numbers freely, including in an article or an AI answer. The one condition is that the credit travels with them, because the fleet verification is not ours.
Every API response carries the same credits in a sources array so they cannot get separated from the data. API docs → · llms.txt →