ETA accuracy benchmark · 🇬🇷 Piraeus
How Port Flow's predicted ETA compares to each vessel's own broadcast ETA at Piraeus, 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)
11.50 h
MAE 5.70 h · 976 voyages
Broadcast ETA (RMSE)
72.80 h
crew-declared, 351 voyages (same set)
Our advantage
84.2 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (409 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 240183900 | product | 10/12, 05:19 AM UTC | 0.94 h | -526.32 h |
| 239550200 | chemical | 10/12, 05:08 AM UTC | 3.12 h | -445.95 h |
| 240871000 | chemical | 10/12, 04:46 AM UTC | 2.74 h | — |
| 240897000 | product | 10/12, 04:27 AM UTC | 2.87 h | — |
| 240897000 | product | 10/12, 12:28 AM UTC | 3.93 h | 1943.53 h |
| 237829800 | product | 10/11, 11:08 PM UTC | 1.23 h | — |
| 240205400 | product | 10/11, 10:03 PM UTC | 3.05 h | — |
| 241699000 | product | 10/11, 09:46 PM UTC | -0.08 h | -60.77 h |
| 240285000 | product | 10/11, 09:32 PM UTC | -12.60 h | -245.55 h |
| 240205400 | product | 10/11, 05:26 PM UTC | 0.99 h | 7184.33 h |
| 240620300 | product | 10/11, 04:35 PM UTC | -0.42 h | 284.40 h |
| 237829800 | product | 10/11, 03:26 PM UTC | 5.79 h | — |
| 239869900 | product | 10/11, 03:01 PM UTC | 1.43 h | 1940.47 h |
| 538010227 | product | 10/11, 12:25 PM UTC | -59.38 h | -66.93 h |
| 237829800 | product | 10/11, 11:34 AM UTC | 0.97 h | — |
| 240666000 | product | 10/11, 10:29 AM UTC | -0.20 h | — |
| 239869900 | product | 10/11, 10:26 AM UTC | -0.24 h | 1945.06 h |
| 240043800 | product | 10/11, 08:45 AM UTC | 0.46 h | — |
| 241349000 | product | 10/11, 08:09 AM UTC | 1.54 h | -385.16 h |
| 240698300 | container | 10/11, 07:14 AM UTC | 1.08 h | -30.25 h |
| 241654000 | product | 10/11, 07:02 AM UTC | 2.20 h | 1125.95 h |
| 237009900 | container | 10/11, 06:02 AM UTC | 1.54 h | -10.05 h |
| 237112600 | container | 10/11, 05:58 AM UTC | 4.20 h | — |
| 237112600 | container | 10/11, 05:38 AM UTC | 0.83 h | -94.65 h |
| 215587000 | container | 10/11, 05:30 AM UTC | 1.90 h | -118.51 h |
| 240620300 | product | 10/11, 05:30 AM UTC | 1.54 h | 295.49 h |
| 240666000 | product | 10/11, 05:21 AM UTC | 2.37 h | — |
| 241694000 | container | 10/11, 04:37 AM UTC | 1.85 h | -0.63 h |
| 538012556 | container | 10/11, 04:37 AM UTC | 1.79 h | 4.88 h |
| 241694000 | container | 10/11, 04:26 AM UTC | -0.43 h | -23.44 h |
| 240620300 | product | 10/11, 04:21 AM UTC | 4.67 h | — |
| 237829800 | product | 10/11, 04:18 AM UTC | 1.82 h | — |
| 240620300 | product | 10/11, 03:37 AM UTC | 2.45 h | 297.37 h |
| 241654000 | product | 10/11, 12:12 AM UTC | 1.70 h | 1132.80 h |
| 636017256 | container | 10/10, 10:31 PM UTC | -7.13 h | -678.53 h |
| 256837000 | product | 10/10, 09:09 PM UTC | 4.10 h | -431.15 h |
| 256652000 | product | 10/10, 08:20 PM UTC | 1.01 h | -62.84 h |
| 241654000 | product | 10/10, 07:44 PM UTC | 1.80 h | 1137.25 h |
| 311001767 | container | 10/10, 06:59 PM UTC | 0.85 h | -972.49 h |
| 211129160 | chemical | 10/10, 05:45 PM UTC | 1.89 h | -203.75 h |
| 413065000 | general-cargo | 10/10, 05:15 PM UTC | 0.98 h | -552.25 h |
| 237009900 | container | 10/10, 04:10 PM UTC | 0.59 h | -71.67 h |
| 240246000 | container | 10/10, 03:28 PM UTC | 3.25 h | -0.47 h |
| 538005825 | product | 10/10, 03:26 PM UTC | 4.39 h | -3.45 h |
| 240620300 | product | 10/10, 02:01 PM UTC | 0.94 h | 310.97 h |
| 241654000 | product | 10/10, 01:57 PM UTC | 1.29 h | 1143.04 h |
| 249427000 | container | 10/10, 01:52 PM UTC | 1.07 h | -90.88 h |
| 240205400 | product | 10/10, 01:09 PM UTC | 2.29 h | 7212.60 h |
| 271052243 | general-cargo | 10/10, 12:40 PM UTC | 0.80 h | -2.67 h |
| 636026639 | container | 10/10, 12:24 PM UTC | 0.42 h | -1.92 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.