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 30 days. We publish the number — good or bad. Lower error is better.
Port Flow predicted ETA (RMSE)
3.25 h
MAE 3.54 h · 978 voyages
Broadcast ETA (RMSE)
62.50 h
crew-declared, 434 voyages (same set)
Our advantage
94.8 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (252 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 244721416 | product | 10/12, 04:40 AM UTC | -2.31 h | 6.95 h |
| 244690044 | container | 10/12, 04:38 AM UTC | -2.01 h | 3389.52 h |
| 244660830 | container | 10/12, 04:38 AM UTC | -1.73 h | — |
| 205587990 | lng | 10/12, 04:36 AM UTC | -0.53 h | -343.60 h |
| 244100001 | container | 10/12, 04:33 AM UTC | 3.48 h | -80.60 h |
| 244078754 | container | 10/12, 04:30 AM UTC | -0.43 h | — |
| 205568390 | product | 10/12, 04:27 AM UTC | 6.09 h | 0.54 h |
| 244660522 | container | 10/12, 04:24 AM UTC | -1.12 h | -81.82 h |
| 244650874 | container | 10/12, 04:22 AM UTC | -0.23 h | — |
| 244670494 | container | 10/12, 04:21 AM UTC | -0.65 h | 40.59 h |
| 244700987 | container | 10/12, 04:17 AM UTC | -1.55 h | — |
| 244690528 | product | 10/12, 04:16 AM UTC | -1.17 h | -12.20 h |
| 275525000 | product | 10/12, 04:16 AM UTC | -0.19 h | -204.28 h |
| 211517600 | product | 10/12, 04:15 AM UTC | -1.39 h | -27.77 h |
| 244137310 | container | 10/12, 04:13 AM UTC | -1.09 h | 2.41 h |
| 244218293 | container | 10/12, 04:11 AM UTC | -1.21 h | — |
| 244071771 | container | 10/12, 04:09 AM UTC | 7.67 h | -82.90 h |
| 244630814 | product | 10/12, 04:09 AM UTC | -1.65 h | -367.47 h |
| 244650928 | container | 10/12, 04:08 AM UTC | 3.23 h | -78.80 h |
| 244006037 | product | 10/12, 04:07 AM UTC | -1.83 h | -41.77 h |
| 244650874 | container | 10/12, 04:06 AM UTC | -1.41 h | — |
| 205393290 | container | 10/12, 04:06 AM UTC | -1.52 h | 7.86 h |
| 244013087 | product | 10/12, 04:02 AM UTC | -0.86 h | -413.21 h |
| 244995397 | container | 10/12, 04:01 AM UTC | -1.57 h | -3.13 h |
| 244890894 | container | 10/12, 03:57 AM UTC | 2.53 h | — |
| 253242498 | product | 10/12, 03:56 AM UTC | -1.74 h | 23.05 h |
| 211169910 | container | 10/12, 03:56 AM UTC | -1.85 h | 4522.05 h |
| 244650935 | container | 10/12, 03:53 AM UTC | 10.56 h | — |
| 244710378 | container | 10/12, 03:53 AM UTC | -1.78 h | — |
| 244620698 | container | 10/12, 03:50 AM UTC | -0.46 h | — |
| 244650575 | container | 10/12, 03:41 AM UTC | 8.53 h | — |
| 205508590 | product | 10/12, 03:38 AM UTC | -0.75 h | -203.65 h |
| 244218293 | container | 10/12, 03:30 AM UTC | 0.62 h | -2.76 h |
| 244650709 | product | 10/12, 03:28 AM UTC | 4.53 h | -1.52 h |
| 257562000 | product | 10/12, 03:28 AM UTC | 5.75 h | -126.48 h |
| 244650874 | container | 10/12, 03:09 AM UTC | 1.34 h | -1198.16 h |
| 205581790 | product | 10/12, 03:03 AM UTC | 0.09 h | — |
| 205310590 | product | 10/12, 03:03 AM UTC | 2.99 h | -180.30 h |
| 205578990 | product | 10/12, 02:59 AM UTC | 2.99 h | 8.26 h |
| 244650537 | product | 10/12, 02:57 AM UTC | 2.31 h | -10.07 h |
| 244822424 | product | 10/12, 02:57 AM UTC | -0.15 h | 34.55 h |
| 244700714 | product | 10/12, 02:53 AM UTC | 5.28 h | — |
| 244850962 | container | 10/12, 02:51 AM UTC | 4.84 h | — |
| 205505590 | product | 10/12, 02:49 AM UTC | 1.38 h | 13.45 h |
| 215345000 | product | 10/12, 02:48 AM UTC | 4.72 h | -204.81 h |
| 269057536 | product | 10/12, 02:42 AM UTC | -3.25 h | 2.56 h |
| 563052100 | container | 10/12, 02:37 AM UTC | 1.54 h | -691.12 h |
| 244620945 | container | 10/12, 02:35 AM UTC | -0.17 h | — |
| 244710133 | container | 10/12, 02:25 AM UTC | 1.53 h | -35.25 h |
| 244750019 | container | 10/12, 02:21 AM UTC | -0.17 h | -23.39 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.