Back to Projects

Delayed Propagation — ASI Hackathon

Pricing the ripple effects of a temporary flight restriction, flight by flight, in real dollars.

🏆 Invited to interview with the ASI team  |  ASI Hackathon: Hacking the Fourth Dimension

Next.jsTypeScriptLeafletOpenSky ADS-BFastAPI

Overview

ASI's constraint: build an aerospace project using their live flight-tracking data. A temporary flight restriction closes airspace for a launch, and most dashboards just show a red zone with no dollar figure and no ranked options. Delayed Propagation turns that red zone into a live cost, using ASI's real flight data to work out which flights actually got disrupted and what it cost them.

The Paradox

On May 22, 2026, a Starship launch closed part of the Kingston Flight Information Region. Weather at KFLL, KMIA, and MKJP was clear VFR — every weather dashboard was green. JetBlue flight JBU1575 flew toward the closure anyway, U-turned over the Bahamas, and returned to Fort Lauderdale. Clear skies, still grounded. That flight is the case study the whole tool is built around.

How It Works

  1. Overlay the TFR polygon against live and historical ADS-B flight tracks.
  2. Geometrically detect which flights the closure actually affects — not every flight in the region, only the ones whose path crosses the zone.
  3. Price the real disruption from published rates: aircraft block-time delay, passenger value of time, reaccommodation, diversion/turnback penalty, crew overnight.
  4. Price three counterfactuals — hold affected flights airborne, divert everyone around the zone, or preempt by delaying departures on the ground — and flag the cheapest.
  5. Expose a chatbot grounded strictly in the computed numbers, so it can explain the pricing but can't invent figures.

Tech Stack

  • Map & simulation: Next.js, Leaflet, waypoint interpolation for flight-path replay
  • Live data: OpenSky Network ADS-B (anonymous), with a synthetic fallback if the feed is down
  • Pricing: rates sourced from A4A ($100.76/block-min), FAA/DOT value-of-time tables, EUROCONTROL diversion penalties
  • Chat: grounded assistant with a cached-fallback pattern so it never breaks on stage

My Contributions

Five-person team. I owned the map and simulation layer — the initial Next.js app that everything else was built on top of.

  • Built the airspace map, flight markers, TFR zone rendering, and simulation controls from scratch
  • Wrote the flight-path simulation library — waypoint interpolation and bearing math driving the animated tracks
  • Wrote the OpenSky ADS-B integration, including a CORS proxy route so the browser could pull live tracks directly
  • Built a 178-line Playwright end-to-end harness to catch regressions across the map/sim layer during the build
  • Authored two design specs the team built against — an airspace-map architecture doc and the chatbot grounding/fallback spec

Challenges

  • The hero flight initially priced at $0 — the cost model used extra distance flown vs. the great-circle path, and because JBU1575's U-turn happened before it reached Kingston, flown distance came out under the direct distance and clamped to zero. Fixed by re-modeling the disruption as wasted block time plus a turnback penalty instead.
  • Mid-hackathon architecture reversal: a complete FastAPI backend was built test-first, then hand-ported to TypeScript API routes so the whole app could deploy as one service instead of two.
  • Three independent fallback layers (cached chat responses, synthetic ADS-B data, static rate tables) so nothing could break live on stage.

Project Media

Delayed Propagation ops console — pricing panel, map, intelligence feed, and timeline showing the fully accrued $351,302 disruption cost
The ops console — pricing left, map center, live intelligence feed right, timeline bottom.
Airspace map showing JetBlue flight JBU1575's U-turn track over the Bahamas around the Kingston TFR zone
JBU1575's U-turn over the Bahamas, animated against the TFR closure zone.

Links

Tools & Methods

Next.jsTypeScriptLeafletOpenSky ADS-BFastAPIPlaywright

Built at the ASI Hackathon: Hacking the Fourth Dimension.