ETA accuracy benchmark · 🇫🇷 Marseille-Fos
How Port Flow's predicted ETA compares to each vessel's own broadcast ETA at Marseille-Fos, 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)
30.31 h
MAE 21.22 h · 376 voyages
Broadcast ETA (RMSE)
65.90 h
crew-declared, 241 voyages (same set)
Our advantage
54.0 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (88 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 |
|---|---|---|---|---|
| 228287600 | product | 07/12, 06:34 AM UTC | 2.83 h | -364.58 h |
| 355087000 | product | 07/12, 03:49 AM UTC | 3.48 h | -0.82 h |
| 255806310 | general-cargo | 07/12, 03:48 AM UTC | 11.88 h | -377.81 h |
| 228403600 | product | 07/11, 04:41 PM UTC | -0.33 h | -1.20 h |
| 256070000 | container | 07/11, 05:25 AM UTC | 4.75 h | -144.92 h |
| 219458000 | container | 07/11, 04:57 AM UTC | 15.08 h | -46.96 h |
| 247531300 | product | 07/10, 06:44 PM UTC | -0.28 h | -62.74 h |
| 538011224 | container | 07/10, 06:42 PM UTC | 6.13 h | 2135.30 h |
| 215490000 | product | 07/10, 03:58 PM UTC | -102.78 h | — |
| 228292700 | product | 07/10, 01:56 PM UTC | 1.88 h | — |
| 371946000 | product | 07/10, 01:34 PM UTC | -4.34 h | — |
| 228403600 | product | 07/10, 01:08 PM UTC | 11.28 h | -103.14 h |
| 566030000 | container | 07/10, 12:53 PM UTC | 5.39 h | -0.90 h |
| 228200800 | container | 07/10, 08:33 AM UTC | -0.52 h | -892.56 h |
| 228292700 | product | 07/10, 08:21 AM UTC | 2.89 h | — |
| 228292700 | product | 07/10, 06:53 AM UTC | 4.62 h | — |
| 248717000 | container | 07/10, 06:35 AM UTC | -3.05 h | -144.89 h |
| 247243700 | product | 07/10, 06:31 AM UTC | -573.58 h | -954.53 h |
| 538009698 | container | 07/10, 06:28 AM UTC | -15.55 h | — |
| 229607000 | container | 07/10, 06:15 AM UTC | 11.03 h | 1.23 h |
| 229296000 | general-cargo | 07/10, 05:54 AM UTC | 4.01 h | 647.10 h |
| 228003800 | product | 07/10, 05:17 AM UTC | -2.06 h | — |
| 232058674 | container | 07/10, 05:11 AM UTC | -90.13 h | -90.19 h |
| 228292700 | product | 07/10, 05:01 AM UTC | 10.55 h | -19.52 h |
| 255805939 | general-cargo | 07/10, 04:44 AM UTC | -1.07 h | -138.75 h |
| 241132000 | product | 07/10, 03:29 AM UTC | 1.80 h | — |
| 228292700 | product | 07/09, 04:09 PM UTC | 2.18 h | -6.66 h |
| 228292700 | product | 07/09, 01:57 PM UTC | 5.30 h | -4.46 h |
| 228292700 | product | 07/09, 11:31 AM UTC | 8.04 h | -2.02 h |
| 372497000 | container | 07/09, 08:40 AM UTC | 1.64 h | -2.87 h |
| 228292700 | product | 07/09, 08:35 AM UTC | 2.53 h | -14.59 h |
| 255915590 | general-cargo | 07/09, 06:57 AM UTC | 7.31 h | — |
| 255915590 | general-cargo | 07/09, 06:41 AM UTC | 2.53 h | -453.69 h |
| 636093329 | general-cargo | 07/09, 06:09 AM UTC | 6.86 h | -72.16 h |
| 253592000 | container | 07/09, 03:41 AM UTC | 10.13 h | -165.69 h |
| 228306800 | chemical | 07/08, 11:40 AM UTC | 9.74 h | — |
| 228306800 | chemical | 07/08, 11:29 AM UTC | 5.54 h | -109.99 h |
| 636018712 | general-cargo | 07/08, 10:58 AM UTC | 5.56 h | -743.97 h |
| 636018712 | general-cargo | 07/08, 10:27 AM UTC | -24.70 h | -743.45 h |
| 672747000 | container | 07/08, 06:10 AM UTC | 5.75 h | -0.17 h |
| 256849000 | container | 07/08, 03:49 AM UTC | 3.51 h | -238.82 h |
| 228306800 | chemical | 07/07, 04:48 PM UTC | 3.50 h | -91.31 h |
| 229115000 | container | 07/07, 12:19 PM UTC | -1.85 h | -12.33 h |
| 228292700 | product | 07/07, 09:42 AM UTC | 2.86 h | -2.21 h |
| 271000677 | container | 07/07, 08:01 AM UTC | 0.29 h | -21.53 h |
| 228292700 | product | 07/07, 07:23 AM UTC | 7.49 h | 0.11 h |
| 228287600 | product | 07/06, 06:12 PM UTC | 3.97 h | -232.20 h |
| 249973000 | container | 07/06, 01:39 PM UTC | 4.07 h | -488.66 h |
| 271000426 | container | 07/06, 11:02 AM UTC | 3.48 h | -798.04 h |
| 271000677 | general-cargo | 07/06, 10:59 AM UTC | 2.22 h | -959.74 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.