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 30 days. We publish the number — good or bad. Lower error is better.
Port Flow predicted ETA (RMSE)
50.00 h
MAE 19.20 h · 167 voyages
Broadcast ETA (RMSE)
16.22 h
crew-declared, 49 voyages (same set)
Gap
208.3 %
higher error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (108 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 338133000 | container | 10/11, 01:40 PM UTC | -0.40 h | -3.68 h |
| 563293900 | container | 10/11, 01:14 PM UTC | 0.00 h | -2187.24 h |
| 636093170 | container | 10/11, 06:11 AM UTC | -0.65 h | -877.18 h |
| 636022795 | container | 10/11, 04:57 AM UTC | -5.44 h | -1742.96 h |
| 563982000 | container | 10/11, 12:21 AM UTC | -0.39 h | -3.62 h |
| 563341700 | container | 10/10, 11:05 PM UTC | 0.14 h | -3.10 h |
| 563183900 | container | 10/10, 08:20 AM UTC | -0.17 h | 716.66 h |
| 374815000 | container | 10/09, 10:13 PM UTC | -0.04 h | -2604.22 h |
| 256592000 | container | 10/09, 02:07 PM UTC | 0.35 h | -2880.12 h |
| 565380000 | container | 10/09, 01:30 PM UTC | -15.79 h | -2707.01 h |
| 255806368 | container | 10/09, 08:11 AM UTC | -0.38 h | -4.20 h |
| 428002000 | container | 10/09, 07:40 AM UTC | -0.52 h | -1550.68 h |
| 244569000 | product | 10/08, 11:57 AM UTC | 5.36 h | -205.96 h |
| 477832500 | container | 10/08, 10:30 AM UTC | -0.23 h | -2465.51 h |
| 431792000 | container | 10/08, 10:29 AM UTC | 0.25 h | -2870.49 h |
| 636025657 | container | 10/08, 02:51 AM UTC | -0.52 h | -723.61 h |
| 215125000 | container | 10/07, 09:52 PM UTC | 0.31 h | — |
| 215125000 | container | 10/07, 09:25 PM UTC | -0.11 h | -2662.92 h |
| 563190500 | container | 10/07, 08:59 PM UTC | 0.46 h | -2102.98 h |
| 636022973 | general-cargo | 10/07, 10:42 AM UTC | 0.11 h | -300.71 h |
| 215215000 | container | 10/07, 10:21 AM UTC | 0.32 h | -9.37 h |
| 563076200 | container | 10/07, 10:02 AM UTC | -1.39 h | -2585.03 h |
| 368240910 | product | 10/06, 02:26 PM UTC | -1.12 h | — |
| 244730000 | container | 10/06, 12:40 PM UTC | 0.99 h | — |
| 636092927 | container | 10/06, 09:23 AM UTC | -0.24 h | -358.89 h |
| 563293100 | container | 10/06, 08:49 AM UTC | 0.11 h | -1872.83 h |
| 218426000 | container | 10/06, 08:40 AM UTC | -0.12 h | -1737.67 h |
| 255806448 | container | 10/06, 06:44 AM UTC | -0.47 h | -1778.74 h |
| 354315000 | container | 10/05, 10:09 PM UTC | 0.18 h | -1513.16 h |
| 477832400 | container | 10/05, 09:14 PM UTC | -2.44 h | -5.99 h |
| 563020400 | general-cargo | 10/05, 07:35 PM UTC | 0.26 h | -4.09 h |
| 563020400 | general-cargo | 10/05, 07:07 PM UTC | -0.29 h | -2058.12 h |
| 636093219 | container | 10/05, 08:56 AM UTC | -0.32 h | -1731.94 h |
| 370651000 | container | 10/05, 05:30 AM UTC | 0.39 h | — |
| 563024900 | container | 10/05, 03:28 AM UTC | -0.89 h | -3004.48 h |
| 563332300 | container | 10/04, 07:52 AM UTC | 0.33 h | -4.37 h |
| 636093100 | general-cargo | 10/04, 04:04 AM UTC | -0.40 h | -885.07 h |
| 244730000 | container | 10/04, 02:09 AM UTC | 0.28 h | -2.66 h |
| 636017103 | container | 10/04, 12:26 AM UTC | 0.24 h | — |
| 249474000 | general-cargo | 10/03, 05:06 PM UTC | -0.35 h | -1887.61 h |
| 249515000 | general-cargo | 10/03, 07:24 AM UTC | 0.23 h | -2202.41 h |
| 477221600 | general-cargo | 10/03, 06:34 AM UTC | 0.24 h | -1915.07 h |
| 636017827 | product | 10/03, 02:06 AM UTC | 0.13 h | -36.11 h |
| 636021739 | container | 10/02, 07:19 PM UTC | -0.40 h | -1611.32 h |
| 232024772 | general-cargo | 10/02, 06:12 PM UTC | -0.12 h | -2289.20 h |
| 370651000 | container | 10/02, 04:59 PM UTC | -0.26 h | -2757.98 h |
| 566255000 | chemical | 10/02, 03:37 PM UTC | -48.64 h | -57.63 h |
| 368240910 | product | 10/01, 05:02 PM UTC | -0.26 h | — |
| 636017103 | container | 10/01, 03:57 PM UTC | 0.26 h | -2252.96 h |
| 636019434 | container | 10/01, 09:59 AM UTC | -0.40 h | -1672.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.