BTS Airline On-Time Performance Scraper
Pricing
from $3.00 / 1,000 results
BTS Airline On-Time Performance Scraper
Scrape US DOT Bureau of Transportation Statistics On-Time Performance data. Get airline on-time rates, delay-cause breakdowns, cancellation and diversion rates by carrier, route, year, and month.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
14 days ago
Last modified
Categories
Share
Get official US airline on-time performance statistics straight from the US Department of Transportation's Bureau of Transportation Statistics (BTS) — the same data every US airline is legally required to report to the federal government every month. This actor turns the raw monthly BTS flight-level file into ready-to-use summaries: on-time rate, average delay, cancellation and diversion rates, and a full delay-cause breakdown — by airline, by route, or by airport.
What this actor does
- Computes carrier month summaries — one airline's entire on-time performance for one month, network-wide
- Computes route month summaries — one airline on one specific origin → destination pair, for one month
- Ranks an airline's top routes by flight volume for a month, each with full on-time stats
- Ranks the top carriers at an airport by flight volume for a month, each with full on-time stats
- No login, API key, cookies, or proxy required — reads BTS's public monthly data file directly
- Empty fields are omitted (e.g. a group with zero cancelled flights omits the cancellation-cause fields entirely, rather than showing fake zeros)
Output per summary record
carrierCode/carrierName— reporting airlineoriginAirport/originCityName/originStateName— departure airport (route / top-carriers-at-airport modes)destAirport/destCityName/destStateName— arrival airport (route / top-routes modes)year/month/monthNamerank— flight-volume rank (top-routes / top-carriers modes only)totalFlights— scheduled flights in the groupcancelledFlights/cancellationRatecancelledByCarrierCount/cancelledByWeatherCount/cancelledByNASCount/cancelledBySecurityCount— cancelled flights by BTS's reported cancellation reason (only present when BTS recorded a cause code; BTS didn't start collecting this code until June 2003)cancelledByCarrierShare/cancelledByWeatherShare/cancelledByNASShare/cancelledBySecurityShare— each reason's share (%) of cancelled flightsdivertedFlights/diversionRateonTimeFlights/delayedFlights/onTimeRate— a flight is on-time if it arrived within 15 minutes of schedule, per DOT convention (cancelled/diverted flights excluded)avgDepDelayMinutes/avgArrDelayMinutesavgTaxiOutMinutes/avgTaxiInMinutes/avgAirTimeMinutes/avgDistanceMilestotalCarrierDelayMinutes/totalWeatherDelayMinutes/totalNASDelayMinutes/totalSecurityDelayMinutes/totalLateAircraftDelayMinutes— total delay minutes attributed to each cause (only present when at least one flight reported delay-cause minutes)carrierDelayShare/weatherDelayShare/nasDelayShare/securityDelayShare/lateAircraftDelayShare— each cause's share (%) of total attributed delay minutessourceUrl— the official BTS On-Time Performance portalsourceDataUrl— the exact monthly government data file this record was computed fromrecordType—carrierMonthSummary/routeMonthSummary/topRouteByCarrier/topCarrierByAirportscrapedAt— when this actor computed the record
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | carrierMonthSummary | carrierMonthSummary / routeMonthSummary / topRoutesByCarrier / topCarriersByAirport |
carrier | string | WN | Reporting carrier code (mode=carrierMonthSummary/routeMonthSummary/topRoutesByCarrier). Dropdown of ~34 current + historical US airlines |
carrierCodeOverride | string | – | Raw BTS carrier code, used instead of carrier if set (for codes not in the dropdown) |
originAirport | string | – | Origin airport code (mode=routeMonthSummary/topCarriersByAirport). Dropdown of ~115 major US airports |
originAirportOverride | string | – | Raw 3-letter airport code, used instead of originAirport if set |
destAirport | string | – | Destination airport code (mode=routeMonthSummary) |
destAirportOverride | string | – | Raw 3-letter airport code, used instead of destAirport if set |
year | string | 2025 | Reporting year, 2000–present |
month | string | 12 | Reporting month, 1–12 |
maxItems | integer | 20 | Cap on ranked records returned (mode=topRoutesByCarrier/topCarriersByAirport), 1–200 |
Example: Southwest Airlines network-wide summary
{"mode": "carrierMonthSummary","carrier": "WN","year": "2025","month": "6"}
Example: on-time performance for a specific route
{"mode": "routeMonthSummary","carrier": "DL","originAirport": "ATL","destAirport": "JFK","year": "2025","month": "6"}
Example: an airline's busiest routes that month
{"mode": "topRoutesByCarrier","carrier": "AA","year": "2025","month": "6","maxItems": 25}
Example: which carriers dominate an airport
{"mode": "topCarriersByAirport","originAirport": "ORD","year": "2025","month": "6","maxItems": 15}
Use cases
- Travel research — compare airlines' on-time reliability before booking
- Route planning — check historical delay stats for a specific origin-destination pair
- Aviation journalism — source official DOT statistics for on-time performance stories
- Competitive analysis — benchmark one airline's operational performance against its historical trend
- Airport operations research — see which carriers drive the most volume and delays at a given airport
- Academic / policy research — build datasets of delay-cause attribution (weather vs. carrier vs. air-traffic system)
FAQ
Do I need an API key or to log in to BTS? No. This is fully public US government data — no account, cookies, or API key needed.
Is this actor affiliated with the US DOT or BTS? No. This is an independent, third-party actor that reads BTS's public monthly data files. It is not affiliated with, endorsed by, or operated by the Department of Transportation.
What does "on-time" mean here?
A flight counts as on-time if it landed within 15 minutes of its scheduled arrival time — the US DOT's standard definition. Cancelled and diverted flights are reported separately (cancellationRate / diversionRate) rather than folded into the on-time rate.
Why don't I see delay-cause fields on every record? BTS only records carrier/weather/NAS/security/late-aircraft delay-minute breakdowns for flights delayed 15+ minutes. A group of entirely on-time flights has no delay minutes to attribute, so those fields are omitted rather than shown as zero.
Why don't I see cancellation-reason fields on every record?
BTS only assigns a cancellation reason code to flights that were actually cancelled, and only started collecting that code in June 2003. A group with nothing to attribute simply omits the cancelledBy* fields rather than showing fake zeros.
Can I get data for a specific flight number or specific day? No — this actor works at the monthly aggregate level (whole carrier, whole route, or top-N rankings), matching what BTS publishes as its downloadable summary-friendly data.
How far back does the data go? BTS calls this series "1987-present", but the actual downloadable monthly files only go back to 2000 — that's the earliest year selectable in this actor.
How fresh is the data? BTS publishes each month's file roughly 2 months after the month ends — for example, January data usually appears in March. If you request a month BTS hasn't released yet, the run finishes with 0 records and a status message explaining why; try an earlier month.
What happens if a route or carrier had no flights that month? The run finishes successfully with 0 records rather than erroring — only routes/carriers that actually operated in the requested month have data.
Does this cover international flights? No — this dataset covers US-certificated air carriers operating domestic (and some US-to-territory) flights only; it does not include foreign carriers or international-only routes.