The transatlantic carrier grid, by airline
40 airlines that sell US to Europe, each with its routes priced, its median premium over the cheapest carrier on the same route, how often it was cheapest, and its verified cabin score, in economy and business, for travel November 8–14, 2026. One row per airline.
- 40
- Airlines, 31 ranked in economy and 35 in business
- 3,430
- Economy fares behind the aggregates, on 888 routes
- 3,260
- Business fares, on 884 routes, a separate pass for the same week
- 1,222
- Routes planned; the unpriced ones are declared, not dropped
What one row is
One row is one airline. Behind it sit every fare that airline returned in the grid: the same fixed travel week, November 8–14, 2026, on every route it sells between the 26 US gateway metros and 47 European airports. On each route, the cheapest carrier sets the floor, and every other carrier's fare is recorded as dollars above it. The row carries the median of those gaps, the number of routes it was cheapest on, its route count, and its cheapest fare anywhere, once for economy and once for business.
The fares were collected between and , origin by origin, with every carrier on a route captured in one session. That is what keeps a within-route comparison valid across a multi-day collection: raw fares drift from day to day, but the gap between two airlines on one route in one week does not depend on which day it was read. A carrier with fewer than 3 routes in a cabin has no median published in that cabin, and the file says so in its own column.
The product score comes from a separate dataset of verified cabins, recorded per aircraft because the airframe often decides whether a business seat has direct aisle access. The file carries each carrier's best-scoring aircraft and how many dimensions that score rests on. How the four data-scorable dimensions are built, and why three are never scored from data, is on How we review.
A look at the file
| airline | alliance | economy_routes | economy_median_premium_usd | economy_cheapest_on_routes | business_routes | business_median_premium_usd | business_product_score | flown_by_author |
|---|---|---|---|---|---|---|---|---|
| Icelandair | None | 150 | $0 | 93 | 174 | $0 | 6 | true |
| Royal Air Maroc | oneworld | 38 | $0 | 20 | 46 | $94 | 9 | false |
| Discover Airlines | None | 11 | $0 | 6 | 10 | $0 | 8.3 | false |
| Edelweiss Air | None | 4 | $0 | 3 | 3 | $0 | 9 | false |
| Qatar Airways | oneworld | 8 | $9 | 4 | 1 | — | 9.3 | true |
| SAS | SkyTeam | 170 | $12 | 79 | 152 | $1,016 | 8.3 | true |
| Etihad Airways | None | 3 | $19 | 1 | 0 | — | 9.3 | false |
| TAP Air Portugal | Star Alliance | 131 | $20 | 60 | 132 | $800 | 8.5 | true |
| Turkish Airlines | Star Alliance | 301 | $45 | 103 | 353 | $233 | 8.8 | true |
| Lufthansa | Star Alliance | 292 | $50 | 71 | 251 | $1,019 | 8.8 | true |
Data dictionary
The same definitions travel inside the JSON file, so a download stands on its own.
| Column | Meaning |
|---|---|
| carrier | Carrier slug, matching /airlines/<carrier> on the site where the carrier has a page. |
| airline | Airline name. |
| iata | IATA airline code. |
| alliance | Alliance membership as verified 2026-09-01: Star Alliance, SkyTeam, oneworld or None. A group subsidiary is not a member. |
| kind | european-flag, low-cost, us-major or other. |
| hub | Connecting airport the carrier routes transatlantic traffic through, where that is its play. Blank otherwise. |
| economy_routes | Routes on which the carrier returned an economy fare in the fixed-week grid, out of 1,222 planned (26 US gateways by 47 European airports). |
| economy_ranked | true when economy_routes is at least 3, the threshold below which no median is published. |
| economy_median_premium_usd | Median dollars above the cheapest carrier on the same route in the same travel week, across the carrier's economy routes. Blank when unranked. |
| economy_cheapest_on_routes | Economy routes on which the carrier was the cheapest option, a premium of $0. |
| economy_lowest_fare_usd | Cheapest economy fare the carrier returned anywhere in the grid. A fact about one route, not about the carrier's typical price. |
| business_routes | Routes on which the carrier returned a business-class fare, collected in a separate pass for the same travel week. |
| business_ranked | true when business_routes is at least 3. |
| business_median_premium_usd | Median dollars above the cheapest business-class carrier on the same route, same week. Blank when unranked. |
| business_cheapest_on_routes | Business routes on which the carrier was the cheapest option. |
| business_lowest_fare_usd | Cheapest business-class fare the carrier returned anywhere in the grid. |
| business_product_score | Best verified business-class product score out of 10 across the carrier's aircraft, from Seat, IFE, Lounge and, where the carrier has enough priced business routes, Value. Blank when no cabin has been verified. Service, food and ground are never scored from data. |
| business_product_dimensions | How many dimensions the product score rests on: 4 when Value could be scored, 3 when it was withheld for too few priced routes. |
| cabin_verified_on | Date the best-scoring cabin product was last verified against the carrier's own published specification. |
| flown_by_author | true when Jon Miksis has personally flown the carrier on a Europe route, in any cabin. |
Limitations, stated
- One week. Every figure describes November 8–14, 2026. A carrier that discounts a different week, or a different season, is not captured. The week was fixed before collection and is not chosen to favor anyone.
- Coverage sets the median. A carrier's median is only as trustworthy as the routes behind it. A carrier that sells five gateways has a median about those five cities. The route count sits beside every median for that reason.
- Lowest fare is a fact about one route. The cheapest fare a carrier returned anywhere is not its typical price, and should not be quoted as one.
- Unpriced is declared. Of 1,222 planned routes, 334 returned no economy itinerary and 338 no business itinerary from any carrier. Those are recorded as unpriced, not as expensive, and they are not in this file's counts.
- Product is not experience. The score covers what can be read from a published specification and a fare grid. Service, food, and how an airline recovers a missed connection are not in it.
License and citation
This file is licensed under the Creative Commons Attribution 4.0 International license. Use it, republish it, build on it, sell what you build, as long as you say where it came from and link back. That is the whole condition. The rest of the site stays under its terms; the grant covers the files on this page.
Attribution line
Europe Flight Club, Transatlantic Carrier Grid (observed 2026-09-01), https://europeflightclub.com/data/carriers, CC BY 4.0
Citation
Jon Miksis (2026). Transatlantic Carrier Grid: airline price and product aggregates for one fixed travel week [Data set]. Europe Flight Club. https://europeflightclub.com/data/carriers. Fares observed 2026-09-01.
Always cite the observation date with any figure. A fare without its date is not evidence, on this site or anywhere else.
Common questions
- What is a median premium?
- On every route, the cheapest carrier sets the floor and every other carrier's fare is measured as dollars above it, in the same travel week. A carrier's median premium is the middle of those gaps across every route it sells. Zero means it was the cheapest option on at least half its routes. Because the comparison is within a route on identical dates, it is a statement about the airline's pricing rather than about which routes it happens to fly.
- Why is a carrier's median blank?
- Because it sells fewer than 3 of the routes in the grid in that cabin. One or two observations are an anecdote, and a median of them would ship a number that looks like a pattern. The carrier is still in the file with its route count and its cheapest fare, and the ranked column says explicitly that no median is published.
- Why does the file not include every fare?
- The per-route fares power the airline rankings and every head-to-head comparison on the site, and they are held back for the same reason the archive of past city grids is. What is published is one row per airline carrying the figures those pages show. That is enough to check any ranking on the site, and it is the form a reader actually uses.
- Why is the product score out of three dimensions for some carriers?
- Of the seven dimensions the site scores a cabin on, only four can be known without being on the aircraft: Seat, IFE, Lounge, and Value, the last computed from this grid. Value is withheld when the carrier has too few priced business routes, so those carriers are scored on three. Service, food and ground handling are scored only in reviews where the author has flown the cabin, and never appear in this file.
- Why is there a flown_by_author column in a data file?
- Because it separates what was measured from what was experienced, which is the distinction the whole site is built on. The fare and product columns come from published data. The flown column records whether Jon has personally flown the carrier on a Europe route, so a reader can see which airline pages carry firsthand judgment on top of the numbers and which are researched only.
Also open: the city grid, every city pair's floor for the same season. Back to all open data.

Data collected by
Jon Miksis
Jon Miksis has run travel businesses since 2017 and spends 3–6 months a year traveling, two to three of them in Europe. He has taken 250+ flights and booked every one himself, and regularly flies Boston to Europe for under $300 round trip. Every “Flown” review is from his own seat.
