Skip to content
    Supply Chain Technology

    How to improve ETA accuracy across carriers

    Sep 16, 20265 min read

    Carrier schedules slipped hard this summer. How to measure ETA accuracy across carriers and modes, find where the number breaks, and make a changed ETA trigger action.

    In July, global container vessel schedule reliability fell to 56.4%, down 6.1 points in a single month and the sharpest one-month decline since January 2021. Average delay for the vessels that did arrive late reached 6.06 days. At Shanghai, 21% of vessels arrived on time, the lowest in fourteen years of recorded data outside the pandemic (FreightWaves, reporting Sea-Intelligence data).

    Read that as an operator rather than an analyst and it says something uncomfortable. Slightly fewer than half the arrival dates sitting in your system right now are wrong, and the ones that are wrong are wrong by almost a week. Your customer service team is quoting those dates. Your warehouse is staffing against them. Your planners are releasing production orders on them.

    An ETA is a forecast, and forecasts get scored

    Most supply chain teams treat the ETA as a fact that occasionally turns out to be false. It is a forecast, and forecasts have a measurable error rate. Nobody would run a demand plan without tracking forecast accuracy, yet the arrival date, which drives labor, inventory, and customer promises every day, usually goes unscored.

    The first move is not a new data feed. It is to start writing down what the ETA said and what actually happened, then compare the two. You cannot improve a number you have never measured, and until you measure it, every argument about carrier performance is a matter of opinion.

    Three measures cover most of it:

    Absolute accuracy. Predicted arrival versus actual arrival, in hours, by carrier, lane, and mode. Report the median and the tail, not the average. A carrier that is usually within four hours but occasionally six days out is a different operational problem from one that is reliably twelve hours late.

    Drift. How many times the ETA changed, and how late in the journey it moved. An ETA that shifts three days out is a signal you can act on. One that shifts at the gate is just a notification of something that already happened.

    Coverage. The share of shipments carrying a real predicted arrival at all, rather than a booking date copied forward. This is usually the ugliest of the three numbers, and it explains the other two. These sit naturally alongside the other data quality measures worth publishing next to your operational KPIs.

    Where the number actually breaks

    Once you score the ETA, the failures group into a short list.

    The carrier's own schedule moved and nobody rewrote the order. Blank sailings and port omissions change the arrival long before any tracking event says so, and the booking in your system still reads confirmed. Catching that class of change early is a discipline of its own. The same applies to a box that misses its relay at a hub, where the arrival date stays frozen because no onward voyage has been assigned: a missed transshipment connection breaks the ETA without ever changing it.

    The ETA is carrier-published, not journey-based. A vessel ETA is an arrival at a port. Your customer cares about arrival at a door. Between those two points sit discharge, customs, dwell, drayage, and a delivery appointment, and none of them are in the number the carrier gave you. For an ocean shipment in a congested port this summer, the gap between the two was commonly a week or more.

    Every system holds a different version. The TMS has one arrival date, the ERP has the one that was typed in at PO creation, the forwarder portal has a third (which is why carrier and forwarder tracking have to be joined before any of this is measurable), and the customer was told a fourth. Nobody is lying. The values were simply written at different moments and never reconciled, which is exactly how data silos turn into visibility gaps.

    Mode handoffs lose the thread. Ocean to rail to truck means three tracking sources with different identifiers and different update cadences. The container number stops matching the shipment number, the ETA stops updating, and the shipment goes quiet for the leg where it was most likely to slip. Quiet is a diagnosis of its own, and worth separating from a data feed that has simply stopped publishing.

    Build one arrival date, not five

    The fix is structural rather than clever. There has to be a single arrival date per shipment that every system and every person reads from, assembled from whichever source is currently most reliable for that leg, and stamped with where it came from and when it last changed.

    That is unglamorous work, and it is where most teams stall, because assembling it by hand across a dozen carrier portals is not sustainable. Anyone who has kept a spreadsheet alive against twelve separate carrier logins knows the update cycle collapses the first week something goes wrong. This is the part a command center like Orkestra is built to carry: pulling milestone data from carriers and forwarders across modes, normalizing identifiers so a container number and an order number resolve to the same shipment, and holding one arrival date with its provenance attached rather than four in disagreement.

    Three practical rules make the single date usable:

    1. Name a source of truth per leg. Carrier event data for the main leg, terminal or customs status for the port phase, delivery appointment for final mile. Write the rule down so it survives the person who made it.
    2. Keep the history. Store every ETA the shipment has ever had, with a timestamp. Without that, drift is unmeasurable and you cannot tell a carrier whether their predictions are improving.
    3. Publish confidence, not just a date. A date sourced from a live vessel position deserves more weight than one derived from a transit-time table. Marking the difference stops planners from treating both the same way, and it is worth checking that the table itself is current, because a planned transit time nobody re-measures will quietly degrade every ETA derived from it (how to measure transit time variability across your lanes).

    Make the change do something

    An accurate ETA that nobody acts on is a more precise way of being late. The value shows up only when a movement in the number triggers work: the order reprioritized, the appointment moved, the customer told before they ask, the safety stock released. One of those responses carries a price tag of its own, so agree when a late shipment is worth expediting before the ETA moves rather than while the quote is sitting open.

    This is where the industry number is worth keeping in view. Roughly 62% of supply chain exceptions are still detected after the customer has already felt them. The detection is not usually the hard part by then. The hard part is that the signal arrived somewhere nobody was looking, in a queue nobody owned. Routing an ETA change straight into a case with an owner, a deadline, and a next action is what converts the measurement into time you actually get back, and it is the same mechanic behind catching exceptions before they reach the customer. OIA Global cut exception resolution time by 60% in a single quarter working this way.

    Where to start

    Pick your twenty highest-value lanes. For the next thirty days, log the ETA at booking, the ETA seven days out, the ETA at forty-eight hours, and the actual arrival. That single table will tell you more than any dashboard you currently own: which carriers predict well, which lanes are systematically optimistic, and how much warning you genuinely get before a slip.

    Then fix the worst gap first. Usually it is coverage, and usually it is a mode handoff, and usually the answer is connecting a source you already have access to rather than buying a new signal. Schedule reliability at 56% is not something any shipper can control. How quickly you find out, and how much of the journey you can still re-plan when you do, is entirely within reach.

    Get full visibility across every carrier and mode

    Trusted by leading supply chain teams
    MatalcoOIA GlobalKingsdownDBWMatalcoOIA GlobalKingsdownDBW
    DLAIllyLevitt SafetySquareInstoreDLAIllyLevitt SafetySquareInstore
    TAKE THE NEXT STEP

    Action breaks down when operations are disconnected.

    Orkestra gives teams one place to see what matters, coordinate the response, and move operations forward.