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
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
- Overlay the TFR polygon against live and historical ADS-B flight tracks.
- Geometrically detect which flights the closure actually affects — not every flight in the region, only the ones whose path crosses the zone.
- Price the real disruption from published rates: aircraft block-time delay, passenger value of time, reaccommodation, diversion/turnback penalty, crew overnight.
- Price three counterfactuals — hold affected flights airborne, divert everyone around the zone, or preempt by delaying departures on the ground — and flag the cheapest.
- 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


Links
Tools & Methods
Built at the ASI Hackathon: Hacking the Fourth Dimension.