ETS and CORSIA, and why there are two

Flying has more than one carbon rule, and they work in very different ways. This page shows how that happened, what the difference is, and lets you work out what an airline owes under CORSIA.

How it got like this

2012
2013
2016
2021
2024-2027
Tap a year above
Five things happened that explain why flying ended up with two rules that overlap, instead of one.

How ETS and CORSIA are different

EU / UK ETSCORSIA
How it worksThere is a limit on total carbon. Airlines buy and sell permits under it.Airlines pay for carbon above a starting line by buying offset credits.
What you pay forEvery tonne of CO2 on the flights it coversOnly the tonnes above 85% of 2019 (the starting line)
What you buyAllowances. There is only one kind, there are only so many, and they are sold on an exchange.Offset credits from approved groups (Gold Standard, Verra, ACR). Some are better than others, and prices vary.
PriceChanges every day. About €80 a tonne (EU) and £72 a tonne (UK)No one price. Roughly $5 to $20 a tonne, depending on the credit
Which flightsFlights inside the area (EU scheme: inside Europe. UK scheme: inside the UK)Flights between two countries, but only if both countries are in CORSIA
Over timeThe limit gets smaller every year, to push carbon downNo push to go below the starting line. The aim is just to not grow past 2019
The sumTonnes × 1. One allowance for every tonne. Simple.Tonnes × the growth factor. You pay for a part, not all of it
The bit people get wrong: CORSIA covers the whole world, but that does not make it cost more. It only charges for growth above 2019, and its credits are much cheaper than EU allowances. So per tonne, CORSIA costs a lot less today, even though the EU scheme covers far fewer flights. The EU's new 5,000km plan is built to sit on top of CORSIA. If both rules cover the same flight, the airline takes off what it already paid for CORSIA. So nobody pays twice for the same tonne.
Everything below here is a draft. It is not finished yet. I checked the formula and the 2024 numbers against ICAO's own sum, and they match to 7 decimal places (see the example). What I have not checked yet: some tricky cases about which country pairs count, the discount for clean fuel, and the new sum that starts in 2030. It stays a draft until a compliance expert has looked at it.

Work out what an airline owes

Only count flights between two countries that are both in CORSIA. Not all of the airline's flights.
2021 to 2029 all use the whole-industry growth factor. 2024 uses ICAO's real number. Later years are guesses for now, because ICAO only puts out each year's number the year after.
Growth factor for this year-
FormulaOwed = airline's tonnes × growth factor
Tonnes the airline has to offset -

How the growth factor is worked out

The formula

SGF_y = (SE_y − SE_B,y) / SE_y

SE_y is all the CO2 from every airline, on flights between CORSIA countries, in that year. SE_B,y is the starting line: 85% of the CO2 on those same flights in 2019. ICAO works this out once a year for the whole industry. It is the same number for every airline.

Example, using ICAO's real 2024 numbers

Starting line (85% of 2019): 305,522,071 t CO2. Real CO2 in 2024 on the same flights: 361,159,641 t CO2.

SGF_2024 = (361,159,641 − 305,522,071) / 361,159,641 = 0.15405257. That is the same number ICAO put out. So an airline with 50,000 tonnes on CORSIA flights in 2024 has to offset 50,000 × 0.15405257, which is about 7,703 t CO2.

What changes in 2030

From 2030, each airline's own growth starts to count too, not just the whole industry's. It counts for 20% from 2030 to 2032, and 70% from 2033 to 2035. This calculator only does the sum from before 2030 for now. I have not built the new part yet.

Discount for clean fuel (not built yet)

If an airline uses clean fuel (SAF) that meets CORSIA's rules, it can take that off what it owes. For normal jet fuel, 1 kg burned makes 3.16 kg of CO2. This calculator does not take off the discount yet. So the answer is the most an airline could owe, not the final amount.

Growth factor for each year

YearSGFStatus
2021 to 2023 (trial)About 0 (joining was a choice, and COVID reset the starting line)Out
20240.15405257Out (ICAO, 2025)
2025 and laterNot out yetICAO puts out each year's number the year after