ETA accuracy benchmark · 🇬🇧 Felixstowe
How Port Flow's predicted ETA compares to each vessel's own broadcast ETA at Felixstowe, 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)
2.94 h
MAE 0.76 h · 166 voyages
Broadcast ETA (RMSE)
30.67 h
crew-declared, 140 voyages (same set)
Our advantage
90.4 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (24 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 230925000 | container | 10/12, 02:48 AM UTC | 0.49 h | -45.30 h |
| 563324800 | container | 10/12, 01:51 AM UTC | -1.06 h | -2.36 h |
| 277548000 | general-cargo | 10/11, 09:00 PM UTC | -0.21 h | -14.85 h |
| 245029000 | container | 10/11, 01:35 PM UTC | 1.95 h | -62.59 h |
| 636019364 | container | 10/11, 01:25 PM UTC | -0.37 h | -2.43 h |
| 477745300 | container | 10/11, 11:56 AM UTC | 0.08 h | -24.95 h |
| 235054097 | container | 10/11, 11:08 AM UTC | 0.44 h | 0.86 h |
| 235054097 | container | 10/11, 09:22 AM UTC | 2.49 h | -496.37 h |
| 277574000 | general-cargo | 10/10, 09:30 PM UTC | -0.14 h | -19.76 h |
| 636023266 | container | 10/10, 10:33 AM UTC | -0.11 h | -2.06 h |
| 266248000 | container | 10/10, 02:58 AM UTC | 0.59 h | -11.97 h |
| 277548000 | general-cargo | 10/10, 02:44 AM UTC | -0.05 h | -10.74 h |
| 477308100 | general-cargo | 10/10, 12:25 AM UTC | -0.43 h | -2761.42 h |
| 230925000 | container | 10/09, 05:16 PM UTC | 0.80 h | -11.78 h |
| 277574000 | general-cargo | 10/09, 02:16 PM UTC | -0.10 h | -12.52 h |
| 266248000 | container | 10/09, 03:11 AM UTC | -0.10 h | -12.19 h |
| 277548000 | general-cargo | 10/09, 02:55 AM UTC | -0.18 h | -10.92 h |
| 220284000 | container | 10/08, 09:23 PM UTC | 0.13 h | -11.82 h |
| 245029000 | container | 10/08, 07:31 PM UTC | 3.63 h | 3.48 h |
| 230925000 | container | 10/08, 06:16 PM UTC | 1.27 h | -12.77 h |
| 477967700 | container | 10/08, 04:38 PM UTC | 0.12 h | -77.15 h |
| 277574000 | general-cargo | 10/08, 02:10 PM UTC | -0.08 h | -12.43 h |
| 245029000 | container | 10/08, 01:58 PM UTC | 1.61 h | — |
| 266248000 | container | 10/08, 03:01 AM UTC | -0.05 h | -12.02 h |
| 277548000 | general-cargo | 10/08, 02:50 AM UTC | -0.05 h | -10.84 h |
| 220284000 | container | 10/07, 08:58 PM UTC | -0.19 h | -11.39 h |
| 230925000 | container | 10/07, 05:14 PM UTC | 0.18 h | -11.75 h |
| 563295600 | general-cargo | 10/07, 04:57 PM UTC | -0.03 h | -3082.95 h |
| 277574000 | general-cargo | 10/07, 03:15 PM UTC | -0.10 h | -13.51 h |
| 440489000 | container | 10/07, 10:07 AM UTC | -0.25 h | -3092.12 h |
| 266248000 | container | 10/07, 03:00 AM UTC | 0.20 h | -12.01 h |
| 277548000 | general-cargo | 10/07, 02:47 AM UTC | -0.05 h | -10.80 h |
| 563160200 | container | 10/06, 10:45 PM UTC | -0.56 h | -2.76 h |
| 211839040 | container | 10/06, 09:58 PM UTC | 0.98 h | -54.97 h |
| 220284000 | container | 10/06, 09:05 PM UTC | -0.29 h | -11.50 h |
| 230925000 | container | 10/06, 05:22 PM UTC | 0.77 h | -11.87 h |
| 277574000 | general-cargo | 10/06, 02:11 PM UTC | -0.12 h | -12.44 h |
| 355216000 | container | 10/06, 10:49 AM UTC | -0.08 h | -3165.83 h |
| 266248000 | container | 10/06, 03:14 AM UTC | 0.32 h | -21.73 h |
| 277548000 | general-cargo | 10/06, 02:50 AM UTC | -0.05 h | -21.67 h |
| 220284000 | container | 10/05, 08:59 PM UTC | -0.07 h | -59.40 h |
| 563308400 | container | 10/05, 05:28 PM UTC | -0.19 h | -1.98 h |
| 230925000 | container | 10/05, 02:49 AM UTC | 0.62 h | -45.33 h |
| 277574000 | general-cargo | 10/04, 09:01 PM UTC | -0.04 h | -14.53 h |
| 636025864 | container | 10/04, 04:36 PM UTC | -0.13 h | -2.11 h |
| 477929200 | container | 10/04, 01:12 AM UTC | -0.25 h | -2363.21 h |
| 277548000 | general-cargo | 10/03, 09:17 PM UTC | -0.21 h | -19.54 h |
| 636023270 | container | 10/03, 03:19 PM UTC | -0.07 h | -1956.82 h |
| 249767000 | product | 10/03, 10:18 AM UTC | 0.52 h | -4.30 h |
| 266248000 | container | 10/03, 03:01 AM UTC | 0.37 h | -12.03 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.