ETA accuracy benchmark · 🇩🇪 Bremerhaven
How Port Flow's predicted ETA compares to each vessel's own broadcast ETA at Bremerhaven, 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)
9.72 h
MAE 51.88 h · 592 voyages
Broadcast ETA (RMSE)
54.27 h
crew-declared, 224 voyages (same set)
Our advantage
82.1 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (194 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 255916026 | container | 08/26, 11:52 PM UTC | -0.46 h | -3.87 h |
| 355137000 | container | 08/26, 11:37 PM UTC | 0.24 h | -42.62 h |
| 209731000 | container | 08/26, 11:02 PM UTC | 0.83 h | -17.04 h |
| 211480540 | product | 08/26, 10:39 PM UTC | -0.66 h | 6761.35 h |
| 210717000 | container | 08/26, 10:30 PM UTC | 0.32 h | — |
| 248131000 | container | 08/26, 09:53 PM UTC | -0.41 h | — |
| 210717000 | container | 08/26, 09:49 PM UTC | -0.19 h | 7.17 h |
| 255806352 | general-cargo | 08/26, 09:26 PM UTC | 0.37 h | -4.44 h |
| 219836000 | container | 08/26, 09:22 PM UTC | 1.27 h | -4.62 h |
| 211876190 | product | 08/26, 08:48 PM UTC | 0.49 h | — |
| 636023562 | container | 08/26, 08:20 PM UTC | 1.42 h | -1924.35 h |
| 211480540 | product | 08/26, 07:52 PM UTC | -0.08 h | 6764.12 h |
| 211876190 | product | 08/26, 07:30 PM UTC | 0.49 h | -19.51 h |
| 636020533 | container | 08/26, 07:30 PM UTC | 1.85 h | -810.51 h |
| 563229400 | container | 08/26, 07:18 PM UTC | 2.27 h | -1136.31 h |
| 209275000 | product | 08/26, 06:51 PM UTC | -0.56 h | -1.86 h |
| 211812980 | product | 08/26, 05:51 PM UTC | -0.12 h | 66.15 h |
| 211812980 | product | 08/26, 05:37 PM UTC | 0.03 h | 66.38 h |
| 205535590 | product | 08/26, 04:36 PM UTC | 1.09 h | — |
| 211428750 | product | 08/26, 03:20 PM UTC | 0.01 h | 3194.77 h |
| 211428750 | product | 08/26, 02:48 PM UTC | 0.05 h | 3195.29 h |
| 211428750 | product | 08/26, 12:27 PM UTC | -0.56 h | 3197.63 h |
| 211475930 | container | 08/26, 11:48 AM UTC | -0.31 h | 6559.20 h |
| 205535590 | product | 08/26, 11:40 AM UTC | 2.88 h | 6793.46 h |
| 205535590 | product | 08/26, 10:14 AM UTC | 0.07 h | — |
| 255916313 | container | 08/26, 10:02 AM UTC | 0.68 h | -4.05 h |
| 211480540 | product | 08/26, 09:17 AM UTC | -0.21 h | — |
| 210717000 | container | 08/26, 08:41 AM UTC | -0.02 h | -14.69 h |
| 210717000 | container | 08/26, 07:37 AM UTC | 0.85 h | -13.63 h |
| 211475930 | container | 08/26, 07:35 AM UTC | -0.77 h | 6563.40 h |
| 211480540 | product | 08/26, 07:17 AM UTC | -0.10 h | — |
| 211202400 | container | 08/26, 07:12 AM UTC | -0.32 h | 0.80 h |
| 218549000 | general-cargo | 08/26, 07:01 AM UTC | 0.55 h | -689.02 h |
| 636026053 | container | 08/26, 06:46 AM UTC | 0.05 h | — |
| 211428750 | product | 08/26, 06:25 AM UTC | -0.10 h | 3203.68 h |
| 636026053 | container | 08/26, 06:04 AM UTC | 0.04 h | -0.08 h |
| 211475930 | container | 08/26, 05:53 AM UTC | -0.43 h | — |
| 211428750 | product | 08/26, 05:53 AM UTC | 0.61 h | — |
| 218176000 | container | 08/26, 05:48 AM UTC | -0.33 h | -47.81 h |
| 211428750 | product | 08/26, 05:48 AM UTC | 0.90 h | — |
| 211812980 | product | 08/26, 05:15 AM UTC | -0.23 h | 78.75 h |
| 218172000 | container | 08/26, 04:43 AM UTC | -0.24 h | -12.23 h |
| 255805907 | container | 08/26, 02:38 AM UTC | -0.53 h | — |
| 255805907 | container | 08/26, 01:40 AM UTC | 0.01 h | -653.67 h |
| 367606000 | container | 08/25, 11:54 PM UTC | 2.09 h | -879.90 h |
| 355948000 | container | 08/25, 11:31 PM UTC | 0.34 h | 21.47 h |
| 205535590 | product | 08/25, 09:51 PM UTC | 1.49 h | — |
| 205535590 | product | 08/25, 09:27 PM UTC | -0.55 h | 6807.68 h |
| 210717000 | container | 08/25, 09:10 PM UTC | -0.34 h | -3.18 h |
| 210717000 | container | 08/25, 08:54 PM UTC | -0.35 h | -1676.90 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.