Changelog

Product changelog

live

What we built, what data changed, and what we refined. Written and reviewed by the people operating Pro Flight Search.

Entries cover material user-facing changes. Small maintenance work may be grouped into a larger release note.

Improvement

TSA wait times name the checkpoint

  • Security wait on the eight-airport TSA pilot now lists each open checkpoint instead of mixing the slowest regular lane with PreCheck from a different terminal. The headline is an upper bound when waits differ.
  • The wait still publishes when the delay window has no timing yet, so an overnight hub is not silent on security. Figures are measured at the checkpoint entrance.

Data

FAA NAS cause lines and a TSA wait-times pilot

  • US airport delay pages now quote live FAA ground-stop and ground-delay programs (GDP/GS from nasstatus.faa.gov) in the hero and the liftable answer paragraph. Generic FAA delay minutes and NOTAM 'closures' stay unpublished: we already measure delay from boards, and those closures are GA restrictions, not passenger shutdowns.
  • Checkpoint wait times are live as a pilot on JFK, LGA, EWR, DCA, DTW, PDX, PHX and PHL, using each airport's own sensor JSON. Missing or closed queues are omitted, never shown as 0. Figures are checkpoint sensors; overflow past the ropes is not included. There is no national TSA map.

Improvement

Live fare search retired

  • Retired live fare search. /search is now site search only: flight status, route intelligence, airport delays and weather risk. POST /api/search, POST /api/search/stream and GET /api/route-fares/* return HTTP 410.
  • The nonstop fare box on route pages is gone, along with the fare links on route and direct-flight pages. Route schedules, carriers, delay history and weather all stay.
  • Duffel is no longer a dependency. Fare search had settled at a handful of queries a day, and dropping it removes the last paid booking-provider call from the request path.

Improvement

Europe flight data (OPDI) retired

  • Retired the OPDI Europe flight data browser (/europe-flight-data, airline and aircraft detail pages, /api/opdi/*). Those URLs now return HTTP 410.
  • Removed the legacy flight-data ingest crons and dashboard panels. Tracked taxi times at /taxi-delays (ClickHouse engine) and live delays at /global-airport-delays are unchanged.
  • The global delays board no longer shows an OPDI taxi-in column.

Improvement

LLM and generative-model paths removed

  • Retired all LLM prompt parsing (Gemini, Workers AI Llama), the Workers AI binding, AI Gateway secrets, and the popular-destinations model fallback. Search parsing is regex-only.
  • Removed GET /api/debug/llm-parse. Flight search still supports structured prompts such as CPH to CDG and dated routes from the touch picker.
  • Methodology and privacy copy now state that scores are computed deterministically from boards, weather, and position data.

Improvement

Newsroom, social automation, and dashboard AI tools retired

  • Retired the frozen Newsroom (/news, article pages, hero and OG images, RSS). HTTP 410. The KV archive can be exported with the one-off export script in scripts/ before cleanup.
  • Retired the Data Desk X poster cron, social engagement dashboard, and dashboard AI log analysis. The deterministic @proflightsearch mention reply bot remains.
  • Removed TYPEFULLY and engagement-dashboard dependencies from the worker. X posting for mentions still uses OAuth 1.0a or stored OAuth2 tokens when configured.

Improvement

24-hour delay forecast retired

  • Retired the LLM delay forecast family: the forecast page, German twin, markdown twin, social card, embed badge, and front-page experiment now return HTTP 410.
  • Removed Tavily + Gemini synthesis crons, digest emails, and the homepage forecast column. Live signals remain: global delays board, weather risk, worst airports, and airport boards.
  • Forecast digest emails have stopped. Existing subscribers can still unsubscribe from the same link in those messages.

Improvement

Fare deal pages retired

  • Retired live deal pages (/cheap-flights-live), business-class fare landings (/cheap-business-class-tickets), the internal Duffel lab (/duffel), and shareable trip summaries (/trip). They returned HTTP 410 and were removed from sitemaps and internal links.
  • Live airline fare search on /search and /api/search is unchanged: browser-triggered Duffel queries only, no cron-driven fare probes.
  • City hero images at /airport-image/{IATA} remain for flight and airport pages.

Feature

Flight delay predictor by flight number

  • Added /flight-delay-predictor: enter a flight number to see delay risk for that flight, with the reasons behind it.
  • Predictions use the flight's own recent operated record, origin airport conditions, and weather and knock-on delay signals from our board firehose.
  • Every prediction is saved and later checked against what the flight actually did, with a live Latest predictions log on the page.

Correction

Flight histories now use the full two-week window

  • Flight-number reliability summaries now read the same 14 days of retained airport-board evidence shown by the history panel.
  • Overnight arrivals now keep their destination-local calendar date, so a flight still en route cannot displace the preceding completed landing.
  • Confirmed counts, median delays, and day-by-day outcomes therefore use the correct recent operations.

Correction

Completed flights keep their last published time

  • Corrected weather-conditioned delay samples for airport boards that replace a revised time with an Arrived, In Gate, or Departed status.
  • The correlation engine now preserves the latest usable clock from a completed flight instead of treating that terminal status transition as missing timing data.
  • The correction is shared across airports and keeps actual-clock-only flight recovery analysis separate.

Correction

Airport status now distinguishes missing timing from smooth operations

  • Airport pages no longer say “Smooth” or “On Schedule” when the live feed has not returned qualified arrival or departure timing.
  • Fresh official-board clocks now fill timing gaps when the separate global delay feed omits an airport or returns counts without usable delay observations.
  • The pressure scale now reads On time, Minor, Building, and Heavy, while weather-watch summaries translate model and aviation shorthand into plain language.

Improvement

Clearer live-board search results

  • Started a limited test on Toronto arrivals, Heathrow departures, and Los Angeles arrivals with shorter titles and descriptions that more closely match the live-board search intent.
  • The underlying flight board, live data, and page tools are unchanged; comparison pages retain the existing search presentation.
  • We will compare impressions, clicks, ranking, and landing-page engagement after two complete weekly reporting updates before deciding whether to expand it.

Improvement

A personalised next step from airport delays

  • Started a limited test on the Atlanta, Heathrow, and Haneda delay pages that lets visitors enter a flight number after checking airport-wide conditions.
  • The resulting flight outlook combines tracked status, typical delay history, airport conditions, and measured weather and cancellation signals where sufficient evidence exists.
  • Unknown flight numbers now fall back to the airport's live departures board instead of sending visitors to a missing flight page.

Feature

Do delayed flights actually make up time?

  • Added a paired-flight analysis that compares the same operated flight's actual departure and arrival delays, instead of treating the two airport boards separately.
  • Published recovery by scheduled sector length and starting delay, with a cohort calculator, sample sizes, and a 100-flight publication floor.
  • Defined the result as gate-to-gate schedule recovery rather than airborne speed alone, because taxi time, routing, congestion, and timetable padding all contribute.

Feature

Cancellation risk by delay size and departure airport

  • Added resolved-flight cancellation curves for 20 to 40, 40 to 70, and 70+ minutes of posted delay, with sample sizes and separate hub, airline, and local time-of-day views.
  • Added an airport selector and a published-only comparison of where 70+ minute delays most often ended in cancellation.
  • The separate 1, 2, 3, and 4+ posted-time move curve remains visible as a counterintuitive finding: move count alone is nearly flat. Still-open flights and cells below 100 resolved outcomes do not produce a probability.

Improvement

A clearer way to report what changes

  • Added this public changelog for product features, data coverage, methodology refinements, and corrections.
  • Archived the automated aviation Newsroom. Existing article links still work, but no new stories are generated.
  • Made Eurolytics our primary website analytics platform. Plausible remains temporarily in parallel while we complete the transition.

Improvement

Production releases are now automated

  • Production builds and deployments now run through a single reviewed GitHub workflow whenever a change is merged.
  • Added cache-bypassed release verification so new versions can be checked independently of edge-cached pages.

Data

More resilient flight-number and route data

  • Added live ClickHouse fallback for flight-number pages when a flight falls outside the compact route index.
  • Improved airport and direct-flight internal links using observed search demand, while keeping sitemap coverage capped.

Data

Weather and airport-board coverage expanded

  • Expanded official airport-board collection and kept metered provider data as a fallback when an official board is unavailable.
  • Refined weather-to-delay correlation data and live operational capture used across airport pages and delay tools.