ETA accuracy benchmark · 🇩🇪 Hamburg
How Port Flow's predicted ETA compares to each vessel's own broadcast ETA at Hamburg, 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)
0.90 h
MAE 0.66 h · 987 voyages
Broadcast ETA (RMSE)
53.73 h
crew-declared, 233 voyages (same set)
Our advantage
98.3 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (407 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 255916314 | container | 10/12, 05:23 AM UTC | -0.11 h | 2.11 h |
| 211149890 | product | 10/12, 05:20 AM UTC | 0.03 h | — |
| 211518720 | container | 10/12, 05:17 AM UTC | -0.21 h | -995.30 h |
| 211510990 | container | 10/12, 05:08 AM UTC | 0.29 h | 3354.85 h |
| 311001911 | container | 10/12, 05:05 AM UTC | 1.85 h | -1.09 h |
| 209276000 | general-cargo | 10/12, 05:01 AM UTC | 1.30 h | -22.03 h |
| 229630000 | container | 10/12, 04:58 AM UTC | 0.30 h | 16.02 h |
| 211178650 | product | 10/12, 04:58 AM UTC | -0.13 h | -488.97 h |
| 218172000 | container | 10/12, 04:33 AM UTC | 0.18 h | -48.06 h |
| 211741210 | container | 10/12, 04:31 AM UTC | 0.91 h | — |
| 211513140 | container | 10/12, 04:21 AM UTC | 1.15 h | — |
| 563296400 | container | 10/12, 04:11 AM UTC | 0.82 h | -2262.19 h |
| 211888150 | product | 10/12, 03:57 AM UTC | -0.32 h | — |
| 209276000 | general-cargo | 10/12, 03:46 AM UTC | -0.35 h | -20.78 h |
| 211201080 | product | 10/12, 03:44 AM UTC | 0.02 h | -81.38 h |
| 636025672 | general-cargo | 10/12, 03:37 AM UTC | 0.66 h | -26.62 h |
| 211187040 | container | 10/12, 01:00 AM UTC | 1.00 h | 3527.99 h |
| 305994000 | container | 10/12, 12:38 AM UTC | -0.18 h | 701.36 h |
| 211196020 | product | 10/12, 12:37 AM UTC | 1.79 h | 5303.38 h |
| 255805899 | general-cargo | 10/12, 12:03 AM UTC | 1.53 h | -25.06 h |
| 211319650 | chemical | 10/12, 12:03 AM UTC | 0.58 h | — |
| 211196020 | product | 10/11, 11:31 PM UTC | 0.23 h | 5304.47 h |
| 636025672 | general-cargo | 10/11, 11:29 PM UTC | 0.48 h | -22.49 h |
| 305654000 | container | 10/11, 11:21 PM UTC | 0.29 h | -370.85 h |
| 255916314 | container | 10/11, 10:35 PM UTC | 1.99 h | -115.59 h |
| 209276000 | general-cargo | 10/11, 10:10 PM UTC | 0.51 h | -15.17 h |
| 211468560 | product | 10/11, 09:28 PM UTC | 0.56 h | — |
| 229630000 | container | 10/11, 09:05 PM UTC | 1.38 h | -65.09 h |
| 305994000 | container | 10/11, 08:35 PM UTC | 1.31 h | 705.41 h |
| 215949000 | container | 10/11, 08:21 PM UTC | 0.48 h | -7.10 h |
| 215949000 | container | 10/11, 08:07 PM UTC | -0.15 h | -2363.12 h |
| 209276000 | general-cargo | 10/11, 07:23 PM UTC | -0.36 h | -12.39 h |
| 211513140 | container | 10/11, 07:08 PM UTC | 0.61 h | — |
| 211789680 | product | 10/11, 06:56 PM UTC | -0.48 h | — |
| 211201080 | product | 10/11, 06:49 PM UTC | -0.30 h | -72.46 h |
| 211319650 | chemical | 10/11, 06:42 PM UTC | 1.08 h | — |
| 211283460 | product | 10/11, 06:40 PM UTC | -0.12 h | -30.68 h |
| 636025672 | general-cargo | 10/11, 06:37 PM UTC | -0.03 h | — |
| 211468560 | product | 10/11, 05:48 PM UTC | 0.41 h | -91.14 h |
| 229424000 | product | 10/11, 05:44 PM UTC | 1.20 h | -2721.74 h |
| 229375000 | container | 10/11, 05:42 PM UTC | -0.11 h | -2895.22 h |
| 211510990 | container | 10/11, 05:40 PM UTC | 0.65 h | 3366.32 h |
| 563339300 | container | 10/11, 04:56 PM UTC | 0.00 h | -8.94 h |
| 209276000 | general-cargo | 10/11, 04:46 PM UTC | -0.64 h | -9.78 h |
| 211774670 | product | 10/11, 04:44 PM UTC | -0.32 h | — |
| 244670800 | container | 10/11, 04:29 PM UTC | -0.08 h | — |
| 211783290 | product | 10/11, 04:25 PM UTC | 0.11 h | 1169.30 h |
| 255805899 | general-cargo | 10/11, 04:19 PM UTC | 0.17 h | -17.32 h |
| 236112746 | product | 10/11, 04:16 PM UTC | 0.08 h | -29.27 h |
| 211188880 | product | 10/11, 04:04 PM UTC | 0.50 h | 3980.16 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.