Methodology
What the data shows, in full
The four findings summarised on the home page, with the qualifications that belong to them.
1. Busier airports deviate more than quieter ones, and by little: the relationship holds across the table, the margin does not.
The fifteen busiest airports sit at +1.5 points against
-0.9 for the other 137, and the deviation rises with
traffic across the whole table (correlation +0.35 against the logarithm
of movements). The highest of the fifteen is London Heathrow at
+2.9. No airport in the table sits more than 6 points above the
norm, or more than 8 below it. The airports
furthest from the norm are smaller ones: Jersey at +5.9 across
4,206 movements, then London City at +4.0 — real
deviations, measured on traffic too thin to move the European total. The median
across all 152 airports is -0.6. A point is one percentage point
of CO₂ relative to the ideal flight.
These are not places in a league table. At the head of the ranking ten
positions can be separated by as little as 1.7 points within a
single month, so an individual position there is not resolvable — the same
caution the methodology applies to the middle of the ranking applies to its top.
What is stable is the distance from the norm: across the 7 months
London City never leaves the top 4% of airports and
stays at least 4.2 points above the median, even while its
nominal position moves between 2 and 6. Its
magnitude is seasonal (+4.5 in the strongest month, +3.3 in
the weakest); Jersey is steadier, never falling below rank
7.
The two do not deviate for the same reason. Jersey's gap is split almost evenly between the two
(+3.0 lateral, +2.7 vertical); London City's
sits in the profile (+1.2 lateral, +2.6
vertical). A single figure per airport does not say which of the two it is.
1 of the twenty routes furthest from the norm has Jersey at one
end, against a base rate of 0.3% of all ranked routes — consistent
with a concentration, though it rests on a single route and a hub with many routes is
over-represented in any tail.
Where the gap sits in the profile, that shape is what dense terminal areas
produce: early descents, level segments, sequencing. ADS-B shows the profiles flown, not the noise
abatement rules, sequencing constraints or capacity limits that require them.
This describes what these flights fly. It does not measure what the airports,
their airlines or their controllers could do differently.
2. Closed airspace has a cost, and it is large where it bites.
The clearest example is Gdańsk Lech Wałęsa ↔ Riga, flying +29%
further en route because the straight line between the two airports crosses
Kaliningrad. It runs 38 flights over the period — below the 100
needed to enter the rankings, and quoted here as an illustration of the
mechanism rather than as a placing.
The detour is geometric: it does not depend
on sample size. Baltic connections
towards Turkey route around Belarus and Ukraine for the same reason. In total
208 ranked routes have a direct path through closed airspace. None of
this is recoverable while those closures hold. And the overflight ban binds
European carriers but not third-country ones, so each figure is an average
across operators that must divert and operators that need not.
3. The efficient end of the ranking is small and peripheral.
Stavanger, Sola sits at -7.6 points, followed by other Nordic and
island airports, 9 points below where the fifteen busiest sit.
Light
traffic buys continuous descents and direct clearances. It is a measure of how
much congestion costs, not a target a hub could adopt.
4. Most of this gap cannot be compressed — the part usually left out.
Of the median flight's 5.1 points of vertical gap,
2.2 remain for a
flight going direct through an empty night sky — which we read as the baseline
staying out of reach rather than inefficiency, though nothing here separates the
two.
Only 2.9 points move with traffic,
routing and profile — and that subtraction compares two groups of different
length, since the floor is measured above 1,000 km. At equal distance the margin
is about 0.9 points; the rest is the distance mix. The distinction
is the difference between "European aviation wastes X" and "between comparable
flights there is a spread of this size" — and only the second is something these
data support.
How the figures on this site are computed, what they mean and —
above all — what they do not mean.
Release 2026-09-01 · methodology v1.0 · generated 2026-08-31 22:45 UTC.
1. The question being answered
For every flight we compare the CO₂ actually emitted with that of an ideal flight: same aircraft type, direct great-circle route, the most efficient altitude and speed for that distance, and the same real wind.
The difference is split into two parts that add up to the total:
- lateral — the cost of having flown more kilometres than necessary;
- vertical — the cost of having flown the same route on a less efficient altitude and speed profile.
The separation comes from an intermediate baseline: the real ground track, but an optimal altitude and speed profile. The two components are additive by construction, because they share a denominator.
2. What is NOT being measured
This is not wasted, recoverable fuel. The ideal flight is a theoretical limit no real flight can reach: separation between aircraft, route structure, constrained airspace, arrival sequencing and weather put it out of reach for reasons that are not inefficiency.
Estimates of avoidable inefficiency published by bodies in the field are much smaller than the gap measured here, and rightly so:
| measure | per flight |
|---|---|
| EUROCONTROL — level-offs in climb and descent, recoverable through CCO/CDO procedures | ~39 kg |
| Pasutto et al. (EUROCONTROL, 2021) — cruise, against the best profile actually flown | 60–85 kg |
| this site — gap from the theoretical optimum, whole profile | ~163 kg |
Over the same distance range Pasutto uses (200–1500 NM), their 4.6% median for cruise alone compares with our 11.9% for the whole flight: a factor of 2.6, explained by four differences, of which the first is the largest. Ours includes the route — 7.3 of those 11.9 points are lateral — and theirs excludes it by construction; that one difference accounts for most of the factor. Then: their reference is the best observed profile, ours a physical optimum; they cover cruise only, we also cover climb, descent and speed; they assume nominal mass and no wind, we use estimated mass and real wind.
Our vertical component alone over the same range is 4.6%, which lands next to their 4.6%. We do not present that as agreement. Ours covers the whole profile — climb and descent included, which is where our gap concentrates — while theirs is cruise only, so the two numbers are close without measuring the same thing. Read it as a coincidence worth knowing, not as a validation.
Practical consequence: multiplying our total by a carbon price and calling it "waste" would be wrong. We do not do it, and we ask that it not be done.
How much is compressible — measured, not assumed
A flight going direct, departing at night into an empty sky, on a long sector, is about as close to the ideal trajectory as an airliner actually gets. Across 3,120 such flights the vertical gap still stands at 2.2%, against a median across all flights of 5.1%.
What is measured is that the gap does not disappear under near-ideal conditions. The reading we place on it — that 2.2 points are a floor set by cost index, step climbs imposed by weight and discrete flight levels, and that the remaining 2.9 move with traffic, routing and profile — is an interpretation of that measurement, not a second measurement. Nothing here separates those causes from one another, and the residual may also carry variability of the model itself.
And the subtraction compares two groups of different length. The floor is measured on sectors above 1,000 km; across all flights above 1,000 km the median vertical gap is 3.1 points, not 5.1. At equal distance the margin is about 0.9 points rather than 2.9, and the difference between the two is the distance mix, which is not an operational quantity. The direction of that error is conservative for the reading above: on short sectors the incompressible share is likely larger than 2.2, not smaller.
The floor nearly coincides with the value a EUROCONTROL study obtains for cruise by comparing each flight with the best observed profile, a reference that already contains those constraints. Two independent routes, the same destination: which is why the apparent gap against external references does not indicate a model error, but the difference between a fleet median and a best-in-class reference.
A number that can be given
There is a way to quantify the margin without leaning on an unreachable optimum: compare each flight not with perfection but with what flights of the same length already achieve. Half of comparable flights already fly at or below that level, which shows it is attainable by some — not that it is attainable by all. The flights above it may differ systematically in mass, type, airport, hour or constraint.
- If flights above the median of comparable ones flew like that median: 1.1 Mt of CO₂ a year (346 kt of fuel).
- Bringing only the worst quartile to the 75th percentile, a far more cautious assumption: 0.5 Mt a year.
EUROCONTROL independently estimates 1.1 Mt of CO₂ a year as recoverable in the ECAC area through continuous climb and descent procedures alone. The two figures coincide, and that is not a confirmation. They count different things: the spread between comparable flights on one side, what two named procedures recover on the other. A coincidence between measurements of different quantities is worth no more than a difference between them would have been.
It remains counterfactual arithmetic. It assumes the median level is reachable everywhere, and it is not: part of the spread is due to structural constraints — closed airspace, terrain, congestion — that no procedure removes. The figure measures what the observed spread between comparable flights is worth, not what is achievable. It is the upper bound of a margin, not a target.
3. Why the comparison between routes still holds
Because an unreachable reference cancels out in a comparison. Two airports measured against the same impossible optimum remain comparable with each other: the distance between them does not depend on the unreachability, which is common to both.
That is why none of the rankings on this site use the absolute value; they use the Δ norm: the deviation from the European median of flights of the same length and the same aircraft type. The theoretical optimum only serves as a shared unit of measurement.
This correction is necessary, not cosmetic: across the ranked routes the raw gap correlates about -0.74 with sector length, so a raw ranking would order routes by shortness rather than by inefficiency. After normalisation the residual correlation with distance is about -0.04.
The comparison is also made at equal aircraft type. An A320 and a B767 on the same sector are not comparable, and without this second normalisation part of what the method charges to the route would really be the aircraft serving it: the question here is route and profile efficiency, not fleet choice. Where a distance–type combination has fewer than 200 flights, the distance-only norm is used instead.
4. Data and tools
- Trajectories: public daily dumps from adsb.lol, ODbL licence. Every flight is reconstructed from the ADS-B messages broadcast by the aircraft themselves.
- Wind: ERA5 reanalysis (Copernicus/ECMWF), 11 pressure levels, hourly resolution.
- Fuel burn: OpenAP (TU Delft), an open aircraft performance model.
- Anchoring: cruise fuel flows per type are anchored to the ICAO Carbon Emissions Calculator Methodology v13.1, Appendix C.
Wind is what makes the two directions comparable
Actual fuel burn is already wind-correct, because it derives from measured airspeed. The ideal flight is not: timed without wind, the same route comes out artificially efficient one way and inefficient the other. The ideal flight is therefore timed at the ground speed corrected with ERA5 wind along the path, and the asymmetry between the two directions cancels.
Two baseline choices that change the result
- The optimal cruise altitude is the one for the great-circle distance, not for the distance actually flown: otherwise a detour would quietly earn itself a better cruise level and the lateral component would deflate.
- The wind along the real track is weighted by distance, not by time: the track is time-sampled, so it is dense where the aircraft is slow, and a time-weighted average would over-weight the terminal areas.
Prior work on the same data and model
Open ADS-B trajectories and an open performance model have been combined for European traffic before. In PLOS ONE in 2023, Olive, Sun, Basora and Spinielli took two months of 2019 arrivals at five European airports and measured what holding patterns, point merge procedures and continuous descent operations cost in fuel; OpenAP, the performance model used here, is the work of one of them.
The quantity is not the same as the one on this site. They compare real flights with and without a given procedure at the same airport, so their reference is other traffic. Here the reference is a wind-corrected optimal profile that no flight flies. The two sets of figures do not sit next to each other.
5. Calibration
OpenAP fuel flows are compared per type against values derived from ICAO, and corrected with a factor for types deviating by more than 10% with at least 100 observed flights. The factor multiplies both the real flight and its ideal, so it cancels in the percentages: it affects tonnages, not percentage gaps.
The check that matters is not on calibrated types — for those it is tautological — but on the uncalibrated ones: A320, A321, B738 and A319, which alone are the majority of flights, land within 5% of the ICAO reference with no correction at all.
6. Which flights are included
A flight enters the analysis only if its track is sufficiently complete, and the test is exactly this: at least 85% of the flight's duration lies outside gaps longer than 120 seconds, the reconstructed distance is at least 90% of the great circle, both endpoints resolve to an airport, and the sector is at least 150 km. What the gate does not do is bound the single longest gap — it constrains how much of the track is missing, not how that absence is distributed, so a track can pass with one long silence inside it. That is the same blind spot as the fuel gate described in the FAQ, and it is on the same list for the next release.
There is then a criterion that is often misread, so it is worth being explicit. We discard flights whose flown distance comes out smaller than 90% of the great circle. Flying less than the direct route is geometrically impossible: when it happens it is because the track is truncated by a reception gap, and that flight would look more efficient than possible. We do not discard heavily diverted flights — those have flown distance greater than the great circle and all remain in the sample, including the routes at the top of the rankings.
Over the published period: 1,833,127 flights across 197 days and 7 months, ECAC area.
7. Validations
Is the wind modelled correctly?
If it were not, the same route would come out different in the two directions. We therefore measure the spread between outbound and return on every route with at least 10 flights per direction. With wind modelled, the median of that spread collapses, and it stays stable across seasons. That is the real test, because winter jet streams are far stronger.
| month | routes | without wind | with wind |
|---|---|---|---|
| January | 1,798 | 8.6 | 5.1 |
| February | 1,781 | 9.9 | 5.2 |
| July | 2,458 | 8.5 | 4.6 |
Is the signal structural, or is it weather?
If the rankings were noise, they would reshuffle every month. Comparing the route ranking across all 21 available month pairs, rank correlation stays high throughout: median 0.867, worst 0.789 (Feb→Jul), consecutive months 0.924.
These two checks were computed before the ground-fuel exclusion, on the gate-to-gate figures this site no longer publishes, and they are re-run at the next release. The direction is known: taxi burn is structural per airport and stable month to month, so leaving it in could only have flattered a stability measured across months — the corrected figures are, if anything, harder to keep stable than the ones these numbers describe.
The more informative detail is that the correlation decays in order with the time distance between months. That is the signature of a structural signal with modest seasonal drift: noise would give low correlations everywhere, an artefact would give uniformly high ones.
Do the numbers survive an external comparison?
Aggregating our trajectories the way EUROCONTROL aggregates its own KEA indicator — a ratio of sums, over the en-route portion beyond 40 NM from the airports — we obtain +2.26% against the ~3% published. Same order of magnitude and same construction.
KEA is not merely a published statistic: it is the only environmental indicator on which the Single European Sky performance scheme sets binding targets for Member States. For the current reference period, RP4, the Union-wide target falls from 2.80% in 2025 to 2.66% in 2029, and measured performance has been running above target.
Our figure is lower than the published one, and the reason is the flight population rather than the arithmetic. KEA covers every flight crossing the reference area, including overflights, counted over their in-area portion; the 40 NM exclusion applies only around departure and arrival airports, so an overflight has none removed. We count only flights that both take off and land inside our area, so every flight we measure has had both terminal cylinders cut out — precisely the phase where route extension is greatest. EUROCONTROL also discards the ten best and ten worst days of the year, and we do not. These differences all push the same way, and they are enough to explain the gap without either figure being wrong.
Further differences we cannot remove: they use radar data over the EUROCONTROL reference area, we use ADS-B over a quality-filtered subset, with our own baseline and criteria. The comparison says "consistent", not "identical", and it should not be read as reproducing their number.
Where this baseline sits among EUROCONTROL's reference trajectories
The kind of reference used here is not particular to this project. EUROCONTROL's Performance Review Report 2024 is developing a ladder of comparison trajectories: the great circle route; then a theoretical fuel-optimal trajectory, which "follows the great circle route but is further optimised for wind conditions"; then a realistic optimal trajectory, which adds weather phenomena such as thunderstorms and turbulence; and finally an ATM fuel-optimal trajectory, which folds in ATM and network constraints.
The baseline on this site is not any one of those rungs. It sits between the first two: it holds to the great circle laterally, like the first, and optimises the profile in real wind, like the second. The difference is that their wind optimisation may also move the route sideways to use the wind. Their own worked example does exactly that, gaining time over a longer path; ours may not. The consequence has a known direction, and it does not rest on that example: an optimiser free to leave the great circle can always choose to stay on it, so its optimum can only burn the same or less. Measured against a laterally free version of this reference, the gap reported here could only grow.
What matters for the caveat at the top of this site is where the reference sits rather than which rung it is. It sits upstream of the levels at which weather and network constraints enter, which is why the figure is a distance from a theoretical optimum rather than an estimate of recoverable fuel. Those constraints are real, and something that measures against a reference placed before them is not measuring what could be recovered.
The same report idealises the cruise, and in the opposite direction to this one. Its optimiser lets the cruise climb continuously as the aircraft burns off mass, off the discrete levels flights are actually assigned, and EUROCONTROL notes an intention to constrain it to the Flight Level Allocation System in future updates. A reference built that way is cheaper than anything a flight can be given, so a gap measured against it would run correspondingly large, which is presumably why they plan to constrain it. The baseline here errs the other way, cruising below what aircraft reach on the longest sectors, which makes the figure on this site too small. Correcting it would make the headline figure larger, and that correction is still owed.
8. Stated limitations
- We measure the gap from a theoretical optimum, not avoidable inefficiency (§2).
- Taxi and ground movement are outside every figure here. The model that prices fuel is an aerodynamic model of flight, and an aircraft on the ground is far outside its domain: asked for an airliner at taxi speed it returns several times the fuel flow it gives for cruise. The reference trajectory never taxis either, so the comparison is flight against flight and both sides exclude the ground. One consequence is that the CO₂ total on this site is CO₂ emitted in flight, and understates what the same traffic actually emitted: taxi burns real fuel, and pricing it needs reference values this method does not have.
- Where the ground begins is a choice, and the headline figure moves with it. A point counts as ground here when the aircraft is below 3,000 ft and slower than 70 knots: below that speed nothing in the modelled fleet is flying. Other defensible cuts give other headlines. Taking only the transponder's own surface flag gives 11.1%; cutting at 40 knots instead of 70 gives 12.7%; the figure published here is 12.1%. The altitude threshold turns out not to matter — cutting at 1,000 ft instead of 3,000 moves the total by 0.01 of a point — so the whole sensitivity is in the speed. The airport table is far less sensitive than the headline: across the two most distant definitions an airport's deviation moves by 0.4 points at the median, and none of the twenty furthest from the norm moves by a full point. That is the reason this site presents the ordering of the tails and not the value of the headline as the durable result.
- The table follows the map of ADS-B receivers, and we cannot fully separate that from the traffic. The trajectories come from a volunteer network whose receivers cluster where people and money are. Airports in densely covered parts of that network deviate more, and the relationship (0.36 in rank correlation) survives holding the airport's own traffic fixed — it is in fact stronger than the traffic relationship itself (0.27) once each is held against the other. We tested the obvious worry, that thin coverage reconstructs trajectories badly and biases the result, and found no support for it: trajectory coverage is essentially complete everywhere (median 1.00 of the flight, worst airport 0.89), and controlling for it leaves the relationship unchanged at 0.39. The likelier reading is that receiver density and congested airspace share a cause, both following dense and wealthy regions — which would mean the first finding is better stated as busy airspace than as busy airports. Nothing here separates the two, and the measurement is of today's receiver map, not of the published period.
- Only the tails of the rankings are reliable. Half the routes sit within a few points of the norm, inside the uncertainty of the method: between 900th and 1000th place the ordering means nothing. Rankings show only routes with at least 100 flights.
- The period is 2026 only, January to July: no year-on-year comparison, and December is not covered.
- Four days are missing inside the period, all absent at the source. The window ends on 20 July because the four days that follow have flight data but not yet the wind data the comparison needs.
- One day in the period is incomplete at the source, with whole hours absent from the dump: 2026-03-07 (hours 14 UTC). An estimated 625 flights are missing as a result. Such days are kept and labelled rather than removed, and the complete record is published as coverage.json.
- Routes flagged ⚑ cannot fly the direct path because the airspace is closed. The ban applies to European carriers and not to third-country ones, so the figure shown is an average between those who must divert and those who need not.
- ADS-B coverage does not include oceanic sectors.
- Aircraft mass is estimated, not known: it is the main physical uncertainty in the model. The baseline also does not impose the altitude reachable at full load: a heavy aircraft must climb in steps, whereas the ideal trajectory flies the whole cruise at a single level. How much this weighs is measured by the floor in §2.
- The ideal trajectory flies at minimum-fuel speed. Airlines fly faster on purpose, to meet schedules: that is an economic choice, not an inefficiency, and it still ends up counted in the vertical component. It is one of the items making up the incompressible floor.
- The split between lateral and vertical is a convention. The total does not
depend on it; the split itself does. We correct the route first and the profile second,
charging the extra kilometres at the optimal profile. The opposite
convention charges them at the flight's actual CO2 per kilometre,
which moves weight towards the lateral component: for the median flight the
split goes from 7.2 / 5.1 to
8.7 / 3.5 points. The lateral component is the larger one in all four pairs, including for
the airport named in the findings
(18.9 / 12.3 becomes 23.6 / 7.0,
on raw medians rather than deviations from the norm). The total is identical under
both conventions for every individual flight. The four figures above are
medians, and medians do not add: summing each pair gives a different number again,
and neither sum is the median total. That is a property of medians, not a
discrepancy.
Those four pairs describe the median flight, and are not the 7.5 / 4.6 of the headline. The headline is a ratio of sums over the whole period, where a long flight weighs more than a short one; the median flight is a different quantity and comes out lower. Both appear on this site, and every comparison in the rankings uses the aggregate. Anything resting on the size of the split should be read with this sensitivity in mind; the ordering does not change. - The ideal trajectory's flight time uses the harmonic mean of ground speed along the path, which is the quantity that reproduces the correct flight time when wind varies. An earlier version used the arithmetic mean of wind, which understated the baseline's fuel and inflated the published gap by about 0.35%; the figures on this site are computed after that correction.
9. Privacy
Every published row aggregates at least 10 flights. We do not publish, and will not publish, data about an individual flight, aircraft or operator. The rankings concern routes and airports, never people or identifiable aircraft.
That floor counts flights, not aircraft — and on one class of traffic the difference matters. This site covers commercial air transport. Business and general aviation are not its subject, and only two such aircraft types survive the performance model at all (C550, GLF6, together 0.16% of flights). But on a thin route a row made of those flights can describe one or two aircraft — that is, one operator or one owner — even while clearing a floor of 10 flights.
We cannot rule that out by counting aircraft, because we deliberately do not store aircraft identity: the same choice that makes this dataset unable to identify a flight also removes the check that would prove those rows safe. So the class is removed instead. 37 routes whose traffic is majority business aviation are excluded from every table and chart on this site. Their flights remain in the European totals, where they are diluted across 1,833,127 flights and identify nobody; what is suppressed is the row that would have singled them out. No airport comes close to the same threshold: the most exposed sits below 6%.
10. Who made this, and how to report an error
Everything here is reproducible. The trajectory data is public, the performance model is open source, and the code that turns one into the other is published: any figure on this site can be recomputed and any choice made along the way can be inspected. What you find here is a tool with its limitations stated, not an authored study.
One caveat on that word, because it would be found anyway. The routine that matches a trajectory's endpoints to an airport used a fixed longitude scale taken at the centre of the original, smaller study area. It was corrected once the area widened to the whole of Europe — but after these figures were computed, and they are frozen until the next release rather than recomputed under a rule that changed mid-window. Re-running today's code therefore reproduces the rankings on this page exactly, and the movements column for a minority of airports approximately: the correction moves 0.3% of departures and 0.5% of arrivals, which leaves the ranking identical (same airports, same order at the top, median change of 0.000 points) while changing some movement counts by up to a sixth. The next release re-resolves every endpoint so that the whole window is matched one way.
I am not an aviation professional or a climate scientist; I run an ADS-B receiver and I care about this. The method, the modelling and the code were built with AI assistance; the constraints are mine — what the figures cover, when they change, and what this project declines to claim. The analytical decisions it implements are documented on this page precisely so they can be checked rather than taken on trust.
Right of reply. If a figure looks wrong to you, or if you represent an airport, an airline or an air navigation service provider named here, write to hello@co2gap.org. Corrections and replies are published in full on the replies page, alongside the figure each one concerns. It is why this work is public rather than private.
11. Independence
This site names airports and air navigation service providers. Some of them may one day ask for the detail behind their own figures, and that would put the measurement and the interest of the measured party in the same hands. The rules below exist so that the arrangement can be checked rather than trusted, and they apply from the first release, while the number of such arrangements is zero.
- The public figure is never a deliverable. What could be provided to an organisation is analysis of a published figure — never a change to it, and never its removal or postponement.
- No privileged access, embargo or preview. Where material is provided before publication — as it was, on request, to one organisation in August 2026 — the same is available on the same terms to anyone named here, and it confers no ability to alter what is published. In July 2026, four organisations were written to about figures that a later correction changed substantially; those figures are not in this release, and no organisation is singled out here in the way they were. Every organisation named anywhere on this release — in a finding, a chart or a table — is covered by the right of reply below, which is unconditional and carries no notice period. Notice is given because being singled out deserves warning, never as a commercial courtesy.
- Right of reply is free and unconditional, published in full and on identical terms whether or not there is any other relationship.
- Any commercial relationship with a named organisation is disclosed next to that organisation's figure, for as long as the figure is published.
- No grades, tiers or composite scores are sold or published. What this project produces is measured quantities; a score would compress exactly the caveats that section 8 says must travel with the number.
If you operate an airport, an ANSP or an airline and want the detail behind these figures for your own traffic — by hour of day, by origin, by aircraft type, month by month — write to hello@co2gap.org. That detail exists in the pipeline but is not published, because a page that showed every cut of the data would state far more than the sample in each cut can support.
12. Licence and reuse
Three different things on this site carry three different licences, and the distinction matters if you intend to republish.
- The figures, tables and charts on these pages are a Produced Work in the sense of ODbL: reuse them freely, including commercially, with attribution to this site and to adsb.lol contributors. Share-alike is not triggered.
- A dataset extracted or reconstructed from these pages — a table of routes or airports with their figures, redistributed as data — is a Derivative Database. ODbL requires it to be published under ODbL as well. This is the upstream licence's requirement, not an additional condition imposed here.
- The text and the charts on these pages are additionally offered under CC BY 4.0 — a grant over this project's own expression, not over the underlying data, whose terms are the ODbL ones above. The tables are not included: extracting them as data makes a Derivative Database. The pipeline source code is Apache-2.0. The project name and domain are not covered by either.
Wind data: ERA5, Copernicus Climate Change Service. Airport names and positions: OurAirports (CC0). Fuel references: ICAO CEC Methodology v13.1. Performance model: OpenAP, TU Delft (LGPL-3.0). Each release is archived on Zenodo as they are published, so that a figure can be cited against the version that produced it; the identifier for a given release, and what changed in it, are on the release history page.
How to cite. What is citable here is the tool, not a study: the figures are outputs of running it, and anyone can re-run it.
co2gap (2026). co2gap — an open pipeline for measuring the CO2
of European flights against a fuel-optimal ideal, from ADS-B trajectories. Release 2026-09-01,
methodology v1.0, covering 2026-01-01 to 2026-07-20.
https://co2gap.org
DOI: 10.5281/zenodo.22215589
That DOI identifies this release and never moves: it will still resolve to the 2026-09-01 figures after later releases exist. To cite the project across all versions, use 10.5281/zenodo.22215588, which always resolves to the most recent one. Three version strings name three different things: release 2026-09-01 is the window of data, methodology v1.0 is the method, and v1.0.0 is the software tag the archive was cut from.
BibTeX
@software{co2gap_2026,
author = {co2gap},
title = {co2gap: an open pipeline for measuring the CO2 of European
flights against a fuel-optimal ideal, from ADS-B trajectories},
version = {2026-09-01},
url = {https://co2gap.org},
doi = {10.5281/zenodo.22215589},
year = {2026}
}The machine-readable form is CITATION.cff in the repository.
13. Glossary
Every term used on this site, in one sentence each. No prior knowledge of aviation is assumed — if something here is still unclear, that is a fault of this page and worth an email.
- ECAC area
- The European Civil Aviation Conference: 44 member states, from Iceland and Norway to Turkey, Armenia and Azerbaijan — a wider Europe than the European Union. It is the area this site covers, and the same one EUROCONTROL uses for its own published figures.
- Point
- One percentage point of the ideal flight's CO₂. An airport at +10 points emits about 10% more than comparable flights. Points are always relative: they never say how much fuel was burnt, only how far from the reference it is.
- The norm (Δ norm)
- The median of flights of the same length and the same aircraft type. The raw gap grows as flights get shorter, so ranking it would sort by shortness; every ranking here measures the distance from the norm instead.
- Lateral and vertical
- The two parts the gap splits into, which add up to the total. Lateral is the cost of flying more kilometres than the direct route; vertical is the cost of flying the same route on a less efficient climb, cruise and descent profile.
- Movements
- Take-offs and landings counted together. A flight counts once at the airport it leaves and once at the airport it reaches.
- ADS-B
- The position, altitude and speed each aircraft broadcasts about twice a second. Anyone with a receiver can pick it up; every trajectory here comes from those messages, collected by volunteers and published by adsb.lol.
- Great circle
- The shortest path between two points on the globe. It is the direct route each flight is compared against — a geometric reference, not a route anyone is allowed to fly.
- En route
- The part of a flight beyond 40 NM from either airport, outside the terminal areas where departures and arrivals are sequenced. EUROCONTROL's efficiency indicator covers only this portion, so our comparison with it does too.
- NM (nautical mile)
- 1,852 metres, the standard distance unit in aviation. 40 NM is about 74 km.
- KEA
- EUROCONTROL's indicator of horizontal en-route flight inefficiency: how much further flights actually fly than the direct route, over the en-route portion only. It is built from radar data, as a rolling 12-month average discarding the ten best and ten worst days of each area; ours is not. Same construction, not the same number.
- Continuous climb and descent (CCO/CDO)
- Climbing or descending without level-off segments. Level segments burn extra fuel, and removing them is one of the few savings the industry quantifies publicly: EUROCONTROL puts the network-wide potential at about 4 kg of fuel per departure and 35 kg per arrival.
- Mt and kt
- Million tonnes and thousand tonnes. Burning one kg of jet fuel releases about 3.16 kg of CO₂.
- ERA5
- The weather reanalysis published by the European Centre for Medium-Range Weather Forecasts: the wind that was actually blowing, hour by hour. Without it the same route measures differently in the two directions.
- OpenAP
- An open aircraft performance model from TU Delft. It turns a trajectory and an aircraft type into fuel burnt; it is what makes this computable without any airline data.
- ODbL
- The Open Database Licence covering the source trajectories. Reuse is free, with attribution, but a database derived from it must carry the same licence, which is why the figures on this site do.