ETA accuracy benchmark · 🇳🇱 Amsterdam
How Port Flow's predicted ETA compares to each vessel's own broadcast ETA at Amsterdam, 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)
4.37 h
MAE 15.10 h · 984 voyages
Broadcast ETA (RMSE)
51.37 h
crew-declared, 201 voyages (same set)
Our advantage
91.5 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (229 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 244725817 | container | 08/26, 11:57 PM UTC | -0.49 h | -25.35 h |
| 244000711 | container | 08/26, 11:53 PM UTC | -0.49 h | -159.35 h |
| 244031327 | lng | 08/26, 11:53 PM UTC | -0.37 h | 430.11 h |
| 244890275 | product | 08/26, 11:45 PM UTC | -0.36 h | — |
| 205509590 | product | 08/26, 11:35 PM UTC | -0.24 h | -34.93 h |
| 232046269 | product | 08/26, 11:34 PM UTC | -0.02 h | -752.57 h |
| 246845000 | container | 08/26, 11:26 PM UTC | 0.36 h | -1485.44 h |
| 211121690 | container | 08/26, 11:14 PM UTC | 0.51 h | — |
| 244131369 | product | 08/26, 11:08 PM UTC | 0.23 h | -50.80 h |
| 244000835 | product | 08/26, 11:07 PM UTC | 0.40 h | -789.37 h |
| 244700311 | container | 08/26, 11:06 PM UTC | 0.41 h | — |
| 244740684 | product | 08/26, 11:05 PM UTC | 0.16 h | — |
| 244100621 | container | 08/26, 11:03 PM UTC | 0.22 h | — |
| 244690107 | container | 08/26, 11:01 PM UTC | 1.82 h | — |
| 244001028 | product | 08/26, 11:00 PM UTC | 0.33 h | -524.88 h |
| 244030715 | product | 08/26, 10:33 PM UTC | -0.18 h | — |
| 211882550 | container | 08/26, 10:32 PM UTC | 5.14 h | — |
| 244670528 | container | 08/26, 10:26 PM UTC | -0.23 h | -529.68 h |
| 244130295 | product | 08/26, 10:13 PM UTC | -0.43 h | -117.79 h |
| 244630829 | product | 08/26, 10:08 PM UTC | -0.95 h | -37.62 h |
| 244710876 | product | 08/26, 10:00 PM UTC | -0.38 h | -5.53 h |
| 244740684 | product | 08/26, 09:53 PM UTC | -0.64 h | — |
| 205309890 | container | 08/26, 09:42 PM UTC | 0.47 h | — |
| 244700512 | container | 08/26, 09:30 PM UTC | 1.46 h | — |
| 244710657 | container | 08/26, 09:29 PM UTC | -0.54 h | 3871.51 h |
| 205435990 | product | 08/26, 09:26 PM UTC | 4.29 h | -381.33 h |
| 244700503 | container | 08/26, 09:20 PM UTC | -0.02 h | 564.66 h |
| 248080000 | product | 08/26, 09:16 PM UTC | 0.73 h | -3.28 h |
| 205309890 | container | 08/26, 09:16 PM UTC | -0.01 h | -18.33 h |
| 244650868 | container | 08/26, 09:15 PM UTC | -0.35 h | — |
| 244710903 | product | 08/26, 09:13 PM UTC | -0.45 h | -1151.34 h |
| 211121690 | container | 08/26, 09:11 PM UTC | -0.06 h | — |
| 244860456 | container | 08/26, 09:05 PM UTC | 0.91 h | — |
| 244630169 | container | 08/26, 09:04 PM UTC | -0.18 h | — |
| 205566890 | container | 08/26, 09:04 PM UTC | 1.90 h | 4439.81 h |
| 205309890 | container | 08/26, 08:46 PM UTC | 0.23 h | -17.85 h |
| 205566890 | container | 08/26, 08:45 PM UTC | 1.12 h | — |
| 244620869 | product | 08/26, 08:42 PM UTC | 0.07 h | 9.92 h |
| 244670414 | container | 08/26, 08:32 PM UTC | -998.60 h | 5104.80 h |
| 205566890 | container | 08/26, 08:29 PM UTC | 2.13 h | 4440.38 h |
| 205435990 | product | 08/26, 08:23 PM UTC | 0.47 h | -380.27 h |
| 311001802 | container | 08/26, 08:22 PM UTC | 1.52 h | — |
| 244740579 | container | 08/26, 08:17 PM UTC | -0.68 h | -630.89 h |
| 205388490 | container | 08/26, 08:15 PM UTC | 1.96 h | 1600.24 h |
| 205555190 | product | 08/26, 08:10 PM UTC | -0.03 h | — |
| 244020943 | product | 08/26, 08:08 PM UTC | 0.25 h | -187.15 h |
| 269057061 | product | 08/26, 07:57 PM UTC | 0.36 h | -73.22 h |
| 244690150 | container | 08/26, 07:57 PM UTC | 1.18 h | 3040.04 h |
| 244700444 | container | 08/26, 07:51 PM UTC | -0.01 h | 4430.64 h |
| 244740942 | product | 08/26, 07:46 PM UTC | 1.30 h | -58.96 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.