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 90 days. We publish the number — good or bad. Lower error is better.
Port Flow predicted ETA (RMSE)
10.56 h
MAE 3.26 h · 441 voyages
Broadcast ETA (RMSE)
30.10 h
crew-declared, 239 voyages (same set)
Our advantage
64.9 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (28 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| MMSI | Cargo | Arrival | Our error | Broadcast error |
|---|---|---|---|---|
| 220284000 | container | 07/11, 09:15 PM UTC | 0.01 h | -11.60 h |
| 277574000 | general-cargo | 07/11, 02:58 AM UTC | -0.13 h | -23.98 h |
| 266248000 | container | 07/11, 02:52 AM UTC | -0.70 h | -11.87 h |
| 477883300 | general-cargo | 07/10, 10:39 PM UTC | 0.42 h | -968.16 h |
| 220284000 | container | 07/10, 09:00 PM UTC | -0.02 h | -11.34 h |
| 230925000 | container | 07/10, 05:30 PM UTC | -0.72 h | -12.02 h |
| 440486000 | container | 07/10, 05:06 PM UTC | -0.38 h | -3.61 h |
| 277548000 | general-cargo | 07/10, 02:14 PM UTC | -0.17 h | -12.99 h |
| 277574000 | general-cargo | 07/10, 03:51 AM UTC | -0.51 h | -11.86 h |
| 266248000 | container | 07/10, 02:49 AM UTC | -0.17 h | -11.83 h |
| 220284000 | container | 07/09, 08:57 PM UTC | -0.13 h | -11.29 h |
| 230925000 | container | 07/09, 05:19 PM UTC | 0.78 h | -11.82 h |
| 636017408 | container | 07/09, 04:12 PM UTC | -0.00 h | -2.21 h |
| 277548000 | general-cargo | 07/09, 02:20 PM UTC | -0.36 h | -12.59 h |
| 352978199 | container | 07/09, 01:31 PM UTC | -0.01 h | 0.48 h |
| 266248000 | container | 07/09, 03:01 AM UTC | 0.63 h | -12.02 h |
| 277574000 | general-cargo | 07/09, 02:54 AM UTC | -0.27 h | -10.91 h |
| 220284000 | container | 07/08, 09:05 PM UTC | -0.00 h | -11.42 h |
| 230925000 | container | 07/08, 05:23 PM UTC | -0.10 h | -11.89 h |
| 277548000 | general-cargo | 07/08, 02:01 PM UTC | -0.02 h | -12.78 h |
| 255917306 | container | 07/08, 11:05 AM UTC | 0.12 h | — |
| 266248000 | container | 07/08, 02:59 AM UTC | 0.22 h | -11.99 h |
| 277574000 | general-cargo | 07/08, 02:56 AM UTC | -0.17 h | -10.94 h |
| 220284000 | container | 07/07, 09:01 PM UTC | -0.12 h | -11.36 h |
| 230925000 | container | 07/07, 05:16 PM UTC | -0.95 h | -83.78 h |
| 371233000 | container | 07/07, 03:26 PM UTC | 0.03 h | -0.69 h |
| 277548000 | general-cargo | 07/07, 02:40 PM UTC | -0.17 h | -12.92 h |
| 235054097 | container | 07/07, 01:12 PM UTC | 0.58 h | 0.79 h |
| 235054097 | container | 07/07, 12:03 PM UTC | -16.02 h | -51.32 h |
| 266248000 | container | 07/07, 03:12 AM UTC | 0.89 h | -21.70 h |
| 277574000 | general-cargo | 07/07, 02:59 AM UTC | -0.08 h | -73.25 h |
| 636024736 | container | 07/06, 11:39 PM UTC | -0.09 h | — |
| 220284000 | container | 07/06, 09:06 PM UTC | -0.08 h | -15.94 h |
| 246191000 | general-cargo | 07/06, 01:22 PM UTC | -0.22 h | -193.37 h |
| 636023268 | container | 07/06, 04:01 AM UTC | -0.41 h | -2.77 h |
| 277548000 | general-cargo | 07/05, 08:33 PM UTC | -0.01 h | -14.06 h |
| 477928600 | container | 07/05, 02:44 PM UTC | -0.11 h | -2.25 h |
| 235054097 | container | 07/05, 06:53 AM UTC | -13.73 h | -22.15 h |
| 220284000 | container | 07/04, 09:19 PM UTC | -0.29 h | -11.66 h |
| 235054097 | container | 07/04, 07:01 AM UTC | -12.63 h | -23.02 h |
| 266248000 | container | 07/04, 02:58 AM UTC | -0.62 h | -11.98 h |
| 277548000 | general-cargo | 07/04, 02:50 AM UTC | -0.07 h | -10.84 h |
| 220284000 | container | 07/03, 08:57 PM UTC | -0.11 h | -11.29 h |
| 230925000 | container | 07/03, 05:23 PM UTC | 0.97 h | -11.89 h |
| 277574000 | general-cargo | 07/03, 02:08 PM UTC | -0.13 h | -12.39 h |
| 563327500 | container | 07/03, 01:00 PM UTC | -0.17 h | -26.34 h |
| 235054097 | container | 07/03, 06:41 AM UTC | -17.26 h | -18.69 h |
| 266248000 | container | 07/03, 02:52 AM UTC | 0.51 h | -23.88 h |
| 277548000 | general-cargo | 07/03, 02:51 AM UTC | -0.04 h | -10.85 h |
| 220284000 | container | 07/02, 08:58 PM UTC | -0.21 h | -11.31 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.