ETA accuracy benchmark · 🇫🇷 Le Havre
How Port Flow's predicted ETA compares to each vessel's own broadcast ETA at Le Havre, 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)
4.41 h
MAE 1.10 h · 987 voyages
Broadcast ETA (RMSE)
57.53 h
crew-declared, 463 voyages (same set)
Our advantage
92.3 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (313 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 245889000 | product | 10/12, 04:33 AM UTC | -0.14 h | 20.44 h |
| 232046826 | general-cargo | 10/12, 03:29 AM UTC | 0.36 h | -262.49 h |
| 353083000 | container | 10/11, 11:39 PM UTC | 0.47 h | -10.16 h |
| 205250990 | container | 10/11, 11:09 PM UTC | 0.04 h | — |
| 353083000 | container | 10/11, 10:45 PM UTC | -0.58 h | -795.75 h |
| 205250990 | container | 10/11, 10:16 PM UTC | 0.68 h | — |
| 259739000 | container | 10/11, 10:14 PM UTC | 0.80 h | 45.76 h |
| 636025289 | product | 10/11, 09:39 PM UTC | 1.13 h | -6.65 h |
| 219031111 | product | 10/11, 09:34 PM UTC | -1.56 h | -9.58 h |
| 259739000 | container | 10/11, 09:28 PM UTC | 1.58 h | 46.52 h |
| 255805557 | container | 10/11, 08:57 PM UTC | -0.35 h | -51.96 h |
| 235104739 | chemical | 10/11, 06:57 PM UTC | 0.29 h | 16.05 h |
| 226005390 | product | 10/11, 06:34 PM UTC | 1.58 h | -406.09 h |
| 265012000 | container | 10/11, 05:00 PM UTC | 1.39 h | -2.52 h |
| 226005390 | product | 10/11, 03:52 PM UTC | -0.14 h | -403.39 h |
| 265012000 | container | 10/11, 03:50 PM UTC | 0.61 h | -1.34 h |
| 235096859 | product | 10/11, 03:31 PM UTC | 2.56 h | -11.52 h |
| 226009040 | product | 10/11, 03:24 PM UTC | 0.48 h | 5861.75 h |
| 226009040 | product | 10/11, 02:46 PM UTC | 0.42 h | 5862.38 h |
| 235096859 | product | 10/11, 02:20 PM UTC | 1.01 h | -78.35 h |
| 215746000 | chemical | 10/11, 01:01 PM UTC | 2.14 h | -14.03 h |
| 215746000 | chemical | 10/11, 12:18 PM UTC | 1.26 h | -498.32 h |
| 228437800 | product | 10/11, 11:56 AM UTC | 4.04 h | 0.05 h |
| 636018716 | product | 10/11, 11:27 AM UTC | -0.58 h | -146.46 h |
| 255805810 | container | 10/11, 11:12 AM UTC | 0.56 h | -2506.21 h |
| 311001583 | product | 10/11, 10:15 AM UTC | -0.49 h | -7.26 h |
| 636093166 | general-cargo | 10/11, 08:54 AM UTC | 0.23 h | -1.91 h |
| 255801480 | container | 10/11, 08:39 AM UTC | 0.14 h | -1.66 h |
| 226017260 | chemical | 10/11, 08:34 AM UTC | 1.38 h | 7210.42 h |
| 636093166 | general-cargo | 10/11, 08:22 AM UTC | -0.14 h | -1.38 h |
| 226017260 | chemical | 10/11, 08:13 AM UTC | 2.22 h | 7210.77 h |
| 255801480 | container | 10/11, 07:56 AM UTC | 0.64 h | -142.95 h |
| 228499700 | container | 10/11, 07:46 AM UTC | 1.02 h | -2285.78 h |
| 226005390 | product | 10/11, 07:37 AM UTC | 0.57 h | -395.14 h |
| 255803590 | container | 10/11, 05:11 AM UTC | -0.53 h | -611.19 h |
| 636022611 | container | 10/11, 04:10 AM UTC | 0.24 h | -182.17 h |
| 256220000 | product | 10/11, 01:34 AM UTC | 0.11 h | -4.58 h |
| 245889000 | product | 10/10, 11:18 PM UTC | 2.56 h | -32.78 h |
| 319445000 | product | 10/10, 10:31 PM UTC | 3.17 h | -12.53 h |
| 245889000 | product | 10/10, 10:17 PM UTC | -0.17 h | -74.30 h |
| 226021210 | container | 10/10, 09:52 PM UTC | 0.58 h | — |
| 226021210 | container | 10/10, 09:07 PM UTC | 1.09 h | -350.12 h |
| 319445000 | product | 10/10, 08:56 PM UTC | 1.25 h | -10.94 h |
| 228437800 | product | 10/10, 07:40 PM UTC | 2.47 h | — |
| 228437800 | product | 10/10, 06:48 PM UTC | 0.48 h | -4.81 h |
| 228437800 | product | 10/10, 06:31 PM UTC | 0.03 h | -230.53 h |
| 259739000 | container | 10/10, 06:22 PM UTC | 0.99 h | -2.88 h |
| 259739000 | container | 10/10, 05:17 PM UTC | 0.18 h | -1.79 h |
| 259739000 | container | 10/10, 04:48 PM UTC | -0.19 h | -1.30 h |
| 226009040 | product | 10/10, 04:34 PM UTC | 0.89 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.