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)
5.09 h
MAE 4.79 h · 977 voyages
Broadcast ETA (RMSE)
55.50 h
crew-declared, 400 voyages (same set)
Our advantage
90.8 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (243 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 244630019 | product | 08/02, 11:00 PM UTC | 1.62 h | — |
| 205555490 | product | 08/02, 10:54 PM UTC | 5.99 h | — |
| 244630717 | container | 08/02, 10:53 PM UTC | -1.39 h | -32.27 h |
| 205555890 | product | 08/02, 10:47 PM UTC | 1.59 h | -74.39 h |
| 205244890 | container | 08/02, 10:47 PM UTC | 0.27 h | -7.16 h |
| 244314912 | container | 08/02, 10:46 PM UTC | -0.41 h | — |
| 244186831 | product | 08/02, 10:43 PM UTC | 1.89 h | — |
| 244660514 | container | 08/02, 10:38 PM UTC | -0.35 h | — |
| 211417530 | container | 08/02, 10:37 PM UTC | 2.07 h | 10.46 h |
| 205567790 | container | 08/02, 10:34 PM UTC | 0.50 h | — |
| 244394136 | product | 08/02, 10:33 PM UTC | -232.80 h | -264.58 h |
| 244002195 | container | 08/02, 10:32 PM UTC | -1.25 h | -23.02 h |
| 244700592 | container | 08/02, 10:19 PM UTC | 0.66 h | 2755.75 h |
| 244002799 | product | 08/02, 10:18 PM UTC | 7.55 h | — |
| 211241700 | product | 08/02, 10:15 PM UTC | 2.79 h | -13.34 h |
| 249566000 | product | 08/02, 10:15 PM UTC | 7.85 h | -97.26 h |
| 244690564 | container | 08/02, 10:14 PM UTC | 6.02 h | 6001.76 h |
| 636026417 | container | 08/02, 10:05 PM UTC | 0.56 h | -34.59 h |
| 304122000 | general-cargo | 08/02, 10:05 PM UTC | 1.68 h | -41.09 h |
| 212792000 | container | 08/02, 10:04 PM UTC | 4.94 h | -252.07 h |
| 244740730 | container | 08/02, 10:00 PM UTC | 3.18 h | -920.02 h |
| 244660514 | container | 08/02, 09:50 PM UTC | -0.78 h | -2.22 h |
| 244620937 | container | 08/02, 09:44 PM UTC | 1.27 h | — |
| 205578090 | product | 08/02, 09:41 PM UTC | 2.23 h | 8.29 h |
| 219018897 | product | 08/02, 09:40 PM UTC | 2.54 h | -23.68 h |
| 255771000 | general-cargo | 08/02, 09:40 PM UTC | -0.35 h | — |
| 205354790 | container | 08/02, 09:39 PM UTC | -0.26 h | — |
| 244101977 | container | 08/02, 09:36 PM UTC | 1.03 h | — |
| 244001997 | product | 08/02, 09:28 PM UTC | 2.47 h | -108.48 h |
| 244660514 | container | 08/02, 09:27 PM UTC | 0.03 h | — |
| 244700592 | container | 08/02, 09:26 PM UTC | -0.21 h | — |
| 244218882 | product | 08/02, 09:16 PM UTC | 0.47 h | -101.37 h |
| 636026417 | container | 08/02, 09:12 PM UTC | -0.40 h | -33.71 h |
| 205393990 | container | 08/02, 09:11 PM UTC | -0.27 h | — |
| 244660514 | container | 08/02, 09:09 PM UTC | -0.17 h | -20.01 h |
| 205523290 | product | 08/02, 09:09 PM UTC | 3.52 h | -0.58 h |
| 244710183 | container | 08/02, 09:07 PM UTC | -0.40 h | — |
| 244003614 | container | 08/02, 09:07 PM UTC | -0.75 h | 3746.88 h |
| 244723788 | product | 08/02, 09:04 PM UTC | -0.09 h | -20.62 h |
| 205393990 | container | 08/02, 09:04 PM UTC | -0.62 h | — |
| 244670434 | container | 08/02, 09:01 PM UTC | 7.77 h | — |
| 244700688 | product | 08/02, 08:58 PM UTC | -1.93 h | 0.09 h |
| 244010081 | container | 08/02, 08:58 PM UTC | 0.28 h | -97.44 h |
| 255802790 | container | 08/02, 08:57 PM UTC | -0.60 h | -19.96 h |
| 205473290 | product | 08/02, 08:57 PM UTC | 9.98 h | -140.90 h |
| 244710871 | product | 08/02, 08:56 PM UTC | 2.86 h | — |
| 244129132 | container | 08/02, 08:55 PM UTC | -0.23 h | -70.48 h |
| 205217290 | product | 08/02, 08:53 PM UTC | 0.51 h | -13.98 h |
| 205590990 | container | 08/02, 08:49 PM UTC | -0.33 h | — |
| 244710183 | container | 08/02, 08:48 PM UTC | 0.03 h | -1.79 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.