About the data
Everything here comes from the US Bureau of Transportation Statistics' T-100 segment data, 1990–2025. It is easy to read more into it than it says, so this page sets out what each number means and where the data has gaps.
Routes are one-way
Each row of T-100 is one nonstop flight segment in one direction, from an origin airport to a destination airport. A route page for ATL–LAX shows flights from ATL to LAX; the flights back are the route LAX–ATL. An airport's page counts flights from that airport, and its passenger figure is people departing it, not arriving.
Nearly every busy route has a return: of airport pairs with at least 100 departures in a year, 99% also have flights the other way. Counting every pair, however small, only about 71% do. The ones without a return are mostly:
- Loops and triangles. A small plane can fly PDX–Newport, Newport–Corvallis, Corvallis–PDX (about 500 flights each in 2019) instead of out and back, so each leg has no reverse.
- Cargo rotations. In 2019 FedEx flew Shanghai to Memphis 313 times and never Memphis to Shanghai: its Memphis departures for Asia went to Anchorage (988), Tokyo (275) and Seoul (157). Long cargo itineraries often go round the world rather than back the way they came.
- Tech stops. A landing to refuel (a tech stop, with nobody or nothing loaded or unloaded) is reported as a segment of its own. If the outbound flight stops somewhere to refuel and the return flight stops somewhere else, the data shows four different pairs, none of them with a reverse.
- Charters and positioning flights, which often fly empty in one direction.
T-100 only includes flights with a US airport at one end. For an airport outside the US, only its US routes appear: Heathrow's page lists its flights to and from the US, not to Paris. Flights between two foreign airports are not in the data at all, even by US airlines.
Freight-only and belly cargo
BTS gives each segment a service class. Scheduled and non-scheduled passenger flights (classes F and L) are passenger flights, and any cargo they carry in the hold is belly cargo. All-cargo flights (classes G and P) are freight-only, flown by freighter aircraft. The charts' "passenger flights", "freight flights" and "all flights" options mean exactly these. "Freight" totals on a passenger flight are belly cargo; a freight-only flight has essentially no passengers.
Freight and mail are separate columns in the data, and the site shows freight only, not mail. The data is in pounds; the site converts to short tons (2,000 lb), the US ton.
What the numbers measure
- Departures are flights actually performed (BTS also records those scheduled, which the site does not use).
- Seats are the seats available on those flights, and passengers are those carried. Load factor is passengers divided by seats.
- Passengers count each leg. A segment is a nonstop flight, not a journey. Someone flying Seattle–Denver–Boston is counted once on each leg, and counted again going home. Passenger totals therefore are not numbers of trips, and an airport's total includes people connecting through it.
- Distance is the great-circle distance between the airports, in miles. The aircraft pages group it into under 500, 500 to 1,500, 1,500 to 3,000 and 3,000 or more.
- Flight times (air time, and ramp to ramp) are totals for the month, so the average is that total divided by departures. A zero means not reported, not an instant flight: Concorde and some routes have no times at all.
- Routes with fewer than 12 departures in a year are hidden on the route charts and the map, to keep out one-off charters and positioning flights.
How things are grouped
- Airports and city markets. BTS gives each airport a city market, so that New York's three airports, or Tokyo's Haneda and Narita, can be read as one city. Where an airport's code has changed (OSA to KIX for Osaka, SEL to ICN for Seoul) the market keeps them together. The city view of an airport's routes uses this.
- Aircraft families. BTS lists hundreds of aircraft types. The site groups them into about 50 families (a 737-300 and a 737-800 are both Boeing 737s), using rules that can be read in
data/aircraft_families.csv. A few types BTS lumps together cannot be told apart, such as the 737-700 and the MAX 7. Types the rules don't recognise fall back on BTS's own groups ("Other jet", "Other turboprop") and make up well under 1% of flights. - Aircraft makers. Each type's maker is read from its name (BTS's own manufacturer field is spelled inconsistently), using the rules in
data/aircraft_makers.csv. Takeovers are not followed: McDonnell Douglas and Boeing, or Canadair and Bombardier, are counted as separate makers, so a DC-9 and an MD-11 share a maker but a DC-9 and a 737 do not. - Aircraft types. These are BTS's aircraft type groups, so "twin jet" includes business jets and "tri-jet" includes the Boeing 727, which is mostly a short-range type. "Quad jet" is BTS's four or more jet engine group: it also holds the very few six-engined aircraft, such as the Antonov An-225. The engine chart is limited to long distances, where that matters least.
- Airlines. Airlines that merged are counted as one throughout, including before the merger: Delta includes Northwest, United includes Continental, American includes US Airways, America West and TWA, Southwest includes AirTran, and Alaska includes Virgin America. The list is in
data/carrier_groups.csv. Regional airlines such as SkyWest or Republic are shown on their own, even when they fly under a major airline's name, so a major's own share is smaller than the share of the flights sold under its name.
Known gaps and breaks
- FedEx and UPS domestic flights are missing early on. UPS's domestic freight flying appears in January 2001 (about 9,000 departures a month, up from about 40) and FedEx's in October 2002 (about 25,000 a month, up from none). Both airlines' international flights are there throughout. Domestic freight in the data goes from 1.8 million short tons in 2000 to 12.3 million in 2004, while international freight barely moves. That is the data starting to cover them, almost certainly not a change in how much they flew, though the data itself does not say why. Take freight shares, and any freight trend across 2000–2003 that includes domestic flights, with that in mind.
- Missing flight times as above, and none at all for some carriers and years.
- Revisions. BTS revises recent months when it publishes a new release, so the latest figures can change slightly.
- Partial years. A year that is still in progress is only part of a year, so its totals are not comparable with a full one. The charts that rank by "the latest year" mean the latest full one.
What is and isn't covered
- Every flight with a US airport at one end, by US and foreign airlines, scheduled and charter, passengers and cargo. Domestic means both ends are in the US or its territories.
- Not covered: flights between two foreign airports, passengers' origins and destinations (only legs), fares or prices, delays or cancellations, and which airline a codeshare ticket was sold by. The airline in the data is the one that operated the flight.
Source
The data is the Bureau of Transportation Statistics' Data Bank 28DS and 28IS: T-100 Domestic Segment and T-100 International Segment. Airport names and coordinates come from OpenFlights, with some corrections of our own, and city names are BTS's. The grouping rules and the code behind the site are in the project on GitHub.
Every page links to the data it draws, under “This page's data” at the foot of the page (on a map, “This map's data” among its controls). That opens the query behind the page, filled in with the page's settings. The fields at the top of it can be changed: most queries that read an airline group take group, the group's id as it appears in its page's address (delta, united), and left empty it means every airline. The underlying segments can be browsed and filtered column by column in the t100 table, though that uses BTS's own carrier and aircraft codes rather than this site's groups and families.