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)
17.40 h
MAE 7.01 h · 961 voyages
Broadcast ETA (RMSE)
67.85 h
crew-declared, 366 voyages (same set)
Our advantage
74.4 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (389 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| MMSI | Cargo | Arrival | Our error | Broadcast error |
|---|---|---|---|---|
| 636021664 | container | 07/12, 11:57 AM UTC | 2.55 h | -2.96 h |
| 240205400 | product | 07/12, 11:29 AM UTC | 0.20 h | 614.27 h |
| 240043800 | product | 07/12, 10:50 AM UTC | 0.08 h | — |
| 255805908 | container | 07/12, 10:43 AM UTC | 1.00 h | -837.72 h |
| 240708000 | chemical | 07/12, 09:13 AM UTC | 1.56 h | -77.23 h |
| 241750000 | product | 07/12, 09:12 AM UTC | 2.31 h | -917.21 h |
| 253000158 | container | 07/12, 08:39 AM UTC | 0.39 h | -363.66 h |
| 240205400 | product | 07/12, 07:37 AM UTC | 3.44 h | 618.14 h |
| 240698300 | container | 07/12, 07:12 AM UTC | 1.74 h | — |
| 240698300 | container | 07/12, 06:57 AM UTC | 0.49 h | -29.46 h |
| 247485200 | container | 07/12, 06:55 AM UTC | 2.32 h | -373.92 h |
| 240620300 | product | 07/12, 06:45 AM UTC | 1.18 h | 2478.23 h |
| 241694000 | container | 07/12, 05:02 AM UTC | 2.42 h | -0.55 h |
| 241694000 | container | 07/12, 04:39 AM UTC | 1.09 h | -23.17 h |
| 241842000 | container | 07/12, 01:21 AM UTC | 1.22 h | -0.28 h |
| 241324000 | product | 07/12, 12:22 AM UTC | 2.23 h | 3298.62 h |
| 249427000 | general-cargo | 07/11, 09:27 PM UTC | 1.05 h | -90.46 h |
| 352006400 | container | 07/11, 08:57 PM UTC | 1.06 h | -126.96 h |
| 210989000 | container | 07/11, 08:25 PM UTC | 1.58 h | -102.42 h |
| 240205400 | product | 07/11, 08:05 PM UTC | 0.50 h | 629.67 h |
| 240620300 | product | 07/11, 07:19 PM UTC | 1.95 h | 2489.68 h |
| 247104500 | product | 07/11, 07:16 PM UTC | 2.41 h | -682.28 h |
| 240620300 | product | 07/11, 06:48 PM UTC | -3.77 h | 2490.19 h |
| 271051219 | general-cargo | 07/11, 05:29 PM UTC | 1.99 h | -254.49 h |
| 538007627 | product | 07/11, 05:02 PM UTC | 4.80 h | -726.04 h |
| 240897000 | product | 07/11, 04:57 PM UTC | 0.92 h | 4159.03 h |
| 636020667 | container | 07/11, 04:03 PM UTC | 1.61 h | -230.06 h |
| 255805788 | container | 07/11, 03:11 PM UTC | 2.81 h | -246.18 h |
| 240205400 | product | 07/11, 02:05 PM UTC | 3.30 h | 635.67 h |
| 247305000 | container | 07/11, 01:54 PM UTC | 0.53 h | -292.92 h |
| 240183900 | product | 07/11, 12:42 PM UTC | 2.22 h | -50.71 h |
| 255805996 | container | 07/11, 11:11 AM UTC | 1.16 h | -209.20 h |
| 240897000 | product | 07/11, 10:50 AM UTC | 1.04 h | 4165.15 h |
| 538010615 | product | 07/11, 10:45 AM UTC | 1.63 h | -239.75 h |
| 240752600 | product | 07/11, 10:42 AM UTC | 1.40 h | — |
| 239786000 | container | 07/11, 10:26 AM UTC | 1.70 h | -36.44 h |
| 237829800 | product | 07/11, 10:14 AM UTC | 1.19 h | — |
| 565671000 | container | 07/11, 09:35 AM UTC | 2.40 h | -6.60 h |
| 241671000 | container | 07/11, 08:18 AM UTC | 2.07 h | -34.55 h |
| 237592400 | product | 07/11, 07:01 AM UTC | -45.06 h | — |
| 241654000 | product | 07/11, 06:59 AM UTC | 2.70 h | 3334.00 h |
| 239869900 | product | 07/11, 06:59 AM UTC | 0.53 h | 4156.51 h |
| 237006500 | container | 07/11, 06:52 AM UTC | 4.40 h | -33.87 h |
| 305473000 | container | 07/11, 06:47 AM UTC | 0.65 h | -208.80 h |
| 220129000 | container | 07/11, 06:22 AM UTC | 1.05 h | -881.37 h |
| 636023590 | container | 07/11, 05:42 AM UTC | 1.69 h | -3.70 h |
| 240732000 | product | 07/11, 05:14 AM UTC | 3.90 h | -49.24 h |
| 240732000 | product | 07/11, 04:24 AM UTC | 3.15 h | -144.41 h |
| 240043800 | product | 07/11, 01:47 AM UTC | 1.20 h | — |
| 240949000 | product | 07/11, 12:58 AM UTC | 3.43 h | -7.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.