ETA accuracy benchmark · 🇧🇪 Antwerp
How Port Flow's predicted ETA compares to each vessel's own broadcast ETA at Antwerp, 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)
12.85 h
MAE 8.28 h · 986 voyages
Broadcast ETA (RMSE)
58.00 h
crew-declared, 388 voyages (same set)
Our advantage
77.8 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (190 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 205517990 | product | 10/12, 04:31 AM UTC | 3.32 h | — |
| 636016302 | product | 10/12, 04:23 AM UTC | 1.17 h | -11.39 h |
| 205543390 | container | 10/12, 04:22 AM UTC | 1.55 h | — |
| 205529590 | container | 10/12, 04:17 AM UTC | 1.91 h | 4.88 h |
| 205450690 | container | 10/12, 04:16 AM UTC | 1.97 h | 4736.97 h |
| 244710325 | container | 10/12, 04:16 AM UTC | 2.08 h | 10.53 h |
| 244039456 | container | 10/12, 04:16 AM UTC | -0.06 h | -425.22 h |
| 244690052 | container | 10/12, 04:10 AM UTC | 0.13 h | -52.30 h |
| 205578790 | container | 10/12, 04:07 AM UTC | 1.51 h | — |
| 244076909 | container | 10/12, 04:04 AM UTC | 0.20 h | — |
| 253242276 | container | 10/12, 04:04 AM UTC | -0.36 h | — |
| 244039456 | container | 10/12, 04:03 AM UTC | -0.50 h | — |
| 244710207 | product | 10/12, 04:03 AM UTC | -1.52 h | -38.40 h |
| 244780045 | product | 10/12, 04:00 AM UTC | -1.22 h | — |
| 352003272 | chemical | 10/12, 03:59 AM UTC | -0.30 h | — |
| 244040891 | product | 10/12, 03:58 AM UTC | 1.94 h | -650.06 h |
| 205218590 | product | 10/12, 03:56 AM UTC | 3.85 h | — |
| 244076909 | container | 10/12, 03:53 AM UTC | -0.12 h | — |
| 244660065 | container | 10/12, 03:47 AM UTC | 2.24 h | — |
| 211530930 | product | 10/12, 03:44 AM UTC | 1.31 h | — |
| 253242285 | product | 10/12, 03:43 AM UTC | 0.68 h | -143.82 h |
| 244039456 | container | 10/12, 03:40 AM UTC | -0.87 h | — |
| 244660108 | container | 10/12, 03:40 AM UTC | 1.78 h | 5876.33 h |
| 205590790 | container | 10/12, 03:35 AM UTC | -1.05 h | 7.86 h |
| 244830333 | product | 10/12, 03:33 AM UTC | -0.42 h | 15.98 h |
| 244504782 | product | 10/12, 03:33 AM UTC | 0.82 h | — |
| 244002553 | container | 10/12, 03:30 AM UTC | 1.50 h | — |
| 244650607 | product | 10/12, 03:30 AM UTC | -0.32 h | — |
| 205218590 | product | 10/12, 03:19 AM UTC | -2.04 h | -499.05 h |
| 636022343 | product | 10/12, 03:17 AM UTC | -0.41 h | 159.71 h |
| 244039456 | container | 10/12, 03:14 AM UTC | -0.44 h | — |
| 244670312 | product | 10/12, 03:03 AM UTC | 2.65 h | — |
| 255801780 | container | 10/12, 03:01 AM UTC | -0.35 h | -7.52 h |
| 235070283 | product | 10/12, 02:59 AM UTC | -0.29 h | 32.01 h |
| 244650607 | product | 10/12, 02:55 AM UTC | -1.23 h | — |
| 538008886 | product | 10/12, 02:52 AM UTC | -10.92 h | -20.87 h |
| 352003272 | chemical | 10/12, 02:48 AM UTC | -0.77 h | -3160.82 h |
| 244000542 | product | 10/12, 02:45 AM UTC | -1.13 h | -109.99 h |
| 371474000 | container | 10/12, 02:44 AM UTC | -0.49 h | -615.24 h |
| 205588290 | product | 10/12, 02:41 AM UTC | -0.72 h | 7.13 h |
| 244009301 | container | 10/12, 02:38 AM UTC | -0.48 h | — |
| 244730016 | product | 10/12, 02:35 AM UTC | -1.61 h | -33.50 h |
| 232061014 | container | 10/12, 02:27 AM UTC | -0.51 h | -544.45 h |
| 256442000 | product | 10/12, 02:22 AM UTC | 3.20 h | -7.37 h |
| 244650607 | product | 10/12, 02:20 AM UTC | -1.11 h | -10.74 h |
| 211285530 | chemical | 10/12, 02:07 AM UTC | 1.34 h | — |
| 244660483 | product | 10/12, 02:07 AM UTC | 3.52 h | -16.12 h |
| 244504782 | product | 10/12, 02:06 AM UTC | -0.28 h | — |
| 244710971 | container | 10/12, 02:02 AM UTC | -0.07 h | — |
| 244830333 | product | 10/12, 02:00 AM UTC | -0.80 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.