ETA accuracy benchmark · 🇺🇸 Savannah
How Port Flow's predicted ETA compares to each vessel's own broadcast ETA at Savannah, 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)
5.03 h
MAE 5.44 h · 428 voyages
Broadcast ETA (RMSE)
26.44 h
crew-declared, 212 voyages (same set)
Our advantage
81.0 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (35 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 |
|---|---|---|---|---|
| 563286500 | general-cargo | 07/12, 09:55 AM UTC | 0.48 h | -1616.10 h |
| 477221600 | general-cargo | 07/12, 09:15 AM UTC | -0.02 h | -4.26 h |
| 369246000 | container | 07/12, 07:16 AM UTC | -0.66 h | -3.77 h |
| 563247000 | container | 07/11, 09:33 PM UTC | 0.32 h | -4.06 h |
| 636019582 | container | 07/11, 08:48 PM UTC | -0.64 h | -856.81 h |
| 538005202 | chemical | 07/11, 12:56 PM UTC | -65.56 h | -72.94 h |
| 563277200 | container | 07/11, 09:49 AM UTC | 0.22 h | -3.82 h |
| 636019342 | container | 07/11, 07:58 AM UTC | 0.21 h | — |
| 636019342 | container | 07/10, 10:34 PM UTC | -0.50 h | -783.57 h |
| 563293900 | container | 07/10, 07:51 AM UTC | -0.11 h | -3.35 h |
| 219532000 | container | 07/10, 07:30 AM UTC | -0.45 h | — |
| 636093309 | general-cargo | 07/10, 03:40 AM UTC | 0.05 h | 7.32 h |
| 563238300 | container | 07/09, 05:55 PM UTC | 0.29 h | -3.43 h |
| 563307800 | container | 07/09, 04:23 PM UTC | -0.30 h | -2.89 h |
| 371059000 | container | 07/09, 08:04 AM UTC | -0.49 h | -556.07 h |
| 636022027 | container | 07/09, 05:38 AM UTC | -0.16 h | -3.64 h |
| 372737000 | container | 07/08, 08:33 PM UTC | 0.03 h | -1048.56 h |
| 563020400 | general-cargo | 07/08, 06:41 PM UTC | 0.17 h | — |
| 563020400 | general-cargo | 07/08, 06:19 PM UTC | -0.36 h | -3.32 h |
| 636023371 | container | 07/08, 11:07 AM UTC | -0.14 h | -300.13 h |
| 636014971 | container | 07/08, 10:35 AM UTC | 0.14 h | -3.60 h |
| 563190500 | container | 07/08, 05:16 AM UTC | 0.15 h | -4.03 h |
| 538007666 | product | 07/08, 03:19 AM UTC | 0.07 h | -261.32 h |
| 563293700 | container | 07/07, 05:21 PM UTC | 0.53 h | -3.61 h |
| 563172700 | container | 07/07, 04:00 PM UTC | 0.17 h | -3.51 h |
| 636022657 | container | 07/07, 09:19 AM UTC | 0.61 h | -691.32 h |
| 636022942 | container | 07/07, 08:51 AM UTC | 0.20 h | — |
| 636022942 | container | 07/07, 08:32 AM UTC | -0.16 h | -6.05 h |
| 563277100 | container | 07/07, 02:44 AM UTC | -0.35 h | -779.23 h |
| 538007666 | product | 07/06, 09:01 PM UTC | 0.39 h | -231.02 h |
| 255915619 | container | 07/06, 05:35 PM UTC | 0.09 h | -3.60 h |
| 368050130 | product | 07/06, 05:26 PM UTC | -98.49 h | — |
| 636024055 | container | 07/06, 03:37 PM UTC | 0.12 h | -927.38 h |
| 244267000 | chemical | 07/06, 10:30 AM UTC | 0.07 h | -165.51 h |
| 220164000 | container | 07/06, 10:29 AM UTC | -0.56 h | -3.99 h |
| 563183900 | container | 07/06, 08:27 AM UTC | -0.51 h | -603.46 h |
| 249206000 | container | 07/05, 09:24 AM UTC | 0.09 h | -1514.41 h |
| 636021244 | container | 07/05, 04:43 AM UTC | -0.39 h | -25.23 h |
| 636093154 | general-cargo | 07/05, 04:33 AM UTC | 0.09 h | -648.56 h |
| 477140100 | container | 07/05, 02:13 AM UTC | 0.58 h | -3.98 h |
| 477140100 | container | 07/05, 01:47 AM UTC | -0.05 h | -3.54 h |
| 636024642 | container | 07/04, 06:49 AM UTC | -2.44 h | -765.83 h |
| 218791000 | container | 07/04, 05:44 AM UTC | 0.06 h | — |
| 257358000 | product | 07/04, 04:08 AM UTC | 0.18 h | -15.15 h |
| 244569000 | product | 07/03, 04:48 PM UTC | -1.52 h | -102.82 h |
| 256948000 | container | 07/03, 01:50 PM UTC | -0.21 h | -3.34 h |
| 636092895 | general-cargo | 07/03, 01:25 PM UTC | 0.23 h | -3.17 h |
| 271043028 | container | 07/03, 10:37 AM UTC | -164.93 h | -191.63 h |
| 353968000 | container | 07/03, 02:16 AM UTC | -0.30 h | -4.28 h |
| 218791000 | container | 07/03, 02:00 AM UTC | 0.03 h | -4.50 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.