Travel-Tech Practice · T3
Which routes delay the most, how delay patterns differ by airline, and how delays trend by season and time of day — analyzed from a modeled domestic flight dataset (8,000 flights).
Average delay per flight (minutes), all 15 tracked routes, ranked highest to lowest.
Average delay (minutes) per flight, by airline. Hover or focus a bar for on-time and cancellation detail.
Average delay (minutes), Dec–Feb through Oct–Nov.
Average delay (minutes) — delays cascade later in the day.
Top 8 routes by average delay minutes, broken out by season. Darker = worse.
Reading it: Delhi-origin routes (DEL-GOI, DEL-BOM, DEL-BLR, DEL-CCU, DEL-PNQ, DEL-HYD) spike in Winter — the modeled North Indian fog effect. Coastal/monsoon-sensitive routes (BOM-COK, COK-BOM, DEL-GOI) spike separately in Monsoon.
Every number on this page is synthetic. Here's the calculation, and the reasoning behind each choice, in full.
Real flight delays are right-skewed with a hard floor at zero: most flights are on time or a
few minutes late, and a smaller share run very late, with a long tail rather than a symmetric
spread. A normal distribution doesn't fit that shape — it puts real probability mass on
negative delays (meaningless) and doesn't produce the occasional very-late outlier a fleet
actually sees. A gamma distribution has both properties by construction: it's
bounded at zero, and its two parameters (shape k, scale θ) control
how peaked vs. long-tailed the curve is — so it was the right family to draw from, not the
default choice.
For every one of the 8,000 simulated flights:
| Airline (fictional) | Type | Reliability index |
|---|---|---|
| BlueSky Air | Full-service | 0.75 (best) |
| IndiFly | LCC | 1.00 |
| Skyline National | Full-service | 1.15 |
| Metro Express | LCC | 1.25 |
| Coastal Wings | Regional/turboprop | 1.35 (worst) |
| Route | Congestion term (min) | Monsoon-sensitive | Fog-sensitive |
|---|---|---|---|
| DEL-BOM | 9 | — | Yes |
| DEL-BLR | 7 | — | Yes |
| DEL-GOI | 7 | Yes | Yes |
| DEL-HYD | 7 | — | Yes |
| DEL-CCU | 6 | — | Yes |
| DEL-AMD | 6 | — | Yes |
| DEL-PNQ | 6 | — | Yes |
| BOM-BLR | 6 | — | — |
| BOM-COK | 5 | Yes | — |
| COK-BOM | 5 | Yes | — |
| BLR-HYD | 4 | — | — |
| MAA-CCU | 4 | — | — |
| BLR-COK | 4 | Yes | — |
| HYD-MAA | 4 | — | — |
Not derived from any real source — chosen, then iterated. The first draft used larger gamma parameters and produced a 48.9% on-time rate, implausible for any real domestic operation (most real airlines worldwide cluster somewhere in a 70–85% range). I scaled the base gamma parameters and the congestion multiplier down until the fleet-wide on-time rate landed at 84.4% — inside a plausible range — while preserving the relative shape of every effect: which season is worst, which route is worst, that night departures run later than morning ones. The absolute numbers are calibrated to look plausible; the relative patterns are what the model was actually built to produce, and are the point of the exercise.
It doesn't fit real distributional parameters from any published dataset — there wasn't one available in this environment. It doesn't model flight-to-flight correlation (a delayed inbound aircraft delaying the same tail number's next outbound leg) — a real airline operations model would need that, and it's a materially harder problem. This generates each flight independently; it's built to produce the aggregate patterns a dashboarding exercise needs, not to be an operations simulator.
Full source: projects/flight-delay-dashboard/generate_dataset.py and
analyze.py in the repo — every number above is reproducible from those two files.