ETA accuracy benchmark · 🇮🇹 Genoa
How Port Flow's predicted ETA compares to each vessel's own broadcast ETA at Genoa, 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)
8.47 h
MAE 13.19 h · 987 voyages
Broadcast ETA (RMSE)
78.97 h
crew-declared, 363 voyages (same set)
Our advantage
89.3 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (456 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 215325000 | container | 10/12, 05:18 AM UTC | 0.49 h | -1.01 h |
| 236509000 | container | 10/12, 05:13 AM UTC | 2.00 h | -781.23 h |
| 215940000 | container | 10/12, 05:08 AM UTC | -0.20 h | -1788.14 h |
| 563183100 | container | 10/12, 04:50 AM UTC | -0.41 h | -48.84 h |
| 247453600 | general-cargo | 10/12, 04:22 AM UTC | 1.70 h | -1.37 h |
| 247453600 | general-cargo | 10/12, 04:10 AM UTC | 0.32 h | -114.93 h |
| 247304200 | container | 10/11, 07:57 PM UTC | 0.68 h | -1198.96 h |
| 249319000 | container | 10/11, 05:48 PM UTC | 1.58 h | -2.80 h |
| 247380600 | container | 10/11, 03:26 PM UTC | -0.13 h | 7011.56 h |
| 247287200 | product | 10/11, 03:20 PM UTC | -0.21 h | -305.59 h |
| 247380600 | container | 10/11, 02:04 PM UTC | 0.61 h | 7012.92 h |
| 255805929 | container | 10/11, 01:54 PM UTC | 0.62 h | -0.41 h |
| 247388500 | container | 10/11, 01:31 PM UTC | 0.36 h | -458.03 h |
| 247287200 | product | 10/11, 01:27 PM UTC | 1.38 h | — |
| 255805834 | container | 10/11, 01:20 PM UTC | 0.40 h | -74.84 h |
| 247270900 | product | 10/11, 10:10 AM UTC | 0.01 h | 7161.82 h |
| 247388500 | container | 10/11, 09:03 AM UTC | -0.31 h | -453.56 h |
| 247287200 | product | 10/11, 07:24 AM UTC | -0.47 h | — |
| 310826000 | container | 10/11, 06:56 AM UTC | 1.53 h | -1113.93 h |
| 247380600 | container | 10/11, 06:54 AM UTC | 0.22 h | 7020.08 h |
| 256070000 | container | 10/11, 05:44 AM UTC | -0.03 h | -141.24 h |
| 205703000 | chemical | 10/10, 06:00 PM UTC | 1.90 h | — |
| 205703000 | chemical | 10/10, 05:40 PM UTC | -0.93 h | -18.67 h |
| 636023127 | general-cargo | 10/10, 04:35 PM UTC | 0.84 h | -451.59 h |
| 247270900 | product | 10/10, 04:22 PM UTC | 0.24 h | — |
| 247061700 | container | 10/10, 03:53 PM UTC | 0.85 h | 1.11 h |
| 247287200 | product | 10/10, 02:36 PM UTC | -0.22 h | -280.87 h |
| 247270900 | product | 10/10, 02:29 PM UTC | 0.91 h | 7181.51 h |
| 247388500 | container | 10/10, 02:18 PM UTC | -0.45 h | -434.80 h |
| 247287200 | product | 10/10, 11:08 AM UTC | 1.65 h | — |
| 247287200 | product | 10/10, 11:04 AM UTC | 0.32 h | — |
| 247270900 | product | 10/10, 10:51 AM UTC | 0.75 h | — |
| 255916531 | container | 10/10, 10:13 AM UTC | -0.31 h | -51.23 h |
| 247388500 | container | 10/10, 09:00 AM UTC | -0.23 h | -429.50 h |
| 247270900 | product | 10/10, 08:45 AM UTC | 0.02 h | — |
| 255806391 | container | 10/10, 08:29 AM UTC | -0.07 h | -1.49 h |
| 229296000 | general-cargo | 10/10, 08:15 AM UTC | 0.86 h | -411.26 h |
| 255806056 | container | 10/10, 07:54 AM UTC | 1.08 h | -0.90 h |
| 255806056 | general-cargo | 10/10, 07:44 AM UTC | 0.22 h | -99.73 h |
| 255916593 | container | 10/10, 07:29 AM UTC | -0.16 h | -63.49 h |
| 247380600 | container | 10/10, 07:27 AM UTC | 1.22 h | 7043.55 h |
| 215548000 | container | 10/10, 07:04 AM UTC | -0.72 h | -70.07 h |
| 247270900 | product | 10/10, 06:47 AM UTC | 1.32 h | 7189.21 h |
| 247380600 | container | 10/10, 06:37 AM UTC | 0.92 h | 7044.38 h |
| 248717000 | container | 10/10, 06:35 AM UTC | 0.51 h | -145.59 h |
| 247383400 | container | 10/10, 06:03 AM UTC | 1.48 h | -65.56 h |
| 357627000 | container | 10/10, 05:43 AM UTC | 0.13 h | -215.73 h |
| 247297200 | container | 10/10, 04:34 AM UTC | -0.24 h | -0.82 h |
| 247297200 | container | 10/10, 04:23 AM UTC | 0.19 h | -66.64 h |
| 240630000 | container | 10/10, 04:05 AM UTC | 0.28 h | -534.09 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.