ChatGPT's result_source, part two:flights don't fly on the hotel stack
TL;DR: We re-ran our hidden result_source study on flights: 2,007 fresh ChatGPT captures from the US and the UK. The hotel-style tier monopoly is gone — the licensed labrador tier falls from 99.85% to 74.6%, Bright Data's tier carries 23%, and the open-web serp tier appears for the first time. Only 8.6% of flight questions skip the web (hotels: 37.3%). And the most-trusted flight source isn't an airline, an OTA or a metasearch — it's Reddit, cited on 83% of its fetches.
Executive Summary
The retrieval stack behind ChatGPT is vertical-specific — and flights use all of it.
Our hotel study found ChatGPT sourcing hotel answers almost entirely (99.85%) from one licensed retrieval tier. To test whether that generalises, we ran 67 frozen flight prompts × US + UK × 15 iterations = 2,007 captures over four days in July 2026 and parsed the same hidden fields from the raw stream.
It doesn't generalise. Flights run on a genuinely mixed stack (labrador 74.6%, bright 23.1%, oxylabs 1.7%, serp 0.6%), almost every flight question triggers a live search, half of the documents ChatGPT actually cites bypass the tagged retrieval layer entirely — and citation trust looks nothing like hotels: flat across airlines, OTAs and metasearch, with one glaring exception. Reddit.
The tier monopoly is gone
Every page ChatGPT retrieves carries the undocumented result_source tag naming the pipeline that fetched it. For hotels, one licensed tier had a 99.85% monopoly. For flights, 82.8% of the 23,308 fetched documents carry a tag — and the mix is completely different.

| result_source | Flights (this study) | Hotels (Dec 2025–Jun 2026) | What it carries for flights |
|---|---|---|---|
| labrador | 74.62% | 99.85% | Licensed tier — Google, OTAs, metasearch, editorial |
| bright | 23.05% | 0.14% | Bright Data datasets — skyscanner.net is its #1 domain |
| oxylabs | 1.70% | 0.01% | Scraped open web — the points/deals blogosphere |
| serp | 0.63% | 0% (never appeared) | Live SERP — fare-comparison and metasearch pages |
serp tier — zero appearances in 30,002 hotel citations — shows up for flights, and Bright Data's bright tier goes from a rounding error to nearly a quarter of tagged fetches. Notably, skyscanner.net is the single biggest domain in the bright tier (388 documents, ahead of google.com and expedia.com): metasearch inventory reaches ChatGPT through the scraper pipeline, not the licensed feed.The search gate barely exists for flights
Before any retrieval, turn_use_case classifies the query and decides whether the web is touched at all. For hotels, 37.3% of questions were answered from training data. Flights are the opposite: prices move too fast to memorise.
| turn_use_case | Share of flight turns | Hotels | Hits the web? |
|---|---|---|---|
| instant search | 77.7% | 3.3% | Yes |
| instant answers | 8.7% | 1.3% | Partial |
| text | 8.6% | 37.3% | No — training data only |
| search | 5.0% | 31.8% | Yes |
| local (maps) | 0% | 26.3% | — |
local/maps bucket (26.3% of hotel turns) never fires, and in 2,007 captures we saw zero shopping or booking widgets — no Google-Flights-style panel exists inside ChatGPT. Flight answers are prose plus citations, which makes who gets cited the entire visibility game.Citations come through two doors — and half bypass the tagged layer
A parsing detail with a real finding inside. The URLs ChatGPT actually cites are stamped ?utm_source=chatgpt.com, so they never string-match the tagged fetch layer. Joining them back by canonical URL splits the 4,003 cited documents into three groups:
| Cited-document provenance | Share | What it means |
|---|---|---|
| Footnote-only | 50.2% | No tagged fetch counterpart at all — enters via a separate, untagged browse path |
| Domain-only match | 35.1% | Same domain was fetched with a tier tag, but a different page |
| Canonical-URL join | 14.6% | The exact tagged page — overwhelmingly google.com via labrador |
Retrieved ≠ cited: Reddit is the only source ChatGPT treats like a brand site
For hotels, official brand sites were cited on 77–86% of their retrievals. For flights the citation curve is flat — almost everything sits between 3% and 36% — with one outlier at hotel-brand-site altitude.

