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.08 h
MAE 4.54 h · 976 voyages
Broadcast ETA (RMSE)
55.56 h
crew-declared, 400 voyages (same set)
Our advantage
90.9 %
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)| 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 |
| 205578090 | product | 08/02, 08:47 PM UTC | 1.46 h | 9.19 h |
| 244700592 | container | 08/02, 08:46 PM UTC | -0.16 h | 2757.32 h |
| 352005065 | product | 08/02, 08:41 PM UTC | 8.36 h | -82.70 h |
| 211519100 | product | 08/02, 08:41 PM UTC | 0.47 h | — |
| 244660394 | container | 08/02, 08:40 PM UTC | 0.18 h | — |
| 205393990 | container | 08/02, 08:33 PM UTC | 0.18 h | — |
| 205369890 | product | 08/02, 08:32 PM UTC | 4.16 h | -0.27 h |
| 244005917 | product | 08/02, 08:29 PM UTC | 3.83 h | -32.06 h |
| 244740730 | container | 08/02, 08:28 PM UTC | -0.05 h | -918.48 h |
| 205551390 | product | 08/02, 08:27 PM UTC | -2.12 h | -180.86 h |
| 244630003 | container | 08/02, 08:19 PM UTC | -0.09 h | -268.23 h |
| 244723788 | product | 08/02, 08:18 PM UTC | 4.01 h | -73.80 h |
| 205217290 | product | 08/02, 08:12 PM UTC | 0.64 h | -13.29 h |
| 244700668 | product | 08/02, 08:06 PM UTC | -2.59 h | 4265.49 h |
| 211129800 | product | 08/02, 08:03 PM UTC | 1.67 h | -55.86 h |
| 244050638 | container | 08/02, 08:02 PM UTC | -0.45 h | — |
| 205217290 | product | 08/02, 07:57 PM UTC | 0.39 h | -13.04 h |
| 244690411 | product | 08/02, 07:55 PM UTC | -4.66 h | 3604.07 h |
| 244740148 | container | 08/02, 07:54 PM UTC | 0.34 h | -3.27 h |
| 205542590 | product | 08/02, 07:54 PM UTC | -2.27 h | -22.74 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.