ETA accuracy benchmark · 🇫🇷 Saint-Nazaire / Montoir
How Port Flow's predicted ETA compares to each vessel's own broadcast ETA at Saint-Nazaire / Montoir, 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)
1.94 h
MAE 17.02 h · 165 voyages
Broadcast ETA (RMSE)
60.57 h
crew-declared, 93 voyages (same set)
Our advantage
96.8 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (63 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 210283000 | general-cargo | 10/11, 08:35 PM UTC | 0.25 h | -415.59 h |
| 538005410 | product | 10/11, 03:14 PM UTC | 0.59 h | 0.27 h |
| 249209000 | chemical | 10/11, 03:02 PM UTC | 0.58 h | -105.04 h |
| 255806464 | container | 10/11, 10:15 AM UTC | 0.04 h | -200.25 h |
| 226340000 | product | 10/10, 05:42 PM UTC | -1.43 h | -157.71 h |
| 257089140 | product | 10/10, 04:05 PM UTC | 0.17 h | -64.11 h |
| 477345800 | lng | 10/10, 02:25 PM UTC | -0.27 h | -1.43 h |
| 538012432 | product | 10/10, 10:51 AM UTC | -0.02 h | -2.86 h |
| 305030000 | container | 10/09, 11:23 PM UTC | 0.51 h | -6.89 h |
| 224876000 | container | 10/09, 09:29 PM UTC | 0.32 h | 1.51 h |
| 227681520 | product | 10/09, 05:55 PM UTC | 0.22 h | -25.92 h |
| 538008844 | product | 10/09, 03:40 PM UTC | 0.99 h | — |
| 231875000 | product | 10/08, 09:12 PM UTC | 1.66 h | -13.21 h |
| 538006120 | product | 10/07, 10:41 PM UTC | -13.02 h | -765.70 h |
| 215345000 | product | 10/07, 02:55 PM UTC | -0.70 h | -30.93 h |
| 305546000 | container | 10/07, 08:04 AM UTC | 0.34 h | 13.92 h |
| 311000383 | container | 10/07, 07:03 AM UTC | 0.66 h | -3.07 h |
| 228020700 | container | 10/07, 06:34 AM UTC | 0.34 h | -169.58 h |
| 228084000 | container | 10/07, 04:43 AM UTC | -0.33 h | -818.22 h |
| 538005406 | product | 10/07, 12:20 AM UTC | 1.68 h | -146.33 h |
| 230723000 | container | 10/06, 07:41 PM UTC | 0.37 h | -1.70 h |
| 305793000 | product | 10/06, 07:26 PM UTC | 3.42 h | — |
| 224876000 | container | 10/06, 07:21 PM UTC | 0.78 h | 2.64 h |
| 305793000 | product | 10/06, 07:14 PM UTC | 0.15 h | -218.24 h |
| 257089140 | product | 10/06, 01:11 PM UTC | 1.99 h | -25.20 h |
| 636014199 | container | 10/06, 10:31 AM UTC | 0.96 h | -4.52 h |
| 227681520 | product | 10/06, 05:56 AM UTC | 0.60 h | — |
| 305229000 | container | 10/05, 06:46 PM UTC | 0.26 h | -0.02 h |
| 538008770 | container | 10/05, 05:39 PM UTC | 1.27 h | -61.66 h |
| 220264000 | product | 10/05, 12:56 PM UTC | -0.47 h | -257.94 h |
| 255915615 | container | 10/05, 12:47 PM UTC | 0.39 h | -2.30 h |
| 477327900 | lng | 10/05, 11:06 AM UTC | 1.13 h | -13.09 h |
| 304070000 | product | 10/05, 06:00 AM UTC | 2.30 h | -239.01 h |
| 305864000 | container | 10/05, 05:52 AM UTC | 1.06 h | -9.37 h |
| 255806191 | container | 10/05, 03:11 AM UTC | -0.04 h | -121.19 h |
| 255915770 | container | 10/04, 11:40 PM UTC | 0.69 h | -806.68 h |
| 236446000 | product | 10/04, 09:42 PM UTC | -0.23 h | -2.71 h |
| 256784000 | chemical | 10/04, 09:32 PM UTC | -8.98 h | -247.54 h |
| 210281000 | container | 10/04, 01:41 PM UTC | 0.06 h | -329.69 h |
| 226344000 | product | 10/04, 12:01 PM UTC | 2.97 h | -799.28 h |
| 636021960 | product | 10/04, 11:17 AM UTC | 1.13 h | -66.80 h |
| 636017059 | product | 10/03, 09:10 PM UTC | 0.16 h | -121.17 h |
| 210299000 | product | 10/03, 06:39 AM UTC | 1.19 h | -44.66 h |
| 224876000 | container | 10/02, 09:47 PM UTC | 0.40 h | -34.80 h |
| 219200000 | chemical | 10/02, 09:00 PM UTC | -2.32 h | -1997.01 h |
| 305696000 | container | 10/02, 02:51 PM UTC | 0.11 h | -303.86 h |
| 227681520 | product | 10/02, 12:09 PM UTC | -0.11 h | -26.17 h |
| 248156000 | container | 10/02, 06:14 AM UTC | -0.27 h | -493.24 h |
| 226340000 | product | 10/01, 07:28 PM UTC | 0.37 h | -161.98 h |
| 636021960 | product | 10/01, 06:30 PM UTC | 1.84 h | -2.00 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.