ECAC area · 2026-01-01 → 2026-07-20 · 197 days
How far European flights sit from a theoretical optimum
Actual emissions and the gap against an ideal flight, computed from the ADS-B trajectory of every flight, with a great-circle baseline corrected for wind and split into a lateral component (the route) and a vertical one (the profile).
This is not fuel that could be saved. The ideal great-circle flight at a perfect profile is a theoretical limit no real flight can reach: separation between aircraft, route structure, constrained airspace and arrival queues put it out of reach. Published estimates of recoverable inefficiency are much smaller — EUROCONTROL puts at roughly 39 kg per flight what continuous climb and descent procedures would recover, against the roughly 163 kg of vertical gap measured here. Those two figures are not rival estimates of one quantity: theirs is measured against current practice and is recoverable by a known procedure, ours against a theoretical optimum that no flight can fly. This site measures the distance from a theoretical optimum, not avoidable waste. That reference sits near the bottom of a ladder EUROCONTROL is developing for the same purpose: two further rungs, one adding weather and the next adding ATM and network constraints, before the ladder reaches a trajectory the network could actually deliver. The full comparison is in the methodology; how this figure sits beside EUROCONTROL's own estimate of what is recoverable, and how much aviation weighs in the first place, is on the context page.
How to read these numbers
- A point
- is one percentage point of the ideal flight's CO₂. An airport at +10 emits about 10% more than comparable flights.
- Comparable
- means same length, same aircraft type. That median is the norm, and every efficiency ranking here measures distance from it — never the raw gap.
- Lateral
- is extra kilometres flown; vertical is a less efficient climb, cruise and descent along the same route. The two add up to the total.
- Movements
- are take-offs and landings together: a flight counts once at each end.
- Where and when
- the ECAC area — Europe wider than the EU — from 2026-01-01 to 2026-07-20, 197 days. Release 2026-09-01, methodology v1.0, updated twice a year over a 12-month window; next update 31 January 2027, covering the whole of 2026.
What the gap is made of
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 splits into two additive parts: the lateral one (having flown more kilometres) and the vertical one (having flown the same route on a less efficient altitude and speed profile). Over the period observed: total 12.1%, of which lateral 7.5% and vertical 4.6%.
Schematic, not a real flight: the shapes are drawn to show what the two terms mean, not to depict a particular trajectory.
The lateral component is about 1.6 times the vertical one: the gap is mostly in how far flights go.
What the data shows
Four things visible in the data, with what is known about why — and what remains unknown. Each opens in full in the methodology.
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.
The full reading →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 full reading →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.
The full reading →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.
The full reading →How much of this gap is compressible
Derived from the data itself, not assumed.
A flight that goes direct, departing at night into a nearly empty sky, on a long sector where cruise dominates, is about as close to our ideal trajectory as an airliner gets in practice. Across 3,120 such flights the vertical gap still stands at 2.2%.
That is the floor: not inefficiency, but the baseline remaining out of reach. It comes from choices and constraints no procedure removes: the cruise speed chosen to meet schedules rather than to minimise fuel, the need to climb in steps as the aircraft gets lighter, flight levels available only at discrete intervals.
| vertical component | points |
|---|---|
| median across all flights | 5.1 |
| — floor, not compressible | 2.2 |
| — operational margin (traffic, routing, profile) | 2.9 |
Most of that margin is sector length, not operations. The floor is measured above 1,000 km, where the median across all flights is 3.1 points rather than 5.1. At equal distance the margin is about 0.9 points, and the rest of the 2.9 is the distance mix between the two groups. If anything that makes the incompressible share larger than 2.2 on short sectors, not smaller.
How this floor compares with references built on the best profile actually observed is set out in the methodology: those measure a different quantity, and the comparison needs its caveats stated beside it.
What the spread between comparable flights is worth
Not against the theoretical optimum, which nobody can reach, but against what flights of the same length already achieve.
If the flights sitting above the median of comparable ones flew like that median, the CO₂ avoided would be 1.1 Mt a year (346 kt of fuel) across the traffic we observe. Bringing only the worst quartile up to the 75th percentile — the most cautious assumption — gives 0.5 Mt a year.
For comparison, EUROCONTROL 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.
This is counterfactual arithmetic, not a forecast. It assumes the median level is reachable everywhere, and it is not: some routes sit above the median because of structural constraints — closed airspace, terrain, congestion — that no procedure removes. It measures what the observed spread between comparable flights is worth, not what is achievable.
Comparison with the EUROCONTROL indicator
Built the same way as KEA: a ratio of sums, over the en-route portion only, beyond 40 NM from the airports.
Why a raw ranking would be wrong
The raw gap grows as distance shrinks, so a raw ranking would sort by shortness. Every ranking below uses the deviation from the median of flights of the same length and the same aircraft type.
The baseline does not fly every sector at airline cruise level: it picks the altitude that minimises its own fuel for that distance. Checked against what aircraft actually do, on the shortest sectors it asks for about 2,000 ft less climb than the median real flight reaches. Whatever drives the 37% median gap there, it is not a reference demanding the impossible.
The same figures as a table, with the flight counts, are on the data page.
Routes furthest from the norm
Δ norm in percentage points against flights of the same length and type. Rankings use only routes with at least 100 flights: below that the sample is too small for an ordering to mean anything. Routes whose traffic is majority business aviation are excluded — see privacy. ⚑ = the direct path crosses closed or avoided airspace (208 routes flagged).
All 2,787 ranked routes, those closest to the optimum, and the CO₂ totals: on the data page.
Airports
Arrivals and departures combined, at least 2,000 flights. The vert. column isolates the profile component, where early descents and terminal-area holding show up.
That is why on dep. and on arr. are shown separately: the same figure, split by the role the airport played. What it shows is where a figure is concentrated; whether the gap was produced at this airport or inherited from the other end is answered further down, by the phase split. Both readings occur here. Nice-Côte d'Azur stands at +3.5 on departure and +3.8 on arrival: whatever produces that gap is not confined to one end of its flights. That is a statement about where the deviation appears, not about what causes it. London Heathrow stands at +0.5 and +5.4: nearly all of it appears on one side, and its combined figure of +2.9 alone would not have told you which. The median across all 152 airports is -0.6.
Where inside the flight does it sit? Splitting the same vertical gap by the part of the path it was burnt on gives a sharper answer than the two columns alone. Measured across the 28 airports whose departures deviate by at least two points, a median of 33% of that deviation was produced within 40 NM of the airport itself, and 32% of it in the climb. For arrivals (52 airports) it is 70% within 40 NM and 88% in the descent. The two ends are not alike: most of what appears on an airport's arrivals is produced within 40 NM of it, while most of what appears on its departures is not, and is carried in from further along the flight. EUROCONTROL's own figures point the same way, putting the fuel recoverable by continuous descent at around ten times that recoverable by continuous climb.
That is a location, not a cause. Where it does sit near an airport, it says the fuel was burnt there, in the climb out of it or the descent into it. It does not say whether the profile was chosen by the operator or imposed by the traffic, and nothing here distinguishes the two.
All 152 airports, with the departure and arrival columns: on the data page.
What I make of this
The rest of this site is measurement. This section is opinion, and it is signed. Anyone named here has the right of reply, published in full. What the opinion rests on — how much aviation weighs, and what other people measure — is set out with its sources on the context page.
Nobody commissioned this. I run an ADS-B receiver, which is how I got interested; the flights here are not its own, but the daily dumps that thousands of receivers feed. Those dumps are public, the performance model is open, and I wanted to know what those trajectories would say if you asked them something harder than where is that plane.
What surprised me is how far that got. Aggregated the way EUROCONTROL builds its own indicator, this comes out at +2.26% against the ~3% they publish. Split by phase, 88% of an airport's arrival deviation is burnt in the descent into it. EUROCONTROL's own figures point the same way: they put the fuel recoverable by continuous descent at around ten times that recoverable by continuous climb. I did not expect open data, an open performance model and a laptop to land that close to institutions that do this for a living.
Five things I will say as opinions rather than findings.
If there is room anywhere, it is in the last forty miles. Not because most fuel is burnt there — it is burnt climbing and cruising — but because that is where most of the gap accumulates. A descent profile is not something an airline decides on its own.
The shorter the flight, the worse the arithmetic. Below 200 km a flight burns about 37% more than its ideal; on the longest sectors it is 0%. Climbing to altitude costs the same whether you then fly for twenty minutes or for four hours, so on a short sector that fixed cost is most of the flight. This is geometry, not blame. But it is the clearest pattern in the whole dataset.
A single number per airport can be false. London Heathrow is +2.9 combined — and +0.5 on departure against +5.4 on arrival. I published the split because the combined figure would have been a lie of omission, and combined figures are what this field usually publishes.
A closed sky has a fuel bill, and you can read it from the ground. Gdańsk Lech Wałęsa to Riga flies 29% further en route than the straight line, because the straight line crosses Kaliningrad; 208 of the ranked routes have a direct path through airspace that is closed or avoided. None of it is anyone's inefficiency, and all of it is burnt.
Most of this table is not a ranking. Half the routes sit within a few points of the norm, and at the head of the airport table ten positions can be separated by 1.7 points. Only the extremes mean anything.
The biggest thing these figures leave out is contrails. What I would most like is to be told where the method is wrong.
— co2gap
Check it yourself
Every figure here can be recomputed from scratch: the data is public, the method is documented in full and the code is open.
Method and limitations
How the comparison is built. The ideal flight uses the optimal altitude for the great-circle distance, not for the distance actually flown: otherwise a detour would quietly earn itself a better cruise level. The wind along the real track is sampled along the path and weighted by distance.
Stated limitations. (1) Taxi and ground movement are outside every figure here, on both sides of the comparison: the fuel model is a model of flight and an aircraft on the ground is outside its domain, and the reference trajectory never taxis. The CO₂ total is therefore CO₂ in flight and understates what the traffic emitted. (2) We measure the gap from a theoretical optimum, not avoidable inefficiency. (3) The period is 2026 only, January to July: no year-on-year comparison. (4) Four days are missing inside the period, absent at the source; the window ends on 20 July because the four days after it have flight data but no wind data yet. (5) 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, and their ordering is not meaningful. (6) Routes flagged ⚑ cannot fly the direct path: 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. (7) No data about an individual flight or aircraft is published: every row aggregates at least 10 flights. (8) ADS-B coverage does not include oceanic sectors.
Full methodology, validations and external comparisons →
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 choices behind them are written down so that people who know the field can check them.
Found a mistake, or named here and want to reply? hello@co2gap.org — corrections and replies are published on this site, in full and unconditionally.
Operate an airport, an ANSP or an airline? The detail behind these figures for your own traffic — by hour, by origin, by aircraft type, month by month — exists in the pipeline and is not published here. Same address. The rules that keep that separate from what appears on this page are written down under independence.