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)
33.68 h
MAE 31.26 h · 297 voyages
Broadcast ETA (RMSE)
78.65 h
crew-declared, 150 voyages (same set)
Our advantage
57.2 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (111 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 228292700 | product | 10/12, 04:50 AM UTC | 4.06 h | -61.84 h |
| 228292700 | product | 10/11, 06:17 PM UTC | 1.40 h | -51.28 h |
| 538012363 | container | 10/11, 12:51 PM UTC | 7.43 h | -1160.86 h |
| 228403600 | product | 10/11, 11:21 AM UTC | 2.34 h | -0.36 h |
| 249230000 | product | 10/11, 10:38 AM UTC | -634.60 h | -654.15 h |
| 215086000 | product | 10/11, 10:21 AM UTC | -2.25 h | -827.85 h |
| 205378390 | product | 10/11, 10:08 AM UTC | -19.29 h | -584.60 h |
| 228466800 | container | 10/11, 09:38 AM UTC | 3.71 h | -2947.65 h |
| 228306800 | chemical | 10/11, 06:17 AM UTC | -15.58 h | 6375.20 h |
| 229472000 | product | 10/11, 06:11 AM UTC | -0.94 h | -139.20 h |
| 636018704 | general-cargo | 10/11, 03:37 AM UTC | 6.46 h | -505.63 h |
| 311045500 | container | 10/10, 06:28 PM UTC | 13.53 h | -120.47 h |
| 228292700 | product | 10/10, 02:24 PM UTC | -0.19 h | -23.41 h |
| 229953000 | product | 10/10, 01:08 PM UTC | -520.16 h | -544.15 h |
| 235115081 | product | 10/10, 01:01 PM UTC | -14.74 h | -14.02 h |
| 244790522 | product | 10/10, 01:00 PM UTC | -561.26 h | -539.01 h |
| 255805250 | product | 10/10, 12:56 PM UTC | -1600.03 h | -2469.95 h |
| 636023417 | product | 10/10, 12:56 PM UTC | -15.92 h | -14.94 h |
| 247271400 | product | 10/10, 12:56 PM UTC | -130.78 h | -600.44 h |
| 256130000 | product | 10/10, 12:55 PM UTC | -68.73 h | -66.92 h |
| 636020212 | container | 10/10, 12:54 PM UTC | -96.40 h | -96.91 h |
| 255801270 | chemical | 10/10, 12:51 PM UTC | -66.71 h | — |
| 538008918 | product | 10/10, 12:49 PM UTC | -114.46 h | -114.83 h |
| 228287600 | product | 10/10, 12:49 PM UTC | -46.35 h | -515.83 h |
| 241977000 | product | 10/10, 12:48 PM UTC | -65.76 h | — |
| 255805939 | general-cargo | 10/10, 10:57 AM UTC | -1.77 h | -120.96 h |
| 228306800 | chemical | 10/10, 10:03 AM UTC | 2.44 h | 6395.44 h |
| 228292700 | product | 10/10, 09:31 AM UTC | 2.08 h | -12.02 h |
| 636093329 | general-cargo | 10/10, 09:03 AM UTC | 10.53 h | -52.05 h |
| 256070000 | container | 10/10, 05:28 AM UTC | 5.47 h | -145.08 h |
| 218044000 | container | 10/10, 03:42 AM UTC | 5.91 h | -239.71 h |
| 228292700 | product | 10/09, 08:45 PM UTC | 0.52 h | -98.00 h |
| 672704000 | general-cargo | 10/09, 07:12 PM UTC | -4.69 h | -62.20 h |
| 228403600 | product | 10/09, 10:30 AM UTC | 10.29 h | -138.50 h |
| 248717000 | container | 10/09, 08:08 AM UTC | 3.23 h | -146.35 h |
| 255915590 | container | 10/09, 04:12 AM UTC | 13.75 h | -480.21 h |
| 636022183 | container | 10/09, 03:21 AM UTC | 12.17 h | -631.86 h |
| 309022000 | product | 10/08, 07:20 PM UTC | -30.38 h | — |
| 245086000 | container | 10/08, 07:20 PM UTC | -39.40 h | — |
| 228287600 | product | 10/08, 08:47 AM UTC | 6.50 h | -463.80 h |
| 372497000 | container | 10/08, 06:34 AM UTC | 2.06 h | -144.58 h |
| 219458000 | container | 10/08, 06:05 AM UTC | 5.36 h | -72.09 h |
| 250005932 | container | 10/07, 12:12 PM UTC | 10.08 h | -1.21 h |
| 636023127 | general-cargo | 10/07, 09:57 AM UTC | -1.71 h | -965.12 h |
| 253592000 | general-cargo | 10/07, 07:03 AM UTC | 2.23 h | -168.06 h |
| 672747000 | container | 10/07, 06:03 AM UTC | 10.75 h | -61.06 h |
| 247304200 | container | 10/06, 07:28 PM UTC | 10.59 h | -2220.98 h |
| 538005401 | product | 10/06, 12:31 PM UTC | -0.19 h | -98.53 h |
| 228306800 | chemical | 10/06, 11:31 AM UTC | -313.73 h | 6489.97 h |
| 226018360 | product | 10/06, 11:31 AM UTC | -0.72 h | 0.98 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.