ETA accuracy benchmark · 🇬🇧 Southampton
How Port Flow's predicted ETA compares to each vessel's own broadcast ETA at Southampton, 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.01 h
MAE 4.77 h · 429 voyages
Broadcast ETA (RMSE)
56.65 h
crew-declared, 204 voyages (same set)
Our advantage
91.2 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (177 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 229822000 | product | 10/12, 04:24 AM UTC | -1.78 h | -2854.41 h |
| 232019192 | container | 10/12, 04:13 AM UTC | 0.42 h | 1939.78 h |
| 232019192 | container | 10/12, 03:17 AM UTC | 0.29 h | — |
| 246724000 | container | 10/11, 11:31 PM UTC | 5.46 h | 1.62 h |
| 255915758 | container | 10/11, 11:29 PM UTC | 0.71 h | -1.49 h |
| 259307000 | container | 10/11, 10:39 PM UTC | 0.19 h | -2.63 h |
| 255804590 | container | 10/11, 06:12 PM UTC | -11.10 h | -272.21 h |
| 209247000 | container | 10/11, 05:38 PM UTC | -6.23 h | -756.64 h |
| 636021249 | container | 10/11, 03:14 PM UTC | 0.32 h | -3309.24 h |
| 255801540 | container | 10/11, 02:38 PM UTC | -0.33 h | -10.14 h |
| 235009804 | container | 10/11, 11:35 AM UTC | -0.13 h | — |
| 257268000 | container | 10/11, 11:33 AM UTC | -0.01 h | -2.31 h |
| 257368000 | container | 10/11, 10:25 AM UTC | -0.05 h | 0.57 h |
| 257368000 | container | 10/11, 10:11 AM UTC | -0.09 h | 0.80 h |
| 235040503 | chemical | 10/11, 10:04 AM UTC | 0.73 h | -34.82 h |
| 255893000 | chemical | 10/11, 09:26 AM UTC | 1.94 h | -5.45 h |
| 255801540 | container | 10/11, 06:32 AM UTC | -0.09 h | -131.54 h |
| 235505000 | container | 10/11, 06:32 AM UTC | 0.63 h | -79.53 h |
| 563229400 | container | 10/11, 02:49 AM UTC | -14.35 h | -2527.83 h |
| 235007413 | chemical | 10/10, 09:32 PM UTC | -0.03 h | -5.53 h |
| 538008142 | product | 10/10, 12:29 PM UTC | 3.26 h | -49.00 h |
| 235040503 | chemical | 10/10, 10:41 AM UTC | -0.25 h | -11.44 h |
| 255915622 | container | 10/10, 07:47 AM UTC | -14.81 h | -653.30 h |
| 235007880 | chemical | 10/10, 06:57 AM UTC | 0.21 h | 0.04 h |
| 244092000 | lng | 10/10, 05:46 AM UTC | 0.16 h | -16.27 h |
| 235009956 | chemical | 10/10, 05:42 AM UTC | 0.64 h | -93.71 h |
| 636017870 | container | 10/10, 04:07 AM UTC | 0.38 h | -1098.12 h |
| 563051300 | container | 10/09, 11:31 PM UTC | 0.55 h | -2396.52 h |
| 235040503 | chemical | 10/09, 10:34 PM UTC | -0.22 h | 0.67 h |
| 244092000 | lng | 10/09, 09:52 PM UTC | 0.19 h | -113.87 h |
| 215746000 | chemical | 10/09, 04:52 PM UTC | 0.72 h | -454.87 h |
| 232019192 | container | 10/09, 03:39 PM UTC | -0.00 h | — |
| 232019192 | container | 10/09, 03:22 PM UTC | -0.06 h | 2000.63 h |
| 636091569 | product | 10/09, 01:50 PM UTC | 3.00 h | -680.83 h |
| 636015952 | general-cargo | 10/09, 01:22 PM UTC | 0.37 h | -2362.38 h |
| 235007880 | chemical | 10/09, 12:11 PM UTC | -0.03 h | -3.19 h |
| 232019192 | container | 10/09, 12:07 PM UTC | 0.01 h | 2003.88 h |
| 235007880 | chemical | 10/09, 09:16 AM UTC | 0.45 h | -0.27 h |
| 232019192 | container | 10/09, 09:13 AM UTC | -0.02 h | 2006.77 h |
| 636019984 | container | 10/09, 08:25 AM UTC | 0.94 h | -88.68 h |
| 232019192 | container | 10/09, 06:18 AM UTC | -0.28 h | 2009.70 h |
| 311000321 | container | 10/09, 06:12 AM UTC | 0.14 h | -28.13 h |
| 235500000 | container | 10/09, 04:54 AM UTC | -0.07 h | 2011.09 h |
| 311001547 | container | 10/09, 04:16 AM UTC | 0.41 h | -2773.27 h |
| 232019192 | container | 10/09, 03:17 AM UTC | -0.03 h | 2012.71 h |
| 636093154 | general-cargo | 10/08, 08:19 PM UTC | 0.37 h | -2783.32 h |
| 257731000 | chemical | 10/08, 03:09 PM UTC | 2.56 h | -23.66 h |
| 235009956 | chemical | 10/08, 02:41 PM UTC | 0.26 h | -54.70 h |
| 211230400 | container | 10/08, 01:33 PM UTC | 0.40 h | -217.55 h |
| 232019192 | container | 10/08, 12:42 PM UTC | -0.25 h | 2027.30 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.