ETA accuracy benchmark · 🇳🇱 Rotterdam
How Port Flow's predicted ETA compares to each vessel's own broadcast ETA at Rotterdam, measured on closed voyages over the last 7 days. We publish the number — good or bad. Lower error is better.
Port Flow predicted ETA (RMSE)
3.20 h
MAE 3.23 h · 989 voyages
Broadcast ETA (RMSE)
60.38 h
crew-declared, 341 voyages (same set)
Our advantage
94.7 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (293 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| MMSI | Cargo | Arrival | Our error | Broadcast error |
|---|---|---|---|---|
| 244821257 | product | 06/18, 07:14 PM UTC | 1.34 h | -40.54 h |
| 244670092 | container | 06/18, 07:13 PM UTC | -0.13 h | — |
| 244660297 | container | 06/18, 07:11 PM UTC | -0.99 h | -157.13 h |
| 211846860 | container | 06/18, 07:08 PM UTC | -1.12 h | -227.14 h |
| 211474230 | container | 06/18, 07:05 PM UTC | -0.64 h | 6737.90 h |
| 244650105 | container | 06/18, 07:02 PM UTC | 3.62 h | -81.19 h |
| 244650607 | product | 06/18, 07:00 PM UTC | 4.73 h | — |
| 244620945 | container | 06/18, 06:58 PM UTC | -1.24 h | 26.03 h |
| 244650607 | product | 06/18, 06:56 PM UTC | 4.66 h | — |
| 244790048 | product | 06/18, 06:55 PM UTC | -0.56 h | — |
| 244830609 | product | 06/18, 06:55 PM UTC | 7.69 h | 0.08 h |
| 244700721 | product | 06/18, 06:47 PM UTC | -1.41 h | -136.81 h |
| 205260390 | product | 06/18, 06:45 PM UTC | 1.64 h | 11.46 h |
| 235008440 | product | 06/18, 06:45 PM UTC | -1.69 h | -563.75 h |
| 244650588 | container | 06/18, 06:43 PM UTC | -0.66 h | — |
| 244650607 | product | 06/18, 06:43 PM UTC | 1.55 h | -313.37 h |
| 244010910 | container | 06/18, 06:40 PM UTC | -0.56 h | 5727.80 h |
| 244630034 | container | 06/18, 06:39 PM UTC | 3.18 h | — |
| 244740135 | container | 06/18, 06:39 PM UTC | -0.73 h | 4683.70 h |
| 244001927 | container | 06/18, 06:38 PM UTC | 4.32 h | — |
| 244620189 | container | 06/18, 06:38 PM UTC | 4.84 h | -31.99 h |
| 244074275 | container | 06/18, 06:37 PM UTC | -1.04 h | -459.57 h |
| 244670114 | container | 06/18, 06:35 PM UTC | 4.28 h | 5252.85 h |
| 211894850 | product | 06/18, 06:32 PM UTC | 1.73 h | 0.46 h |
| 244750019 | container | 06/18, 06:32 PM UTC | -2.12 h | -0.05 h |
| 244690099 | container | 06/18, 06:32 PM UTC | -0.34 h | — |
| 244750616 | container | 06/18, 06:31 PM UTC | -0.78 h | — |
| 244725817 | container | 06/18, 06:27 PM UTC | 1.82 h | -25.58 h |
| 244012630 | container | 06/18, 06:27 PM UTC | -2.23 h | — |
| 246231000 | container | 06/18, 06:27 PM UTC | 9.32 h | -129.45 h |
| 244150437 | container | 06/18, 06:26 PM UTC | 2.94 h | — |
| 341810000 | container | 06/18, 06:25 PM UTC | 1.88 h | -3.43 h |
| 205344690 | product | 06/18, 06:23 PM UTC | -0.25 h | -0.59 h |
| 205505590 | product | 06/18, 06:21 PM UTC | 2.36 h | -54.91 h |
| 244033335 | product | 06/18, 06:21 PM UTC | 3.12 h | -78.22 h |
| 212752000 | container | 06/18, 06:20 PM UTC | -1.95 h | -34.00 h |
| 205521690 | product | 06/18, 06:16 PM UTC | -1.20 h | -296.25 h |
| 244620945 | container | 06/18, 06:14 PM UTC | -2.34 h | -26.24 h |
| 244750018 | container | 06/18, 06:12 PM UTC | -2.22 h | — |
| 244150437 | container | 06/18, 06:12 PM UTC | 3.29 h | — |
| 244719111 | product | 06/18, 06:11 PM UTC | -1.57 h | -47.90 h |
| 205576390 | product | 06/18, 06:09 PM UTC | 1.78 h | -196.07 h |
| 244660261 | container | 06/18, 06:09 PM UTC | 1.91 h | — |
| 244750786 | container | 06/18, 06:09 PM UTC | 10.04 h | -482.09 h |
| 244001028 | product | 06/18, 06:08 PM UTC | 2.64 h | -203.46 h |
| 209318000 | container | 06/18, 06:07 PM UTC | 9.58 h | — |
| 205435990 | product | 06/18, 06:06 PM UTC | -0.03 h | -335.72 h |
| 244001751 | container | 06/18, 06:02 PM UTC | 4.19 h | -26.11 h |
| 244029556 | product | 06/18, 06:02 PM UTC | 0.17 h | — |
| 244750018 | container | 06/18, 06:02 PM UTC | -2.03 h | — |
See it on a live desk
Predicted ETAs, congestion and sanctions screening across 51 ports — try it in one click, no signup.
How it's measured
- Predicted ETA: distance-to-berth over speed-made-good, refreshed on every AIS position, with a seasonal correction from rolling medians.
- Broadcast ETA: the crew-entered ETA in the vessel's AIS message — the de-facto industry default.
- Both are compared to the actual arrival timestamp on the same closed voyages. We report RMSE (penalises large misses) and MAE (typical error).
- Broadcast ETAs more than 7 days off are dropped as AIS sentinel / placeholder values, and our model is scored on that same set — so the comparison is honest, not cherry-picked.
- Coverage is public AIS only; ports with weak coverage show fewer closed voyages. We'd rather show a small honest sample than a big misleading one.