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)
6.62 h
MAE 9.62 h · 987 voyages
Broadcast ETA (RMSE)
59.63 h
crew-declared, 411 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 (276 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 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 |
| 244740814 | container | 09/19, 09:41 PM UTC | 1.87 h | — |
| 244810087 | product | 09/19, 09:38 PM UTC | 1.88 h | -5.39 h |
| 244376509 | product | 09/19, 09:34 PM UTC | 2.03 h | -151.05 h |
| 244010042 | product | 09/19, 09:30 PM UTC | 1.57 h | -49.31 h |
| 244620320 | container | 09/19, 09:30 PM UTC | 3.82 h | — |
| 244630651 | product | 09/19, 09:26 PM UTC | 4.39 h | -18.79 h |
| 269057139 | product | 09/19, 09:24 PM UTC | 1.61 h | -8.78 h |
| 244620320 | container | 09/19, 09:23 PM UTC | 1.74 h | — |
| 244000575 | container | 09/19, 09:19 PM UTC | 1.59 h | — |
| 269057472 | product | 09/19, 09:18 PM UTC | 15.51 h | -44.36 h |
| 244850360 | container | 09/19, 09:08 PM UTC | 4.02 h | 4343.85 h |
| 244660545 | container | 09/19, 09:06 PM UTC | 1.87 h | — |
| 244670122 | product | 09/19, 09:05 PM UTC | 2.47 h | -28.53 h |
| 538009152 | product | 09/19, 09:04 PM UTC | 1.74 h | -3.07 h |
| 244030549 | container | 09/19, 09:03 PM UTC | 1.91 h | 3256.86 h |
| 244710183 | container | 09/19, 09:03 PM UTC | 1.22 h | -1.60 h |
| 244006118 | container | 09/19, 08:56 PM UTC | 1.73 h | -318.82 h |
| 211173020 | container | 09/19, 08:53 PM UTC | 1.57 h | 2.11 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.