Methodology & sources
Every number, and where it comes from.
Contrails turns one flight into figures you can feel — tree-years, trees to plant, meat-free days, "same trip by train". None of it is worth anything if the numbers aren't honest. So here is the whole model, in the open.
Our guiding rule is systemic first, personal second; awe over dread; and never a shock without an action. We are transparent about what is simulated, what is modelled, and what is sourced. Every constant below lives in one file, flight-data.js, and is quoted here exactly.
What's real, what's simulated
simulated The flights on the globe. They are not a live feed. Routes connect about 75 real major airports at their real coordinates, weighted by hub size, and each is flown along a true great-circle path. We do this so the picture is representative and always available, without depending on a third-party tracking API.
modelled The planes-in-the-air count. It follows the real daily rhythm — roughly 8,000 overnight to 20,000 at the UTC daytime peak — consistent with ICAO / EUROCONTROL and live-tracking figures, but the individual aircraft are generated.
sourced The airports and distances. Real IATA coordinates; distance is the great-circle (haversine) distance on a 6371 km-radius sphere — the same shortest path an airliner broadly follows.
The emissions model
Per-passenger CO₂ is estimated the way ICAO's and myclimate's calculators do it: distance drives a band factor that already amortises the fuel-heavy takeoff and climb over the trip. Short hops are worse per kilometre; long-haul cruise is more efficient per kilometre.
| Trip distance | Factor | Reading |
|---|---|---|
| under 1,500 km | 0.156 | kg CO₂ / passenger-km |
| 1,500–4,000 km | 0.112 | kg CO₂ / passenger-km |
| 4,000 km and up | 0.098 | kg CO₂ / passenger-km |
Cabin class scales the result, because a premium seat occupies more of the aircraft's floor and payload:
| Cabin | Multiplier |
|---|---|
| Economy | ×1.0 |
| Premium economy | ×1.5 |
| Business | ×2.9 |
So the plain CO₂ estimate is simply:
CO₂ (kg) = distance × band factor × cabin multiplier
The ×1.9 for non-CO₂ warming
CO₂ is not the whole story in the sky. Contrails, water vapour and nitrogen oxides released at cruise altitude cause extra, shorter-lived warming. To reflect that, we show a radiative-forcing (RF) figure at ×1.9 alongside the CO₂ number — never baked silently into it. We chose 1.9 deliberately: it sits at the conservative end of the roughly 1.7–3 range in the literature (Lee et al., 2021), so we are more likely to understate than to overstate.
The global counter
The live tonnes-of-CO₂ counter runs at 31.7 tonnes per second — that's global aviation's roughly 1 gigatonne of CO₂ per year spread evenly across the seconds. It is a scale-setting figure, not a real-time reading.
Turning CO₂ into things you can feel
Trees: two honest numbers, not one comforting one
A single mature broadleaf absorbs about 22 kg of CO₂ a year. But a seedling planted today takes 15–20 years to get there, and not all of them survive. We refuse to pretend a newly planted tree cancels a flight overnight, so we show two things:
- Tree-years — the honest unit:
CO₂ ÷ 22. It says how many years of a mature tree's work your flight represents. - Trees to plant — the practical one: a seedling's cumulative uptake over its first 20 years (a linear ramp to 22 kg/yr ≈ 220 kg), halved for realistic ~50% survival, gives about 110 kg per tree. So trees to plant is
ceil(CO₂ ÷ 110).
Meat-free days
Switching from a high-meat to a plant-based day saves roughly 3.4 kg CO₂e (derived from Scarborough et al., 2014, University of Oxford — high-meat ≈ 7.2 vs vegetarian ≈ 3.8 kg CO₂e/day). Meat-free days = CO₂ ÷ 3.4. It's a tangible everyday lever, offered as agency, not instruction.
Same CO₂ by train
Rail is the honest alternative for many trips. We use an EU-average electric-rail figure of 0.033 kg CO₂ per passenger-km. On short trips (< 2,500 km) we show the same journey by train and the percentage saved; on long-haul, where no train exists, we translate the flight's CO₂ into the equivalent train distance — often several times around the Earth.
Everyday comparisons
| Yardstick | Value | |
|---|---|---|
| Average petrol car | 0.17 | kg CO₂ / km |
| Typical driving | 1,000 | km / month |
| Gas-heated home | 2,500 | kg CO₂ / year |
| 1.5 °C per-capita budget | 2,300 | kg CO₂ / year |
The budget line is the sharpest: a single long-haul return can equal an entire year's fair share of a 1.5 °C-compatible carbon budget.
Frequently asked
Are the planes real live flights?
No — the globe is a simulation, not a live feed. It connects ~75 real airports at true coordinates, weighted by hub size, flown along great-circle paths. The count tracks the real daily rhythm (~8,000 overnight to ~20,000 at peak), but individual flights are generated, not tracked.
Why multiply CO₂ by 1.9?
Because CO₂ is only part of aviation's warming — contrails, water vapour and NOₓ at altitude add more. The ×1.9 radiative-forcing multiplier captures those non-CO₂ effects, shown alongside the plain CO₂ number. 1.9 is a conservative pick within the ~1.7–3 range (Lee et al., 2021).
Tree-years vs trees to plant — what's the difference?
Tree-years is the honest unit: CO₂ ÷ 22 kg (a mature tree's yearly uptake). Trees to plant is practical: a seedling takes 15–20 years to mature and not all survive, so one offsets ~110 kg over 20 years — trees to plant = ceil(CO₂ ÷ 110).
How much CO₂ does a flight emit per passenger?
Great-circle distance × band factor (0.156 / 0.112 / 0.098 kg per pax-km by distance, economy, CO₂ only) × cabin multiplier (economy 1, premium 1.5, business 2.9). The ×1.9 non-CO₂ warming figure is shown separately.
Sources
- Per-passenger CO₂ band factors & distance amortisation — methodology of the ICAO Carbon Emissions Calculator and the myclimate flight calculator.
- Radiative forcing (×1.9, non-CO₂ effects) — Lee et al. (2021), "The contribution of global aviation to anthropogenic climate forcing for 2000 to 2018," Atmospheric Environment — doi:10.1016/j.atmosenv.2020.117834.
- Dietary emissions (meat-free day) — Scarborough et al. (2014), "Dietary greenhouse gas emissions of meat-eaters, fish-eaters, vegetarians and vegans in the UK," Climatic Change — doi:10.1007/s10584-014-1169-1.
- Global aviation ≈ 1 Gt CO₂/yr — Our World in Data — CO₂ emissions from aviation (drawing on IEA and IPCC figures).
- Traffic rhythm (~8k–20k aircraft) — ICAO / EUROCONTROL air-traffic statistics, cross-checked against public live-tracking counts.
- Rail emission factor (0.033 kg/pax-km) — European Environment Agency average for electric rail; national grids with fossil-free electricity (e.g. Finnish rail) are markedly lower.
- Tree carbon uptake (~22 kg/yr; ~110 kg / 20-yr with survival) — standard urban-forestry uptake figures, discounted for the seedling growth ramp and realistic survival.
See it on a real flight. Look up any route on the globe and watch these numbers land — then plant, take the train, or just fly a little less.
Open the interactive globe →