The transatlantic city grid
The cheapest one-week economy round trip from 26 US gateway metros to 41 European cities, all 1,037 pairs collected on August 30, 2026. This is the file every cheapest-city ranking and departure-city guide on the site is computed from.
- 1,037
- City pairs, each priced twice on matching observation days
- $722
- Median across the whole grid
- $388
- Lowest floor in the grid
- $1,178
- Highest floor in the grid
What one row is
One row is one US gateway metro, one European city, and the lowest round-trip economy fare found on Google Flights for a one-week trip departing within six months of : one adult, taxes included, checked bags excluded. Every cell was priced twice that day and the lower reading kept. The figure is a floor across a window, so it tells you what a good fare on that pair looks like; it does not tell you what any particular date costs.
Origins are metro areas rather than single airports, because that is how a traveler shops. Destinations are cities for the same reason, and a code such as LON covers every airport in the city. The site’s airport pages take the individual airports apart where it matters.
A look at the file
| observed_on | origin | origin_metro | origin_code | destination | destination_city | destination_country | destination_code | destination_place | region | round_trip_usd | cheapest_week_departs |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-08-30 | atlanta | Atlanta | ATL | amsterdam | Amsterdam | Netherlands | AMS | not recorded | Western Europe | $674 | — |
| 2026-08-30 | atlanta | Atlanta | ATL | athens | Athens | Greece | ATH | not recorded | Southern Europe | $674 | — |
| 2026-08-30 | atlanta | Atlanta | ATL | barcelona | Barcelona | Spain | BCN | not recorded | Southern Europe | $673 | — |
| 2026-08-30 | atlanta | Atlanta | ATL | belfast | Belfast | United Kingdom | BFS | not recorded | British Isles | $895 | — |
| 2026-08-30 | atlanta | Atlanta | ATL | berlin | Berlin | Germany | BER | not recorded | Western Europe | $750 | — |
| 2026-08-30 | atlanta | Atlanta | ATL | bordeaux | Bordeaux | France | BOD | not recorded | Western Europe | $664 | — |
| 2026-08-30 | atlanta | Atlanta | ATL | budapest | Budapest | Hungary | BUD | not recorded | Central Europe | $800 | — |
| 2026-08-30 | atlanta | Atlanta | ATL | copenhagen | Copenhagen | Denmark | CPH | not recorded | Nordics & Iceland | $698 | — |
| 2026-08-30 | atlanta | Atlanta | ATL | dublin | Dublin | Ireland | DUB | not recorded | British Isles | $665 | — |
| 2026-08-30 | atlanta | Atlanta | ATL | dubrovnik | Dubrovnik | Croatia | DBV | not recorded | Adriatic | $841 | — |
Data dictionary
The same definitions travel inside the JSON file, so a download stands on its own.
| Column | Meaning |
|---|---|
| observed_on | Actual Eastern observation day for this row’s US gateway cohort (ISO 8601); the snapshot label and full interval are separate metadata. |
| origin | US gateway metro slug, matching /cheap-flights/from-<origin> on the site. |
| origin_metro | US gateway metro name. |
| origin_code | IATA code searched. NYC and WAS are metro codes that cover several airports. |
| destination | European city slug, matching /airports/<destination> on the site. |
| destination_city | European city name. |
| destination_country | Country of the destination city. |
| destination_code | IATA code the grid files this city under. NOT in every case the code searched: BFS is an airport code for a city the current collector prices as a metro, so read destination_place before attributing a fare to an airport. |
| destination_place | "not recorded" on every row. This snapshot carries method 0-unverified, meaning its method was reconstructed after the fact — no saved URLs, no raw captures, no script — so nothing establishes which place each search ran at. The current collector prices four cities as metros (LON, PAR, MIL, ROM) and searches Belfast as a metro because BFS alone returns no fare from any US gateway (established 2026-10-01), and it is reasonable to suppose this snapshot did something similar. That is an inference running backwards from a later observation, not a record, so it is not published as a value. Snapshots from method 1 onward record the place with the fares and state it here. |
| region | Editorial region used for grouping on the site. |
| round_trip_usd | Lowest round-trip economy fare found for a one-week trip departing between 2026-08-30 and 2027-02-28 inclusive — the window this snapshot declares in temporalCoverage, NOT a fixed six months after observed_on — one adult, taxes included, checked bags excluded. The lower of two reads of this city pair on the same Eastern day. It is a floor across a window, not a price anyone can book today. |
| cheapest_week_departs | ISO date of the outbound flight of the cheapest week found. Blank for the 2026-08-30 snapshot, which did not record it; populated on every row from the September 2026 snapshot on. |
Coverage
26 US gateway metros
Atlanta · Austin · Boston · Charlotte · Chicago · Dallas · Denver · Detroit · Houston · Las Vegas · Los Angeles · Miami · Minneapolis · Nashville · New York · Orlando · Philadelphia · Phoenix · Portland · Raleigh · Salt Lake City · San Diego · San Francisco · Seattle · Tampa · Washington DC
41 European cities
Amsterdam · Athens · Barcelona · Belfast · Berlin · Bordeaux · Budapest · Copenhagen · Dublin · Dubrovnik · Edinburgh · Florence · Glasgow · Hamburg · Helsinki · Krakow · Lisbon · London · Madrid · Malta · Manchester · Milan · Munich · Mykonos · Naples · Nice · Oslo · Paris · Porto · Prague · Reykjavik · Rome · Salzburg · Santorini · Seville · Split · Stockholm · Valencia · Venice · Vienna · Zurich
A city gets its own page once it is priced from at least 15 of the 26 gateways. Every city is in the file whether or not it has a page. One city is below that bar and it is unranked rather than missing: Split, priced from 1 of 26. Every gateway that returned nothing for it is declared as a searched-and-empty cell, which is what separates a market nobody sells from a collection that lost rows.
Limitations, stated
- Floors, not fares. Each figure is the lowest found across a six-month window. Most dates in that window cost more.
- One source. Every fare comes from Google Flights. We measure how far it disagrees with a second source on a sample and publish the result on How we review, rather than blending two sources and losing comparability.
- Off-season window. The current snapshot covers departures from early fall to late winter. Summer is a different market.
- Economy only, bags excluded. A carrier that charges for the first checked bag looks cheaper here than it is for anyone traveling with one. The carrier grid records which airline set each floor, and this file does not.
- A snapshot. A bounded collection interval. It supports a statement about that day and the window it priced, not a statement about how the market moves. The month-over-month view needs the archive, which is not distributed.
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 City Grid (observed 2026-08-30), https://europeflightclub.com/data/city-grid, CC BY 4.0
Citation
Jon Miksis (2026). Transatlantic City Grid: cheapest US to Europe round trips by city pair [Data set]. Europe Flight Club. https://europeflightclub.com/data/city-grid. Fares observed 2026-08-30.
Always cite the observation date with any figure. A fare without its date is not evidence, on this site or anywhere else.
Common questions
- Why is each fare the lower of two sweeps?
- Because the figure is defined as a floor: the lowest fare found for a one-week trip anywhere in a six-month window. The minimum of two same-day samples is simply a better estimate of a floor than one sample is, and because every cell was sampled exactly twice, no city gets a better shot at a low reading than another. A higher second reading never raises a floor already observed.
- Why are New York and Washington metro codes rather than airports?
- Because a traveler in New York chooses between JFK, LaGuardia and Newark, and the useful question is what the city costs, not what one airport costs. The metro code searches all of them at once. The same is true of London on the destination side, where LON covers Heathrow and Gatwick. Where a single airport matters, the site's airport pages price it separately.
- Why does the site rank cities by median rather than by this file's minimums?
- A city's cheapest fare in this file is a fact about one gateway over the disclosed collection interval. Its median across every gateway is a fact about the city. The site publishes a ranking only for cities priced from at least 15 of the 26 gateways, and ranks them on that median, which is why the ranking does not move when one airport has a good day. You can reproduce it from this file in a few lines.
- What time of year do these fares describe?
- The six months after the observation date, which for the current snapshot runs from early fall into late winter. These are off-season fares. Do not apply them to summer, when transatlantic economy fares run far higher, and do not compare a figure from this file with one from a different snapshot without noting that the windows differ.
Also open: the carrier grid aggregates, which name the airline behind each floor. 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.
