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)
114.04 h
MAE 60.36 h · 425 voyages
Broadcast ETA (RMSE)
27.82 h
crew-declared, 272 voyages (same set)
Gap
309.8 %
higher error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (118 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 249830000 | general-cargo | 08/26, 09:50 PM UTC | -0.10 h | -1561.85 h |
| 538007504 | container | 08/26, 08:32 PM UTC | 0.21 h | — |
| 636016424 | container | 08/26, 07:07 PM UTC | -0.14 h | -1587.13 h |
| 256104000 | container | 08/26, 12:30 PM UTC | -0.12 h | -2071.51 h |
| 636022973 | container | 08/26, 11:35 AM UTC | -0.44 h | -637.59 h |
| 636022953 | container | 08/26, 10:13 AM UTC | 0.10 h | -1996.22 h |
| 636021913 | container | 08/26, 09:24 AM UTC | -0.62 h | -3.41 h |
| 210644000 | container | 08/26, 08:30 AM UTC | -1818.09 h | -1757.51 h |
| 636015004 | product | 08/26, 04:00 AM UTC | 0.04 h | -3.01 h |
| 563268300 | container | 08/25, 09:39 PM UTC | 0.15 h | -2161.66 h |
| 229263000 | general-cargo | 08/25, 02:39 PM UTC | -0.44 h | -1678.66 h |
| 563545000 | general-cargo | 08/25, 09:23 AM UTC | 0.11 h | -728.90 h |
| 563298100 | general-cargo | 08/25, 09:13 AM UTC | 0.64 h | -1738.23 h |
| 636023024 | container | 08/25, 06:34 AM UTC | -0.08 h | -2.57 h |
| 563256100 | container | 08/24, 08:19 PM UTC | -0.55 h | -1215.32 h |
| 256788000 | container | 08/24, 11:00 AM UTC | 0.21 h | -4.51 h |
| 256788000 | container | 08/24, 10:35 AM UTC | -0.39 h | -2072.59 h |
| 636023650 | container | 08/24, 10:33 AM UTC | 0.07 h | -4.56 h |
| 636023650 | container | 08/24, 10:19 AM UTC | 0.03 h | -4.32 h |
| 636093100 | container | 08/24, 08:04 AM UTC | -0.48 h | -956.08 h |
| 563293200 | container | 08/24, 04:46 AM UTC | 0.26 h | — |
| 563183900 | container | 08/24, 02:54 AM UTC | 0.10 h | -767.90 h |
| 636092680 | container | 08/23, 08:17 PM UTC | 0.27 h | 1042.71 h |
| 636024939 | container | 08/23, 03:53 PM UTC | -0.39 h | -3.89 h |
| 354972000 | container | 08/23, 11:25 AM UTC | -2.40 h | -4.68 h |
| 477156100 | container | 08/23, 09:15 AM UTC | 0.32 h | -1233.75 h |
| 636019203 | chemical | 08/23, 01:02 AM UTC | 0.43 h | -4.54 h |
| 563223300 | general-cargo | 08/22, 08:28 PM UTC | 0.05 h | -1428.47 h |
| 244569000 | product | 08/22, 04:38 PM UTC | -0.19 h | -1149.63 h |
| 354202000 | container | 08/22, 02:58 PM UTC | -2070.05 h | -2024.97 h |
| 563293200 | container | 08/22, 02:49 PM UTC | -2082.23 h | -2070.83 h |
| 255805661 | container | 08/22, 02:40 PM UTC | -1642.86 h | -1552.68 h |
| 431528000 | container | 08/22, 02:40 PM UTC | -1956.27 h | -1944.68 h |
| 636023849 | container | 08/22, 02:38 PM UTC | -2483.71 h | -1174.65 h |
| 563287600 | container | 08/22, 02:38 PM UTC | -2269.54 h | -1484.64 h |
| 431888000 | container | 08/19, 05:51 AM UTC | 0.37 h | -11.36 h |
| 636016415 | container | 08/19, 02:32 AM UTC | -0.29 h | -1850.54 h |
| 538007504 | container | 08/18, 03:49 PM UTC | 0.59 h | — |
| 636024390 | container | 08/18, 10:54 AM UTC | -0.71 h | -4.16 h |
| 538007832 | chemical | 08/18, 10:44 AM UTC | 1.58 h | -25.74 h |
| 210646000 | container | 08/18, 06:18 AM UTC | -0.33 h | -6.29 h |
| 215185000 | container | 08/18, 06:02 AM UTC | -0.11 h | -4.54 h |
| 563291500 | container | 08/18, 05:23 AM UTC | 0.43 h | -1979.38 h |
| 538007832 | chemical | 08/17, 05:38 PM UTC | 0.59 h | -1818.64 h |
| 563006800 | container | 08/17, 03:35 PM UTC | 0.40 h | -4.09 h |
| 563219100 | container | 08/17, 03:23 PM UTC | 0.28 h | -4.14 h |
| 563006800 | container | 08/17, 03:10 PM UTC | -0.14 h | -2045.18 h |
| 636020354 | container | 08/17, 12:58 PM UTC | 0.12 h | -1751.98 h |
| 636093154 | general-cargo | 08/17, 07:54 AM UTC | -987.17 h | -936.91 h |
| 636093182 | general-cargo | 08/17, 07:52 AM UTC | -2478.72 h | -1711.88 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.