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.15 h
MAE 15.93 h · 416 voyages
Broadcast ETA (RMSE)
33.17 h
crew-declared, 357 voyages (same set)
Our advantage
69.4 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (50 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 220284000 | container | 08/26, 09:25 PM UTC | -0.22 h | -11.76 h |
| 416071000 | container | 08/26, 08:53 PM UTC | -0.20 h | -1858.39 h |
| 230925000 | container | 08/26, 05:28 PM UTC | 0.29 h | -11.98 h |
| 277574000 | general-cargo | 08/26, 02:09 PM UTC | -0.02 h | -12.40 h |
| 304081008 | container | 08/26, 12:16 PM UTC | -19.27 h | — |
| 636021992 | container | 08/26, 04:06 AM UTC | -0.24 h | -1369.11 h |
| 266248000 | container | 08/26, 02:55 AM UTC | 0.12 h | -11.92 h |
| 277548000 | general-cargo | 08/26, 02:52 AM UTC | -0.09 h | -10.88 h |
| 636022443 | container | 08/25, 09:39 PM UTC | 0.10 h | -3.66 h |
| 220284000 | container | 08/25, 09:01 PM UTC | -0.24 h | -11.36 h |
| 230925000 | container | 08/25, 05:17 PM UTC | 1.00 h | -11.79 h |
| 304081008 | container | 08/25, 04:41 PM UTC | 0.28 h | -103.69 h |
| 277574000 | general-cargo | 08/25, 02:10 PM UTC | -0.07 h | -12.42 h |
| 266248000 | container | 08/25, 02:58 AM UTC | 0.42 h | -21.47 h |
| 277548000 | general-cargo | 08/25, 02:53 AM UTC | -0.16 h | -145.14 h |
| 304081008 | container | 08/25, 01:32 AM UTC | 0.45 h | — |
| 220284000 | container | 08/24, 09:06 PM UTC | -0.09 h | -15.95 h |
| 636022451 | container | 08/24, 09:11 AM UTC | 0.04 h | -1.20 h |
| 563333300 | container | 08/24, 05:32 AM UTC | -0.34 h | -2.53 h |
| 230925000 | container | 08/24, 02:55 AM UTC | 0.94 h | -117.43 h |
| 277574000 | general-cargo | 08/23, 09:17 PM UTC | -0.08 h | -14.78 h |
| 304081008 | container | 08/23, 09:14 PM UTC | -0.45 h | -60.24 h |
| 311001150 | container | 08/23, 04:56 PM UTC | -0.01 h | -2167.69 h |
| 255915962 | container | 08/23, 12:45 PM UTC | 0.02 h | -590.76 h |
| 305844000 | container | 08/23, 07:32 AM UTC | 0.53 h | -2066.54 h |
| 220284000 | container | 08/22, 09:25 PM UTC | 0.03 h | -83.75 h |
| 255917255 | container | 08/22, 08:07 PM UTC | -0.04 h | -25.12 h |
| 266248000 | container | 08/19, 03:05 AM UTC | 0.05 h | -12.09 h |
| 277574000 | general-cargo | 08/19, 02:57 AM UTC | -0.05 h | -0.87 h |
| 232063038 | product | 08/18, 11:58 PM UTC | 2.03 h | -1567.98 h |
| 220284000 | container | 08/18, 09:04 PM UTC | -0.14 h | -11.42 h |
| 230925000 | container | 08/18, 05:26 PM UTC | 1.32 h | -11.93 h |
| 277548000 | general-cargo | 08/18, 02:13 PM UTC | -0.13 h | -12.47 h |
| 277574000 | general-cargo | 08/18, 03:14 AM UTC | -0.38 h | -1.15 h |
| 266248000 | container | 08/18, 02:55 AM UTC | -0.05 h | -357.42 h |
| 636022722 | container | 08/18, 02:48 AM UTC | 0.01 h | -2.30 h |
| 220284000 | container | 08/17, 09:02 PM UTC | -0.08 h | -299.30 h |
| 235054097 | container | 08/17, 02:01 PM UTC | 0.03 h | -0.02 h |
| 636016125 | container | 08/17, 09:30 AM UTC | -0.30 h | -1981.51 h |
| 235054097 | container | 08/17, 08:45 AM UTC | 0.93 h | 5.23 h |
| 636023265 | container | 08/17, 07:57 AM UTC | -2099.60 h | -1381.95 h |
| 230925000 | container | 08/17, 07:52 AM UTC | -297.89 h | -290.38 h |
| 277548000 | general-cargo | 08/17, 07:50 AM UTC | -281.97 h | -294.09 h |
| 215878000 | container | 08/17, 07:49 AM UTC | -1407.26 h | -1399.81 h |
| 314826000 | container | 08/05, 12:18 PM UTC | -31.74 h | -54.31 h |
| 277574000 | general-cargo | 08/05, 02:52 AM UTC | -0.18 h | -12.79 h |
| 220284000 | container | 08/04, 09:02 PM UTC | -0.15 h | -11.38 h |
| 230925000 | container | 08/04, 05:26 PM UTC | 0.04 h | -11.94 h |
| 277548000 | general-cargo | 08/04, 02:06 PM UTC | -0.11 h | -11.35 h |
| 277574000 | general-cargo | 08/04, 02:51 AM UTC | -0.05 h | -73.60 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.