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 90 days. We publish the number — good or bad. Lower error is better.
Port Flow predicted ETA (RMSE)
6.61 h
MAE 9.62 h · 987 voyages
Broadcast ETA (RMSE)
59.78 h
crew-declared, 413 voyages (same set)
Our advantage
88.9 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (275 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 244620320 | container | 09/19, 11:21 PM UTC | 3.50 h | — |
| 205289790 | product | 09/19, 11:19 PM UTC | 2.13 h | -1746.57 h |
| 244101977 | container | 09/19, 11:16 PM UTC | 1.30 h | 2457.73 h |
| 205569190 | container | 09/19, 11:13 PM UTC | 5.97 h | — |
| 244700512 | container | 09/19, 11:11 PM UTC | 0.64 h | — |
| 205473290 | product | 09/19, 11:09 PM UTC | 8.84 h | -347.07 h |
| 249702000 | product | 09/19, 11:07 PM UTC | 1.45 h | -1463.12 h |
| 244060875 | container | 09/19, 11:07 PM UTC | 12.80 h | — |
| 244750081 | product | 09/19, 11:02 PM UTC | 5.16 h | -22.52 h |
| 205569190 | container | 09/19, 11:01 PM UTC | 4.41 h | — |
| 244660035 | container | 09/19, 11:01 PM UTC | 3.74 h | — |
| 244700427 | product | 09/19, 11:00 PM UTC | 5.75 h | -366.03 h |
| 244000912 | product | 09/19, 10:57 PM UTC | 3.49 h | -2.96 h |
| 253242357 | product | 09/19, 10:57 PM UTC | 2.00 h | -102.52 h |
| 244670320 | container | 09/19, 10:56 PM UTC | 0.43 h | -52.94 h |
| 211645510 | product | 09/19, 10:54 PM UTC | 3.61 h | -32.53 h |
| 244710484 | product | 09/19, 10:54 PM UTC | 8.42 h | -54.43 h |
| 253242295 | product | 09/19, 10:51 PM UTC | 3.18 h | 13.70 h |
| 244660035 | container | 09/19, 10:44 PM UTC | 1.74 h | 34.76 h |
| 244001324 | product | 09/19, 10:42 PM UTC | 2.85 h | -17.31 h |
| 205539990 | container | 09/19, 10:41 PM UTC | 0.89 h | -2.70 h |
| 269057351 | product | 09/19, 10:41 PM UTC | 4.31 h | -16.22 h |
| 218038720 | product | 09/19, 10:40 PM UTC | 6.53 h | -181.90 h |
| 244137310 | container | 09/19, 10:36 PM UTC | 2.29 h | 31.59 h |
| 241203000 | product | 09/19, 10:34 PM UTC | 3.63 h | -1934.57 h |
| 205539990 | container | 09/19, 10:29 PM UTC | 0.88 h | -2.49 h |
| 269057351 | product | 09/19, 10:29 PM UTC | 3.29 h | -49.09 h |
| 211464830 | product | 09/19, 10:28 PM UTC | 3.85 h | -611.47 h |
| 205585490 | container | 09/19, 10:26 PM UTC | 0.67 h | -32.67 h |
| 269057007 | product | 09/19, 10:24 PM UTC | 3.79 h | — |
| 205551390 | product | 09/19, 10:23 PM UTC | 4.03 h | 0.44 h |
| 210855000 | chemical | 09/19, 10:20 PM UTC | 4.56 h | -79.34 h |
| 253242295 | product | 09/19, 10:16 PM UTC | 1.51 h | 14.30 h |
| 244660529 | container | 09/19, 10:14 PM UTC | 9.54 h | — |
| 244012151 | container | 09/19, 10:13 PM UTC | 3.13 h | 6559.77 h |
| 244000575 | container | 09/19, 10:13 PM UTC | 2.95 h | — |
| 229535000 | product | 09/19, 10:13 PM UTC | 9.28 h | -84.23 h |
| 244105935 | product | 09/19, 10:12 PM UTC | 9.44 h | -217.20 h |
| 244101977 | container | 09/19, 10:08 PM UTC | 3.36 h | 2458.86 h |
| 244660297 | container | 09/19, 10:07 PM UTC | 1.95 h | — |
| 269057316 | product | 09/19, 10:06 PM UTC | 1.22 h | -0.07 h |
| 244660566 | container | 09/19, 09:56 PM UTC | 12.16 h | — |
| 244022677 | container | 09/19, 09:55 PM UTC | 1.34 h | 1236.00 h |
| 244650607 | product | 09/19, 09:54 PM UTC | 4.26 h | 8.52 h |
| 229535000 | product | 09/19, 09:49 PM UTC | 4.43 h | -83.82 h |
| 244670043 | container | 09/19, 09:48 PM UTC | 3.53 h | -87.21 h |
| 244660035 | container | 09/19, 09:47 PM UTC | 1.41 h | 35.72 h |
| 205539990 | container | 09/19, 09:45 PM UTC | 1.55 h | -74.76 h |
| 244620960 | container | 09/19, 09:43 PM UTC | 1.46 h | 56.80 h |
| 232063064 | product | 09/19, 09:41 PM UTC | 7.04 h | -125.69 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.