ETA accuracy benchmark · 🇪🇸 Algeciras
How Port Flow's predicted ETA compares to each vessel's own broadcast ETA at Algeciras, measured on closed voyages over the last 90 days. We publish the number — good or bad. Lower error is better.
Port Flow predicted ETA (RMSE)
56.36 h
MAE 63.75 h · 368 voyages
Broadcast ETA (RMSE)
54.02 h
crew-declared, 159 voyages (same set)
Gap
4.3 %
higher error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (137 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 247238700 | product | 08/26, 06:53 AM UTC | -16.89 h | — |
| 244850968 | container | 08/26, 05:17 AM UTC | 1.06 h | -141.28 h |
| 224932000 | product | 08/26, 04:55 AM UTC | -190.83 h | — |
| 209613000 | container | 08/26, 01:19 AM UTC | 1.70 h | -158.32 h |
| 232043368 | container | 08/26, 12:14 AM UTC | 2.27 h | — |
| 210707000 | container | 08/26, 12:08 AM UTC | 1.93 h | -194.48 h |
| 224879000 | container | 08/26, 12:01 AM UTC | -2.15 h | -266.52 h |
| 565449000 | container | 08/25, 10:59 PM UTC | -1140.09 h | -1378.99 h |
| 636093137 | general-cargo | 08/25, 10:58 PM UTC | -3.68 h | -6.97 h |
| 538005089 | product | 08/25, 10:42 PM UTC | -75.41 h | -1322.70 h |
| 256592000 | container | 08/25, 01:53 PM UTC | -42.59 h | -565.64 h |
| 563032900 | container | 08/25, 12:50 PM UTC | 0.53 h | -1758.84 h |
| 413149000 | general-cargo | 08/25, 12:50 PM UTC | -2.30 h | -704.83 h |
| 277562000 | container | 08/25, 12:40 PM UTC | -921.89 h | -850.67 h |
| 249024000 | product | 08/25, 12:06 PM UTC | -155.03 h | 3106.89 h |
| 636093027 | container | 08/23, 05:02 PM UTC | -545.24 h | -494.03 h |
| 352005213 | container | 08/23, 04:37 PM UTC | -1.81 h | -565.62 h |
| 255916089 | container | 08/23, 03:17 PM UTC | -17.17 h | — |
| 229391000 | container | 08/18, 11:05 PM UTC | -1173.13 h | -973.10 h |
| 224994000 | product | 08/18, 07:56 AM UTC | -20.01 h | -128.95 h |
| 255806225 | product | 08/18, 07:44 AM UTC | -0.53 h | -13.24 h |
| 220609000 | product | 08/18, 07:29 AM UTC | -1.86 h | -255.49 h |
| 225419000 | product | 08/18, 07:24 AM UTC | -8.21 h | -252.91 h |
| 247238700 | product | 08/18, 06:34 AM UTC | 2.21 h | -1691.58 h |
| 215341000 | product | 08/18, 05:53 AM UTC | -4.73 h | -0.39 h |
| 215675000 | product | 08/18, 05:21 AM UTC | -3.58 h | -16.36 h |
| 236112789 | product | 08/18, 04:52 AM UTC | -4.39 h | — |
| 215335000 | product | 08/18, 02:24 AM UTC | 5.23 h | -81.41 h |
| 220609000 | product | 08/18, 01:18 AM UTC | 4.83 h | -249.30 h |
| 236590000 | product | 08/18, 01:10 AM UTC | 6.03 h | — |
| 636020192 | container | 08/18, 12:42 AM UTC | -2.33 h | -1574.22 h |
| 255916541 | product | 08/18, 12:15 AM UTC | -13.70 h | 95.76 h |
| 209825000 | product | 08/18, 12:11 AM UTC | 6.11 h | -12.19 h |
| 311001150 | container | 08/18, 12:05 AM UTC | 1.29 h | -1029.09 h |
| 236112789 | product | 08/17, 11:08 PM UTC | 6.65 h | — |
| 215341000 | product | 08/17, 10:40 PM UTC | 0.95 h | -10.18 h |
| 220609000 | product | 08/17, 09:30 PM UTC | 1.97 h | -245.51 h |
| 247427900 | product | 08/17, 09:02 PM UTC | 0.42 h | -370.04 h |
| 212633000 | product | 08/17, 09:01 PM UTC | 0.55 h | -16.03 h |
| 249566000 | product | 08/17, 08:50 PM UTC | 0.56 h | -135.85 h |
| 248194000 | product | 08/17, 08:38 PM UTC | 0.86 h | -686.64 h |
| 225419000 | product | 08/17, 08:25 PM UTC | -376.40 h | -241.93 h |
| 255806225 | product | 08/17, 07:59 PM UTC | 2.91 h | -1.49 h |
| 215341000 | product | 08/17, 07:59 PM UTC | -381.74 h | — |
| 209918000 | product | 08/17, 07:49 PM UTC | -0.20 h | -1228.83 h |
| 212633000 | product | 08/17, 07:34 PM UTC | 2.52 h | — |
| 229332000 | chemical | 08/17, 07:32 PM UTC | 3.33 h | -28.54 h |
| 355600000 | product | 08/17, 06:07 PM UTC | -522.76 h | -922.13 h |
| 255915724 | product | 08/17, 05:53 PM UTC | -343.36 h | -553.39 h |
| 219069000 | general-cargo | 08/17, 05:51 PM UTC | 0.56 h | -1.36 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.