Inspiration

Contrails look harmless, but in cold, humid air they spread into cirrus clouds that trap heat, and the warming from aviation beyond its CO₂ may be as large as the CO₂ itself. The fix is surprisingly small. A short altitude change can often carry a flight out of the humid layer where persistent contrails form. The problem is visibility: airlines can't easily see those layers, and rocket launches and reentering satellites release particles into the same part of the atmosphere with almost no tracking. Nobody owns the sky above 8 km, so we wanted to give it a ledger. [Add one or two sentences on why this matters to you.]

What it does

AirLedger is a live map that predicts where aircraft contrails will form and persist, prices the altitude change that would avoid them, and puts rocket launches and satellite reentries on the same climate scale.

  • Shows flights across a humid layer and flags which ones are making persistent contrails
  • Offers reroute options in steps of 2,000 ft, with the extra fuel cost next to the warming avoided
  • Adds launches and reentries to the same map, so aviation and space can be compared directly
  • Scores everything in tonnes of CO₂ equivalent over 100 years:

$$\text{tCO}2\text{e} = 3.16\, m\text{fuel} + \frac{EF_\text{contrail}}{1.48 \times 10^{12}} + P_\text{particles}$$

Here $m_\text{fuel}$ is fuel burned in tonnes, $EF_\text{contrail}$ is the contrail's energy forcing in joules, and $P_\text{particles}$ is the stratospheric particle term for launches and reentries.

  • Matches observed contrails to the flights that likely made them, so warming can be attributed to carriers and aircraft types

It is built for three audiences: airline operations and sustainability teams who can reroute, regulators and researchers who need one shared metric, and journalists and watchdogs who want accountability.

How we built it

  • Frontend: a static site with no build step, written as ES modules. It has a map, a flight rail with reroute options, a score panel, a ledger, and a lab view, with light and dark themes.
  • Demo mode: the frontend simulates a full night with a humidity field, a fictional fleet, and space events, so it works with no accounts or downloads.
  • Backend: FastAPI in Python, serving the API and the frontend.
  • Live mode: OpenSky for aircraft tracks, ERA5 through pycontrails for temperature, humidity, and winds, the CoCiP model for contrail formation, lifetime, and energy forcing, and the Contrails.org API for observed contrails and attribution.
  • Reroutes: altitude changes only, in 2,000 ft steps that keep the flight level rules and respect each aircraft's ceiling.
  • Experimental: a module that uses cloud shape and Google's OpenContrails data to tell contrails from natural cirrus.
  • Tests: a pytest suite for the scoring, rerouting, attribution, and shape feature logic.

Challenges we ran into

  • Contrail science is uncertain. Warming depends on conditions that are hard to measure, so we kept the model simple and stated our assumptions instead of claiming false precision.
  • Matching contrails to flights is hard. Contrails drift with the wind and spread over time, and satellites see them at an angle, so matches are probabilities.
  • Data lag and gaps. ERA5 trails real time by about 5 days, and flight tracks have gaps.
  • Space impacts have little data. No published particle forcing factor exists for launches and reentries yet, so those values are placeholders.
  • Live data is not fully tested. The live pipeline has not been run against the real services yet, so the demo mode carries the experience.
  • Getting it online. Connecting the backend, a database, and a hosted site took more debugging than we expected.

Accomplishments that we're proud of

  • A complete full stack app, from simulated data to a map, reroute pricing, and a shared score
  • One climate scale that compares flights with rockets and reentries, which we haven't seen elsewhere
  • A reroute view that shows the cost of avoiding contrails next to the warming it avoids
  • A backend designed around real sources, including OpenSky, ERA5, pycontrails, and Contrails.org
  • Unit tests for the core logic, and a deployed demo that runs with no setup

What we learned

  • Contrail avoidance is a data integration problem as much as a climate science problem
  • Showing uncertainty honestly makes a tool more trustworthy, not less
  • Aviation and space share the same sky, yet nobody puts them side by side

What's next for AirLedger

  • Run the live pipeline end to end on real flights and weather, and fix what breaks
  • Check our matches against Contrails.org's own attributions and report how often they agree
  • Replace the simple fuel penalty with a per aircraft performance model
  • Use published emission factors for launches and reentries as they appear
  • Train the contrail versus cirrus classifier on labeled satellite imagery from OpenContrails

Built With

Share this project:

Updates

Submission history