Where the numbers come from, how we compute them, and what they mean.
Everything on routeloads comes from one place: the U.S. Department of Transportation's Bureau of Transportation Statistics (BTS). It's public-domain data that every U.S. carrier is legally required to file — actual seats flown, actual passengers carried, actual fares sold. No logins, no estimates, no scraping. We just take the government's own numbers and make them readable.
Monthly seats, passengers, and departures on every nonstop segment a carrier flies. This is the source of route seat occupancy and capacity — how many seat-segments were offered and occupied.
U.S. DOT BTS · T-100A 10% sample of all airline tickets sold, giving average round-trip fares by origin–destination market. This is the source of the average fare you see on each route.
U.S. DOT BTS · DB1BReported on-time arrival rates for nonstop operations by the larger U.S. carriers. This is the source of the on-time rate — the share of flights that landed on schedule.
U.S. DOT BTS · OTPT-100 also includes the DOT aircraft-type code for performed departures. Route pages use that to show which aircraft families actually flew the market and how often.
U.S. DOT BTS · aircraft typeQuarterly carrier income statements provide operating revenue, operating profit, net income, and margins for the Industry Lab. BTS files dollar fields in thousands; routeloads converts them only for display.
U.S. DOT BTS · Form 41 P-1.2seat occupancy = passengers ÷ seats over the trailing window. Some consumer-facing route views shorten this to “load,” but it is a seat-count ratio rather than the industry's distance-weighted RPM ÷ ASM load factor. It answers “how full does this route fly?” We show it as a percentage and color it on a green→red scale — and here, greener means emptier: lower occupancy suggests more historical seat slack, while a route near 100% was packed.
This is the historical DB1B average origin-and-destination market fare, round-trip. One important caveat: DB1B was a quarterly 10% ticket sample, and it's an origin–destination figure rather than a single-segment price — so a connecting passenger's whole journey is attributed to the market, not one leg. BTS ended DB1B after 2025 Q2 and began the monthly 40% DB1C/OD40 collection in July 2025. Routeloads does not silently splice those different samples together; until the DB1C pipeline is published, treat fare panels as a historical market signal, not a current quote.
The share of that route's nonstop operations that arrived within the DOT's on-time threshold. Higher is better, so this scale runs the other way: greener means more reliable, red means a route with a history of running late.
Carrier and peer seat occupancy is always total passengers ÷ total seats, never a simple average of monthly percentages. A carrier's “peer” line excludes that carrier itself. In airline dossiers, mapped fare and on-time values are all-carrier market/route signals joined to the selected carrier's capacity network; they are exposure proxies, not that airline's own ticket prices or operating performance. Fare signals are weighted by the carrier-network passenger volume represented by each route, while on-time signals are weighted by departures rather than seats.
The Industry Lab aggregates T-100 by reporting/operating certificate, not by the passenger-facing brand or parent company. A regional affiliate that files under its own certificate is not silently rolled into a mainline carrier. Conversely, Form 41 is also certificate-level financial reporting, and the legal entity represented there may not line up perfectly with a brand, ticker, or T-100 network slice.
For the network panels, seat occupancy = passengers ÷ seats. This answers “what share of seats were occupied?” but it is not the standard industry load factor based on revenue passenger-miles ÷ available seat-miles (RPM ÷ ASM). Average gauge is seats per performed departure; average stage length is ASM ÷ seats. Airport concentration uses the Herfindahl-Hirschman Index, the sum of squared carrier passenger shares within the displayed slice.
Form 41 P-1.2 supports carrier-level revenue, operating profit, net income, and margin comparisons. It does not disclose route revenue or route costs, so routeloads does not label any route “most profitable” or infer route profitability from fares, occupancy, or carrier-wide margins.
Every Industry Lab panel states its applicable period: annual growth uses full-year 2025 versus 2024, gauge change uses 2021–2025, multi-year network panels say “loaded T-100 history,” and Form 41 shows its latest common filed quarter. DB1B and on-time panels elsewhere retain their own release periods. These clocks should not be assumed to align, and the interface does not replace them with a misleading site-wide date.
unoccupied seat-segments = seats − passengers across the selected historical records. This is not a count of seats that are open or bookable today, and it is not a typical-flight figure unless it is divided by the comparable performed departures. A connecting traveler is counted on each T-100 segment flown.
Aircraft cards are based on performed departures by aircraft type in the recent T-100 aircraft window. We combine both directions of the route, rank by departure share, and show average monthly frequency plus average seats per departure. When carrier-level aircraft data is available, the photo first tries to match the specific model and dominant operator — for example 737-900ER vs 737 MAX 9, A321 vs A321neo, 787-9 vs 787-10, or 757-200 vs 757-300 — before falling back to a representative aircraft-family image. The photo is still not a live tail-number prediction for a specific flight.
The route-card aircraft photos are sourced from Wikimedia Commons and optimized for display. Each photo was cropped, lightly color-balanced, and compressed to WebP/JPEG. Airline names and liveries remain trademarks of their owners.
The data is monthly, and the current all-carrier read model spans 2018 through 2026, covering more than 70,000 route pairs assembled from directional T-100 segments across 1,700+ airports. Counts vary with the selected time window because seasonal service appears only in the months it operated. Because carriers file with the DOT on a lag, the latest complete month trails the calendar by a few months. That's normal for BTS data: it's the price of using filed, audited numbers instead of guesses. When a fresh month is published, it flows straight through.
Because carriers file on a lag, a route's newest real month is always a little behind the calendar. To bridge that gap, some views also show a modeled estimate for the months BTS hasn't published yet, plus a short look ahead. These are clearly labeled nowcast (the recent, not-yet-filed months) and forecast (the future) — and they are never blended into the filed numbers.
The model is additive Holt-Winters seasonal smoothing run on each slice's own monthly history: it learns the level, the trend, and the month-to-month seasonal shape (summer peaks, winter troughs) and projects them forward. Around every estimate we draw an 80% band sized from the model's own recent error — wider when a route is noisy or sparse, tighter when it's steady — and the band widens the further out we reach.
A nowcast is an estimate, not a filing. We only nowcast the realistic reporting gap; if the underlying data is ever unusually old, months past that window are flagged as extrapolated rather than passed off as the present. The moment BTS publishes the real month, the filed number replaces the estimate.
This is historical monthly data, not live availability — and it's worth being clear about the edges:
That's the whole recipe — public DOT filings, a few honest formulas, and a color scale where greener means emptier, cheaper, and more reliable. Now go put it to work: