Skip to content
Europe Flight Club
Open data

The data behind the site, as files

Every fare figure on Europe Flight Club is computed from two grids Jon collected himself. Both are downloadable here, with the method, the observation dates, and a license that asks only for credit.

1,037
Round trips in the city grid, 26 US gateways to 41 European cities, one day
40
Airlines in the carrier grid, priced on 6,690 fares for one travel week
2
Files, each as CSV and JSON, each with its own data dictionary
CC BY 4.0
License on both. Attribution is the only condition.

How the fares were collected

The city grid is the cheapest one-week economy round trip from each of 26 US gateway metros to each of 41 European cities, for departures in the six months after , priced on Google Flights. The whole grid was collected on that one day, every cell twice, keeping the lower reading. Collecting it in a single sitting is what makes one city comparable with another; a half-refreshed grid would silently compare fares gathered weeks apart.

The carrier grid prices every airline that sells each route for the same travel week, November 8–14, 2026, so a gap between two carriers is a gap between two airlines and nothing else. The route list was fixed before collection as the full cross-product of the same 26 gateways and 47 European airports, and it is collected route by route with every carrier on a route captured in one session. Of 1,222 planned routes, 888 returned an economy fare and 884 a business fare; the rest are declared as unpriced rather than left out, so a collection failure can never look like a route nobody sells.

Rankings on this site use the median, never the minimum. A minimum is a fact about one airport on one day; a median is a fact about the city or the airline. That is why published cheapest-city lists disagree with each other and why ours does not move when one gateway gets lucky. The full method, and the second-source check we run against it, is on How we review.

Why the files and the pages cannot disagree

The pages and the files are generated from the same source in the same build. A city page's median, a carrier page's rank, and the row in the file that produced them are the same number by construction, not by proofreading. If you ever find them apart, tell us: it is a defect, and it goes on the corrections page with the check that should have caught it.

What is published, and what is not

Two files are open. Three things are deliberately not, and it is better to say which than to let anyone assume the download is everything.

The archive series
Every monthly refresh moves the superseded city grid into an archive. A fare for a past date cannot be re-collected, so that series is the one thing here nobody can reproduce, and it is the basis of the month-over-month analysis this site will publish. Only the current snapshot is distributed.
The raw carrier grid
Thousands of per-carrier, per-route fares power the airline rankings and every head-to-head on the site. The carrier file publishes the aggregates those pages show, one row per airline, and not the fares underneath them.
The collection tooling
How every carrier on a route gets priced for one travel week in one sitting is the operational work behind the grids. The method is documented in full; the tooling is not published.

Versions and refreshes

The files were first published on . The city grid is re-collected monthly, in one sitting or not at all, and each refresh replaces the file at the same URL; the filename and every row carry the observation date, so a file downloaded in one month can never be mistaken for the next. The carrier grid is re-aggregated whenever its fares are re-collected. One snapshot is held in the archive today.

Common questions

Can I use this data commercially?
Yes. Both files are licensed Creative Commons Attribution 4.0 International (CC BY 4.0). You can republish, analyze, chart, or build a product on them, including a commercial one, as long as you credit Europe Flight Club, link to the dataset page, and state the observation date. The attribution line on each dataset page is the shortest form that satisfies all three.
Are these prices I can book?
No. The city grid records the lowest fare found across a six-month window for each city pair, so each figure is a floor for that window rather than a quote for a date. The carrier grid records fares for one fixed travel week, so its figures are comparisons between airlines on identical dates rather than what any date costs now. Both are benchmarks for judging a fare you are looking at, and neither should be quoted as a bookable price.
Why publish the current snapshot but not the archive?
Because the archive is the one part of this work that cannot be rebuilt. A current snapshot can be reproduced by anyone with a week and a spreadsheet. A series of them, collected the same way every month, cannot be reproduced for any month that has already passed. That series is what the site's month-over-month analysis is built on, and it stays here. Every refresh publishes the new snapshot in full.
Why does the carrier file have one row per airline instead of every fare?
The per-route fares are what power the airline rankings and every head-to-head comparison on the site, and they are held back for the same reason the archive is. The aggregates are the figures those pages actually show: routes priced, median premium over the cheapest carrier on the same route, how often the carrier was cheapest, and its cheapest fare anywhere. Publishing them as one table means the ranking can be checked without scraping several hundred pages.
How do I know which version of a file I have?
The filename carries the observation date, every row of the city grid carries it as observed_on, and the JSON files carry it in their header. When the grids are refreshed, the files at these URLs change and the date changes with them. If two people disagree about a figure from this site, the first thing to compare is the observation date.

Hear when the grids refresh

One email a week on the Europe fares worth acting on. The week a grid is re-collected, it says so, with what moved.

No spam, unsubscribe anytime. By subscribing you agree to our Privacy Policy.

Jon Miksis

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.