Inspiration

Booking a flight usually comes down to price and departure time. But after a few real trips, we realized that what truly ruins the experience is reliability: routes that are consistently delayed, airports that act like bottlenecks, and “good-looking” options that are actually unstable because there isn’t enough flight volume behind them.

The data exists, but it’s fragmented across different tables and not presented in a decision-friendly way. We built FlightIQ to turn official reliability statistics into something users can compare in seconds.

What it does

FlightIQ is a web app that converts official BTS (Bureau of Transportation Statistics) on-time data into a clear, explainable Route Score (0–100). Users can:

  • Filter results by month, and optionally by origin and destination airports.
  • View ranked routes with a score and supporting metrics.
  • Explore airline on-time rankings and airport on-time rankings.
  • Click any route to see a transparent score breakdown (no black-box scoring).

How we built it

We designed FlightIQ as a full pipeline: data → scoring → interactive UI.

Data

  • We use official BTS on-time datasets as the primary source for route/airport/airline reliability signals.
    This includes historical performance that supports ranking and comparison.

Scoring (Explainable by design)

  • We compute a route-level on-time signal from airport performance.
  • We then generate a composite score with a simple, interpretable formula:

[ \text{Route Score} = 0.8 \cdot \text{On-time Score} + 0.2 \cdot \text{Flight Volume Score} ]

  • The flight volume score is normalized to a 0–100 scale using percentiles under the current filters, so users can compare routes fairly within the same context.

Frontend Experience

  • The UI supports filtering, sorting, and route-level drill-down so users can understand both the score and the reasons behind it.

Challenges we ran into

  • Data joining and consistency: Official datasets are reliable, but not always “analysis-ready.” We had to standardize keys and ensure consistent route/time representations.
  • Fair comparisons: A route can look great with a small sample size. We addressed this by incorporating flight volume as part of the score.
  • Explainability vs. complexity: It’s easy to build a complicated model that nobody trusts. We intentionally kept the scoring logic simple and transparent so it can be inspected and justified.

Accomplishments that we're proud of

  • Built an end-to-end system that turns raw official statistics into an interactive reliability product.
  • Delivered a Route Score /100 that balances reliability and stability, not just “best-case” performance.
  • Implemented route drill-down explainability, showing score composition and metric contributions.
  • Added multi-level insights: route rankings, airline rankings, and airport rankings in one place.

What we learned

  • In real data products, having data is not the same as having usable data. Standardization and careful key design matter.
  • Users don’t trust black boxes. An explainable scoring system can be more valuable than a complex model if it supports clear decisions.
  • Good UI is part of the solution: ranking + filtering + drill-down makes the data actually usable.

What's next for FlightIQ

  • Add more context features (e.g., seasonal patterns, route direction effects) while keeping interpretability.
  • Improve performance for large result sets with caching and smarter server-side aggregation.
  • Expand the UI to support comparisons (e.g., compare two routes side-by-side) and shareable links for filtered views.
Share this project:

Updates