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)
1.34 h
MAE 13.22 h · 988 voyages
Broadcast ETA (RMSE)
60.61 h
crew-declared, 283 voyages (same set)
Our advantage
97.8 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (189 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 244620974 | container | 10/12, 05:25 AM UTC | 0.84 h | -158.04 h |
| 244000932 | container | 10/12, 05:23 AM UTC | 2.48 h | — |
| 269057360 | product | 10/12, 05:22 AM UTC | -0.19 h | -8.91 h |
| 244750687 | container | 10/12, 05:21 AM UTC | 1.12 h | — |
| 244690180 | container | 10/12, 05:20 AM UTC | 0.41 h | — |
| 244660117 | container | 10/12, 05:19 AM UTC | 1.11 h | 3319.50 h |
| 244002499 | product | 10/12, 05:17 AM UTC | -0.45 h | -1643.29 h |
| 244670341 | container | 10/12, 05:15 AM UTC | -0.39 h | — |
| 244030466 | container | 10/12, 05:14 AM UTC | 2.16 h | 94.98 h |
| 244750687 | container | 10/12, 05:05 AM UTC | 1.09 h | — |
| 269057594 | container | 10/12, 05:04 AM UTC | -0.39 h | -450.65 h |
| 244001448 | product | 10/12, 05:02 AM UTC | -0.12 h | 2.26 h |
| 244002460 | container | 10/12, 05:01 AM UTC | 0.01 h | — |
| 244750687 | container | 10/12, 04:59 AM UTC | -0.02 h | — |
| 244690653 | container | 10/12, 04:59 AM UTC | 0.95 h | 4814.01 h |
| 244660117 | container | 10/12, 04:57 AM UTC | 0.21 h | 3319.85 h |
| 244750687 | container | 10/12, 04:50 AM UTC | -0.04 h | — |
| 244690137 | container | 10/12, 04:49 AM UTC | 0.43 h | — |
| 244750687 | container | 10/12, 04:44 AM UTC | 1.26 h | — |
| 314608000 | container | 10/12, 04:43 AM UTC | 1.59 h | 2.28 h |
| 244690653 | container | 10/12, 04:39 AM UTC | -0.22 h | 4814.35 h |
| 244750687 | container | 10/12, 04:37 AM UTC | -0.13 h | — |
| 244690137 | container | 10/12, 04:36 AM UTC | 2.63 h | — |
| 244373397 | container | 10/12, 04:35 AM UTC | 0.11 h | — |
| 244750687 | container | 10/12, 04:25 AM UTC | 3.24 h | — |
| 218027120 | product | 10/12, 04:25 AM UTC | 0.10 h | -37.87 h |
| 269057594 | container | 10/12, 04:23 AM UTC | -0.14 h | — |
| 244660196 | container | 10/12, 04:22 AM UTC | -1042.66 h | -1045.14 h |
| 244770588 | container | 10/12, 04:21 AM UTC | 2.07 h | 6811.65 h |
| 244690137 | container | 10/12, 04:14 AM UTC | 0.23 h | — |
| 244001448 | product | 10/12, 04:10 AM UTC | 0.60 h | 3.13 h |
| 205566890 | container | 10/12, 04:07 AM UTC | 0.10 h | — |
| 244690137 | container | 10/12, 04:06 AM UTC | 2.41 h | — |
| 211395020 | product | 10/12, 04:05 AM UTC | 0.95 h | -148.10 h |
| 211540960 | product | 10/12, 04:03 AM UTC | 1.29 h | — |
| 244660117 | container | 10/12, 04:03 AM UTC | 0.04 h | — |
| 244102434 | container | 10/12, 03:58 AM UTC | -0.33 h | -54.47 h |
| 205571490 | container | 10/12, 03:54 AM UTC | 0.51 h | — |
| 244690352 | container | 10/12, 03:53 AM UTC | -0.23 h | — |
| 563319100 | product | 10/12, 03:50 AM UTC | 1.17 h | -141.84 h |
| 244770588 | container | 10/12, 03:40 AM UTC | 0.15 h | 6812.33 h |
| 244690358 | container | 10/12, 03:38 AM UTC | 0.12 h | — |
| 636018752 | product | 10/12, 03:38 AM UTC | 1.00 h | -1.63 h |
| 205585590 | container | 10/12, 03:28 AM UTC | 3.36 h | -85.59 h |
| 244130285 | container | 10/12, 03:22 AM UTC | 3.22 h | -55.38 h |
| 244670266 | product | 10/12, 03:07 AM UTC | 1.51 h | -11.13 h |
| 244020558 | container | 10/12, 02:59 AM UTC | -0.09 h | -78.35 h |
| 244140757 | container | 10/12, 02:54 AM UTC | -0.01 h | -67.57 h |
| 244371956 | container | 10/12, 02:47 AM UTC | 0.12 h | 2.38 h |
| 244690352 | container | 10/12, 02:45 AM UTC | 0.15 h | -6.63 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.