| Domain | Retrieved | Cited % | Type |
|---|---|---|---|
| google.com | 2,023 | 21% | Metasearch |
| flightsfrom.com | 1,125 | 26% | Route utility |
| expedia.com | 1,040 | 10% | OTA |
| cheapflights.co.uk | 686 | 22% | Metasearch |
| flightconnections.com | 673 | 28% | Route utility |
| kayak.com | 669 | 15% | Metasearch |
| skyscanner.net | 535 | 10% | Metasearch |
| skyscanner.com | 421 | 22% | Metasearch |
Brand authority is query-scoped: name the airline and its site becomes the answer
The hotel study's headline — official brand sites get cited when retrieved — does replicate for airlines, but only when the traveller names the brand. On “What is {airline}'s checked baggage allowance?” the airline's own site is fetched in 68–83% of captures and cited in essentially every capture where it was fetched:
| Airline | Captures | Own site fetched | Own site cited |
|---|---|---|---|
| Ryanair | 60 | 83% | 83% |
| Singapore Airlines | 60 | 78% | 78% |
| Emirates | 60 | 78% | 73% |
| British Airways | 60 | 77% | 77% |
| Air France | 60 | 75% | 75% |
| Delta | 60 | 75% | 75% |
“Where should I book?” — the answer set ChatGPT actually cites
Seven advice prompts (“best website for cheap flights”, “book direct or through a third party?”…) probe which booking brands ChatGPT puts in front of travellers. The cited set is deal newsletters, consumer editorial, Reddit — and the metasearch engines:
| Domain | Citations on advice prompts | Type |
|---|---|---|
| going.com | 54 | Deal alerts |
| kiplinger.com | 49 | Finance editorial |
| reddit.com | 48 | Forum / UGC |
| kayak.com | 42 | Metasearch |
| skyscanner.com | 42 | Metasearch |
| moneysavingexpert.com | 38 | Consumer editorial (UK) |
| which.co.uk | 34 | Consumer editorial (UK) |
| kayak.co.uk | 32 | Metasearch |
| help.skyscanner.net | 29 | Metasearch help pages |
| travelandleisure.com | 25 | Editorial |
US vs UK: same engine, different storefronts
Every prompt ran from both a US and a UK vantage point. The sourcing strategy barely moves — the tier mix and class mix are near-identical — but the domains localise.
| Brand | US presence (share of captures) | UK presence | Localisation |
|---|---|---|---|
| 49.2% | 45.8% | google.com both | |
| Kayak | 33.0% | 31.9% | kayak.com vs kayak.co.uk |
| Expedia | 29.9% | 29.3% | expedia.com vs expedia.co.uk |
| Skyscanner | 24.1% | 28.0% | skyscanner.com vs skyscanner.net / .gg / .ie |
Study Design
Data Collection
- 67 frozen prompts × 2 countries (US, GB) × 15 iterations = 2,007 captures (3 lost to timeouts), 18–21 July 2026, via Bright Data.
- Four prompt families: 10 routes × 4 conditions (cheapest / round-trip price / best airline / nonstop, live August dates), 8 named airlines × 2, 7 booking-advice prompts, 4 no-search-bait questions.
result_sourceandturn_use_caseparsed from the raw SSE stream: 23,308 fetched documents (82.8% tier-tagged), 4,003 cited documents joined back by canonical URL (footnote URLs carry?utm_source=chatgpt.com).
Caveats
- One platform (ChatGPT), one collection vendor, a 4-day window — tier shares are a snapshot; the hotel study showed the tag is dialled in and out over weeks.
- 10 routes and 8 airlines; a different panel shifts the domain table (not the structural findings).
serp(n=122) andoxylabs(n=329) are small samples — directional.- Fresh matrix vs the hotels' 6-month backfill: comparisons are fetched-docs vs tagged-citations where noted.
Open data. All tables are published as CSV: summary.csv, tier_mix.csv, turn_use_case.csv, top_domains.csv, named_airlines.csv, advice_cited.csv, country_split.csv.