A voyage is modelled as a sequence of operations, not as one forecast. Each part of the journey is predicted on its own, then composed into an arrival date and refined against the carrier’s own ETA.
Portcast · Data Science · July 2026
How a voyage becomes an ETA
Each model owns one piece of the journey
Because the arrival is composed rather than produced whole, a change can be traced to the leg or port call that caused it — risk is located, not just observed.
Click a model to see what it predicts, the signals behind it, and why it stands on its own.
Decision layer
How hard we anchor to the carrier depends on the horizon
The carrier’s published ETA is treated as an informative signal rather than a fallback — it encodes operational intent no external model can observe. How much weight it earns is a function of prediction horizon, settled by testing a large family of candidate combination strategies over historical shipments.
Data
What each model draws on
Signal group
Time to next port
Port dwell
Onward transit
Route similarity
Live vessel movementposition, recent speed behaviour, distance remaining
Port congestionhow busy the ports ahead are running
Carrier schedulepublished schedule and expected milestones
Historical behaviourrealised transit, dwell and waiting by lane, vessel and carrier
Vessel attributescapacity and physical characteristics
Most signals are prepared on a regular refresh cycle; a few are computed at training time so they stay current. The refinement layer additionally reads the carrier’s own ETA and schedule. Weather and news signals feed our separate disruption-risk views, not the ETA models themselves — port congestion is the disruption signal the ETA models see directly.
Accuracy
Measured against the carrier’s own ETA
Our published ETA is more accurate than the carrier’s own published ETA at every days-ahead horizon we measure, out to two weeks before arrival — including the short horizons closest to berth, where inland, yard and warehouse decisions are actually made.
Ground truthActual time of arrival at the port. Every prediction is retained and scored against what eventually happened.
Scored continuouslyNot at a single checkpoint. Each prediction is bucketed by how many days before arrival it was made, so accuracy is a curve across the voyage rather than one number.
Paired comparisonFor every prediction scored, the carrier ETA live at that same moment is scored too — same shipments, same arrival, same instant. No flattering either side.
ToleranceOn-time means within one day of actual arrival, applied evenly at every horizon. Tighter bands are available where a customer needs them.
Coverage reported alongsideAccuracy on a thin subset of containers is not a usable product, so container-level coverage is reported with it.
Reported per customerA recurring accuracy report runs per customer dataset, and the same view is visible on the platform.
Process
How a change reaches production
Step oneBenchmark datasetA candidate is scored against a fixed historical dataset, using cross-validation grouped so no voyage is ever evaluated on data drawn from itself.
Step twoLive test periodIt then runs against live traffic and is measured over a sustained window, not a single good day.
Step threeControlled A/BIt takes a controlled share of production traffic alongside the incumbent, each variant scored separately.
Step fourPromotionOnly a sustained win over the incumbent promotes it. Anything that regresses is rolled back rather than tuned in place.
Scope
Two things worth being explicit about
Ocean-specific by design. Signal availability, event granularity and error scale differ fundamentally across modes — port calls rather than scans, days rather than hours. We do not reuse one generic model across ocean, air and road; a model tuned on parcel-scale error is structurally wrong for a multi-week deep-sea voyage, and the reverse holds too.
An enrichment layer, not a replacement. Portcast sits over an existing visibility stack. The customer keeps the relationship and the data channel; we improve the quality of the ETA flowing through it, including into an existing feed rather than a separate screen.