RCS, DEP, RCF, DLV: how to read an air cargo timeline like a handler
When we normalise airline tracking pages into TrackJet's unified timeline, the same handful of three-letter codes explains most of an air shipment's life. They come from the messaging standards the air cargo industry has used for decades — the milestone vocabulary defined by IATA's cargo messaging (historically Cargo-IMP, today Cargo-XML), and they are the closest thing air freight has to a universal language.
If you can read five of them, an airline tracking page stops being cryptic. Here they are, in the order a healthy shipment produces them.
RCS — received from shipper
RCS means the airline has physically accepted the freight and its paperwork at origin. This is the moment your shipment stops being a promise and becomes cargo: it has been weighed, checked against the air waybill, and taken into the carrier's custody.
Before RCS you will often see booking-stage codes (BKD — booked, FWB — the electronic air waybill data was transmitted). A shipment that is "booked" but never reaches RCS has not actually been handed over — when a supplier says "it shipped Monday" and the timeline shows only BKD, the goods were still on their dock on Monday.
DEP — departed
DEP records that the flight carrying your cargo actually took off, tied to a specific flight number and date. Two things are worth knowing here. First, freight is regularly offloaded — accepted cargo can be bumped from the planned flight for weight, balance or connection reasons, and re-booked on the next one. If the tracking page shows a re-planned flight after an offload, that is normal operations, not a lost shipment. Second, DEP refers to the cargo, not just the aircraft: cargo can miss a flight the passengers' half of the airline reports as departed.
ARR and RCF — arrived, and received from flight
ARR says the flight landed. RCF says the cargo was checked in at the arrival warehouse. The gap between them is real work: unloading, transfer to the cargo terminal, acceptance scanning. An ARR without an RCF for many hours is the first genuinely useful early-warning signal a timeline gives you.
Here is the trap that catches almost everyone: RCF fires at every airport, not just the destination. A shipment flying Frankfurt → Doha → Singapore will produce RCF DOH at the transit point. Reading RCF and assuming "it's arrived!" — while the goods are sitting in a transit shed two countries away — is the easiest way to misread an air cargo timeline. Always read the airport code next to the milestone, not just the milestone. (Transit legs may also show TFD/RCT — transferred to and received from another carrier.)
NFD — notified
NFD means the consignee (or their customs broker / forwarder) has been notified that the shipment is ready. This code is the baton pass: from here, the airline is waiting on your side — customs clearance, import paperwork, pickup arrangement. If a shipment seems stuck after NFD, the delay is almost never the airline; ask your broker, not the carrier.
DLV — delivered
DLV closes the loop: the freight left the arrival warehouse against a signature. Note that in airport-to-airport air freight, "delivered" usually means handed to the consignee or their agent at the destination terminal — not a truck at your door. Door delivery, when you have bought it, is a separate (often forwarder-run) leg that may not appear on the airline's page at all.
Reading the gaps, not just the codes
A milestone timeline is honest about events and silent about everything between them. The skill is reading the gaps:
- Long gap between RCS and DEP → freight is waiting for a flight (capacity, screening, or a missed cut-off).
- ARR without RCF → landed but not yet processed into the warehouse.
- RCF at an airport that isn't the destination → transit stop, keep waiting.
- Long silence after NFD → the shipment is waiting for you (or your broker).
When TrackJet builds a [source-labelled timeline](/mawb-tracking), we keep the original milestone codes visible precisely because they carry information the friendly rewrites lose. "In transit" tells you nothing; RCF DOH tells you exactly which shed your pallets are in.
Where to go from here
Paste any air waybill into the [universal tracker](/track) — the format is a three-digit airline prefix plus eight digits, e.g. 020-12345675, and you can read about the structure itself in our [MAWB tracking guide](/mawb-tracking). If you want the full status vocabulary beyond the big five, our [reading-the-timeline guide](/docs/reading-the-timeline) explains how TrackJet maps the industry codes to the plain-language, source-labelled statuses it shows — and the [status ontology](/standards/status-ontology) documents the full vocabulary.
This article reflects how TrackJet normalises real airline timelines; milestone semantics follow IATA's cargo messaging standards. Corrections welcome — see the [editorial & data policy](/editorial).