If you've ever stared at a carrier tracking update showing "GTOD" or "DSCD" and wondered what it actually means for your shipment, you're not alone. Carrier milestone codes are the language of container shipping — and almost nobody outside the carriers themselves speaks it fluently.
This glossary decodes every major milestone code used by ocean carriers, explains what each one means in plain English, and more importantly, tells you what it means for your cargo.
Why carrier milestone codes are so confusing
There's no universal standard. The Digital Container Shipping Association (DCSA) has been working on standardisation, but in practice, every carrier uses slightly different codes, slightly different definitions, and slightly different timing for when milestones are published.
Maersk's "Gate In" might fire at a different point in the process than CMA CGM's. MSC's "Loaded on Vessel" update might appear hours or days after the container was actually loaded. And some carriers publish intermediate milestones that others skip entirely.
The result is that a logistics coordinator managing shipments across multiple carriers is essentially reading 5 different languages simultaneously — with no translator.
CargoPilot
Track what milestone codes actually mean for your cargo
The milestone journey: from origin to destination
A container's journey typically follows this sequence of milestones. Not every carrier publishes every milestone, and the timing between event and publication varies significantly.
Booking and pre-shipment
BKD — Booked. A booking has been confirmed with the carrier. The container space is reserved on a specific vessel and voyage. This is the starting gun — everything downstream depends on this booking being honoured. Note: a booking is not a guarantee. Carriers can and do roll bookings (see ROL below).
ERD — Earliest Receiving Date. The earliest date the terminal will accept your container for the booked vessel. Delivering before this date means the terminal will refuse the container or charge storage. Delivering too close to the cargo cut-off means you're racing the clock.
CCO — Cargo Cut-Off. The absolute deadline for delivering your container to the terminal for loading on the booked vessel. Miss this and your container gets rolled to the next sailing. There is no flexibility on cargo cut-off — it's dictated by the terminal and vessel operations schedule.
Gate in and loading
GIN / GTIN — Gate In. The container has passed through the terminal gate and been received by the port. The terminal now has physical custody. This confirms your container made it before cargo cut-off.
LOD / LOAD — Loaded on Vessel. The container has been physically loaded onto the vessel. This is the milestone that confirms your cargo is on the ship — not just at the port, but on board. Depending on the carrier, this update might appear immediately or several hours after the physical loading.
DEP / DEPA — Departed. The vessel has departed from the port of loading with your container on board. The ocean transit has begun. Some carriers fire this when the vessel leaves the berth; others wait until it clears the port area.
In transit
INT / TRNS — In Transit. The vessel is at sea between ports. This is the milestone that drives logistics coordinators mad — because it can remain unchanged for days or weeks. The carrier has no new information to report because the vessel is simply sailing.
The problem with "In Transit" is that it tells you nothing about speed, route deviations, weather delays, or whether the vessel is slow-steaming to save fuel. It's the absence of information presented as an update.
TSH / TSPT — Transshipment. Your container has been discharged at an intermediate port and will be transferred to a different vessel for the next leg of the journey. Transshipments are where delays often compound — the connecting vessel might be late, the terminal handling might be slow, or the container could be rolled to a later connection.
Arrival and discharge
ARR / ARRI — Arrived. The vessel has arrived at the destination port. Note: "arrived" in carrier language often means the vessel has entered the port area or is at anchor — not necessarily that it has berthed or begun discharge operations. There can be hours or days between "arrived" and actual unloading.
DIS / DSCD — Discharged. The container has been physically unloaded from the vessel and placed in the terminal yard. This is arguably the most important milestone for importers because it starts the demurrage clock. From this moment, your free time is counting down.
AVI / AVAIL — Available for Delivery. The container has been cleared for collection — it's passed any holds (customs, fumigation, carrier holds) and can be picked up by your haulier. The gap between "discharged" and "available" can range from hours to days depending on port efficiency and whether any holds are in place.
Collection and return
GOU / GTOU — Gate Out. The container has left the terminal gate, collected by a truck for delivery to the consignee or warehouse. Demurrage stops when the container leaves the port. Detention may now begin depending on the carrier's free time terms.
DLV / DLVD — Delivered. The container has been delivered to the final destination (warehouse, factory, distribution centre). Some carriers publish this milestone, others don't — it depends on whether they have visibility into the drayage leg.
RET / RETN — Empty Returned. The empty container has been returned to the carrier's designated depot. This stops the detention clock. If you're not tracking this milestone, detention charges can accumulate silently for days.
Exception milestones: when things go wrong
ROL — Rolled. Your container has been removed from the booked vessel and will be loaded on a later sailing. This is one of the most disruptive events in container shipping and is often the first domino in a chain of delays. Carriers roll containers when vessels are overbooked or when terminal congestion prevents loading all planned containers. Carrier reliability for loading containers on the booked vessel has been as low as 38% in some periods.
GTOD — Gate Out Delay. The container was supposed to leave the terminal but didn't. This could be caused by a port strike, terminal equipment failure, customs hold, or documentation issue. The vague code masks the specific cause — which is exactly the information you need to respond appropriately.
HLD / HOLD — On Hold. The container is being held at the terminal. Holds can be imposed by customs (examination or documentation issues), the carrier (freight payment), or the port authority (safety or regulatory). The type of hold determines the action required and who can resolve it.
BKR — Booking Rejected/Cancelled. The carrier has cancelled your booking. This might be due to vessel capacity issues, equipment shortages, or regulatory restrictions. You need to rebook immediately, potentially on a different carrier or sailing.
What the codes don't tell you
This is the critical gap. Milestone codes tell you what happened. They don't tell you why it happened, what it means for your delivery schedule, what it will cost you, or what you should do about it.
"GTOD" tells you there's a gate out delay. It doesn't tell you it's caused by a port strike that will last 3 days and shift your arrival window by a week. "DSCD" tells you the container was discharged. It doesn't tell you that port congestion means a 48-hour dwell time before availability, and that your demurrage free time will be half consumed before you can physically collect the container.
This is the difference between tracking and intelligence. Tracking gives you the code. Intelligence gives you the explanation, the impact, and the action.
Platforms like CargoPilot are built to close this gap — automatically translating milestone codes into plain-English explanations, correlating them with satellite vessel data, port congestion, and historical patterns, and surfacing the action required rather than just the event.
Quick reference table
| Code | Meaning | What to do |
|------|---------|------------|
| BKD | Booked | Confirm booking details, prepare documentation |
| ERD | Earliest receiving date | Schedule delivery to terminal after this date |
| CCO | Cargo cut-off | Deliver container before this deadline |
| GIN | Gate in at origin | Confirm terminal receipt |
| LOD | Loaded on vessel | Confirm cargo is on board the planned vessel |
| DEP | Departed | Transit has begun — share ETA with destination team |
| INT | In transit | Monitor vessel speed and route for delays |
| TSH | Transshipment | Monitor connection — high risk of delays |
| ARR | Arrived at destination | Alert customs broker, prepare haulier |
| DIS | Discharged | Demurrage clock starts — act immediately |
| AVI | Available for delivery | Dispatch haulier for collection |
| GOU | Gate out | Container collected — demurrage stops |
| DLV | Delivered | Goods received — begin empty return |
| RET | Empty returned | Detention stops — confirm with carrier |
| ROL | Rolled | Rebook immediately — significant delay |
| GTOD | Gate out delay | Investigate cause, adjust downstream plans |
| HLD | On hold | Identify hold type, take required action |
CargoPilot
Track what milestone codes actually mean for your cargo
CargoPilot translates carrier milestones into clear, actionable status updates — and alerts you when the milestones that matter are triggered.