Datadory notebook
BTS T-100 Cargo Data Download: Air Freight by Lane, Delivered as Rows
Datadory delivers air freight & logistics data covering BTS T-100 cargo statistics: 14,083,343 monthly segment records from 1990 through 2026 carrying freight pounds, mail pounds, available payload, departures and block times keyed by carrier, airport pair, aircraft type and service class - delivered daily, weekly, or hourly.
1,744 datasets. Pick your catch.
What does a T-100 cargo record contain?
Illustrative rows in the delivered shape - one non-stop flight leg, fully attributed:
UniqueCarrier : DL AirlineID : 20363
OriginAirportID: 12266 DestAirportID : 12889
Month : 7 Class : P
AircraftType : 722 AircraftConfig : 1 (cargo)
DepScheduled : 1240 DepPerformed : 1218
Freight : 38400 lb Mail : 1120 lb
Payload : 285000 lb Distance : 1846 miRead the anatomy rather than the digits - every value above is the documented example for its column. Five keys resolve first: which carrier flew it (twice over, for reasons the next section explains), from which airport, on which equipment, in which service class, during which month. Then the measures attach to that key: what moved (Freight, Mail), what capacity existed (Payload), and how the leg ran (scheduled versus performed departures, Distance).
That key-then-measure shape is the quiet advantage of this bank. Add months and the rows become route histories per aircraft type without any reshaping - a ready-made panel for lane studies and demand models, which is why teams treat the T-100 as the backbone layer of an air cargo stack rather than one input among many.
Which fields carry the cargo numbers?
Three pound-denominated measures do most analytical work. Freight records non-stop segment freight transported in pounds - property other than express and passenger baggage - with 38,400 as the documented example value. Mail sits beside it (example 1,120). Payload records available payload in pounds, defined as certificated takeoff weight less empty weight, equipment and operating load (example 285,000): the denominator that turns raw tonnage into utilization the moment you divide through.
Activity and distance context completes the frame. DepScheduled (1,240) against DepPerformed (1,218) shows how much of the published schedule actually flew. AirTime (242 minutes) and RampToRamp (265 minutes) separate airborne time from block time. Distance carries 1,846 statute miles in the documented row, and DistanceGroup bands segments at 500-mile intervals (example 4).
Join keys are built into the file rather than bolted on. AirlineID (20363) is the US DOT number that survives code and name changes - the difference between a merger-spanning panel and a silently broken join, because display codes get recycled across decades. OriginAirportID (12266) pins a unique airport across years, while OriginCityMarketID (30194) consolidates the airports serving one metropolitan market, so runway-level and metro-level questions read off the same base.
One trap deserves bold type: *LoadFactor (documented example 0.62) is defined as the ratio of Passenger Miles to Available Seat Miles. It is a passenger metric sitting in a cargo-relevant file. Freight load factor must be derived from Freight against Payload - never read off this column.
Which T-100 tables should a cargo analysis pull from?
The six All Carriers tables split into two families, and choosing wrong quietly deletes a dimension. Segment tables resolve each non-stop flight leg; market tables roll traffic up to full origin-destination itineraries. For freight work the distinction is not cosmetic - the market rollup discards the aircraft-type dimension, so freighter-versus-belly splits vanish exactly where cargo questions need them most.
What can't the T-100 tell you?
Four boundaries define the file, and four named products fill them.
- No commodity detail. The T-100 counts pounds moved, never what moved. Freight Analysis Framework Version 5 (FAF5) is the complement: SCTG2 commodities across roughly 132 US FAF regions and eight foreign regions, with a 2017 base year, 2018-2024 estimates and growth forecasts to 2050. Cite it as model-based estimates - which is precisely what its producers state it to be.
- No prices. Nothing in a Form T-100 filing is a rate. TAC Index Air Freight Rate Index publishes more than 100 timestamped benchmarks across hundreds of trade lanes - lane, USD-per-kg rate and timestamp on every observation. WorldACD Air Cargo Market Data adds the weekly market view: chargeable weight, yields, capacity and load factors pooled from more than 100 contributing airlines and forwarders, with an agent-level tier spanning 15,000+ forwarders. Volumes plus rates is the standard stack.
- Pounds, not tonne-kilometres. Cross-country intensity work needs a different unit. The World Bank Air Transport, Freight series delivers annual million tonne-kilometres for 265 economies from 1970 through 2023 as a clean country-year panel - the United States led its verified 2023 sample rows at 42,762.86.
Discovery is a minor gap worth naming: the Data.gov air cargo search results record surfaces the fourteen federal, state and municipal tables matching the term, drawn from roughly 552,000 indexed datasets.
Who builds on T-100 cargo data?
Competitive intelligence teams benchmark rivals lane by lane - a carrier's airport-pair presence by aircraft type is quotable straight from rows nobody can opt out of filing. See competitive intel product teams use cases.
Investors and quant researchers read carrier-level freight tonnage, capacity and utilization as backtestable monthly fundamentals for aviation and e-commerce exposure theses; the workflow lives at investors quants use cases.
Data scientists and ML engineers get a thirty-seven-year carrier-airport-aircraft panel keyed by identifiers that survive rebrands - training substrate for demand and network models; see data scientists use cases.
Market researchers and consultants cite the definitive record of US carrier traffic when sizing airfreight exposure or anchoring diligence deliverables.
Journalists, academics and students trace any air-cargo claim to a filed figure rather than a press release - mandatory reporting makes attribution trivial.
Why get the T-100 through Datadory?
Because the hard part was never the first extract - it is the tenth. Carrier codes recycled across decades that need numeric suffixes disambiguated. Airport codes that change hands while the underlying runway stays put. Service-class splits that decide whether belly cargo appears at all. The uniform-end-date holdback. Confidentiality gaps masquerading as zeros. Each is survivable once; none is fun to re-solve in every new notebook.
Datadory normalizes them before delivery: stable US DOT identifiers carried beside display codes, cargo-configured and belly cuts typed as filters, suppression surfaced explicitly rather than discovered mid-analysis, and extracts shaped to the field dictionary above whether they land as API responses, scheduled files or warehouse tables.
Name the carriers, lanes and months when you request a sample and it arrives already cut to that scope - the production feed follows the same shape, so anything prototyped on the sample survives delivery intact.
Where to go next
Start with the air-freight-logistics data guide, which ranks all 24 pooled datasets in the industry and places the T-100 at the center of the US stack. The air-freight-logistics data hub browses the same catalog as records, and the best air freight logistics datasets list scores the top ten side by side.
For the neighboring threads: what is the BTS T-100 dataset walks the six tables record by record, eurostat air freight tonnage by airport covers the European counterpart, and air freight rates by lane handles the price layer the T-100 leaves out.
| Attribute | Segment tables | Market tables |
|---|---|---|
| Unit of analysis | One non-stop flight leg: carrier x origin x destination x aircraft type x service class per month | Itineraries rolled up to carrier x origin-destination x service class per month |
| Aircraft-type dimension | Retained - freighter-versus-belly splits survive | Lost - equipment mix disappears in the rollup |
| Cargo measures | Freight, Mail and Payload per leg beside Seats and Passengers | Same traffic measures aggregated between origin-destination pairs |
| Scale | Combined table: 14,083,343 records across 50 fields | Fewer rows per year after itinerary aggregation |
| Best for | Lane benchmarking, fleet-mix studies, demand-model panels | Market-size questions where equipment mix does not matter |
| Dimension | Coverage |
|---|---|
| Geographic | United States and its territories in the domestic tables; international tables cover any route touching at least one US point, at airport-pair and city-market detail |
| Temporal | Monthly, 1990 through 2026 (37 reporting years); international releases trail domestic by three months; pre-1990 traffic sits in a separate summary collection |
| Granularity | Carrier x origin x destination x aircraft type x service class per month on segment tables; carrier x O-D x service class per month on market tables |
Pick up where this leaves off
Every one of these ships with sample rows before you commit to anything.
BTS T-100 Air Carrier Statistics (Form 41 Traffic)
UniqueCarrier · AirlineID · OriginAirportID …+4 more
BTS T-100 Data Tables Query Interface
UniqueCarrier / AirlineID · OriginAirportID / DestAirportID · Month / Class …+26 more
Freight Analysis Framework Version 5 (FAF5)
dms_orig · dms_dest · sctg2 …+2 more
Eurostat – Freight and Mail Air Transport by Main Airports (AVIA_GOOA)
TAC Index Air Freight Rate Index
Index name · Trade lane · Rate value …+1 more
WorldACD Air Cargo Market Data
FTK · ATK
Want rows instead of a pitch? Name the datasets.
API, files, or your warehouse. Daily, weekly, or hourly.
Get a sampleQuestions worth asking
Which T-100 tables should an airport-pair freight analysis use?
The segment tables. They keep one row per non-stop flight leg - carrier x origin x destination x aircraft type x service class per month - so freighter-versus-belly splits survive. Market tables aggregate to origin-destination itineraries and lose the aircraft-type dimension, which removes the split most cargo questions start from.
Why do recent months look incomplete in T-100 cargo extracts?
Three rules cause it: international tables publish three months behind domestic ones, the most recent three months of US-carrier domestic data are withheld from combined tables so every carrier ends on a uniform date, and recent international route detail is suppressed where routes are carrier-confidential. Suppressed cells arrive as gaps rather than flagged zeros.
Does the T-100 include a freight load factor field?
No usable one. The LoadFactor column is defined as passenger miles over available seat miles - a passenger metric in a cargo-relevant file. Derive freight load factor yourself from Freight against Payload, both of which sit in the same segment rows.
Can a T-100 delivery be cut to specific carriers or lanes?
Yes. Name the carriers, airport pairs, months and years you care about and the sample arrives in exactly the documented field shape, filtered to that scope. The ongoing feed follows the same structure, delivered by API, scheduled files, or straight into your warehouse - daily, weekly, or hourly.