ETA accuracy benchmark · 🇪🇸 Valencia
How Port Flow's predicted ETA compares to each vessel's own broadcast ETA at Valencia, measured on closed voyages over the last 7 days. We publish the number — good or bad. Lower error is better.
Port Flow predicted ETA (RMSE)
13.14 h
MAE 1.68 h · 95 voyages
Broadcast ETA (RMSE)
80.32 h
crew-declared, 43 voyages (same set)
Our advantage
83.6 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (51 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 247383500 | general-cargo | 10/13, 05:42 AM UTC | 0.17 h | -138.21 h |
| 212267000 | container | 10/13, 04:36 AM UTC | -0.16 h | -208.60 h |
| 636022721 | container | 10/13, 02:35 AM UTC | -0.01 h | -1.60 h |
| 256968000 | container | 10/13, 12:41 AM UTC | -0.18 h | -2188.69 h |
| 228468600 | container | 10/12, 11:48 PM UTC | -10.19 h | -297.80 h |
| 636023381 | container | 10/12, 11:40 PM UTC | -0.52 h | -132.68 h |
| 563288600 | container | 10/12, 09:57 PM UTC | -0.29 h | -723.95 h |
| 636017239 | container | 10/12, 05:39 PM UTC | 0.39 h | -147.65 h |
| 372972000 | container | 10/12, 03:23 PM UTC | 0.11 h | -290.90 h |
| 255915744 | container | 10/12, 01:36 PM UTC | -0.18 h | -760.61 h |
| 249790000 | lng | 10/12, 09:57 AM UTC | 3.38 h | -37.95 h |
| 244985000 | container | 10/12, 09:52 AM UTC | -78.96 h | -85.88 h |
| 249790000 | lng | 10/12, 08:28 AM UTC | -34.29 h | -36.47 h |
| 563281800 | container | 10/12, 06:03 AM UTC | 0.51 h | -6.05 h |
| 352004886 | container | 10/12, 01:51 AM UTC | 0.31 h | -107.86 h |
| 636021055 | container | 10/11, 09:30 PM UTC | 0.02 h | -260.51 h |
| 229699000 | container | 10/11, 05:44 PM UTC | 0.37 h | 2919.26 h |
| 636024876 | container | 10/11, 04:16 PM UTC | -0.26 h | -38.28 h |
| 215234000 | container | 10/11, 03:34 PM UTC | -0.15 h | -147.57 h |
| 219614000 | container | 10/11, 12:02 PM UTC | -0.37 h | -2269.04 h |
| 636020454 | container | 10/11, 11:56 AM UTC | -0.91 h | -166.94 h |
| 210908000 | product | 10/11, 10:32 AM UTC | 0.04 h | -52.55 h |
| 477617700 | container | 10/11, 09:01 AM UTC | 0.41 h | -2495.03 h |
| 244850968 | container | 10/11, 08:42 AM UTC | -0.21 h | -88.71 h |
| 636024940 | container | 10/11, 05:49 AM UTC | 0.19 h | -24.83 h |
| 636016986 | container | 10/11, 03:59 AM UTC | 0.14 h | -716.99 h |
| 255806492 | container | 10/11, 02:55 AM UTC | -0.21 h | -30.93 h |
| 255806280 | container | 10/10, 10:54 PM UTC | 0.60 h | -30.91 h |
| 538005959 | container | 10/10, 10:48 PM UTC | -0.79 h | -1010.30 h |
| 224127820 | product | 10/10, 10:06 PM UTC | -0.05 h | 2201.89 h |
| 212641000 | container | 10/10, 08:42 PM UTC | 0.26 h | -328.70 h |
| 636019292 | container | 10/10, 07:08 PM UTC | 0.28 h | -48.65 h |
| 636021472 | container | 10/10, 02:39 PM UTC | 0.38 h | -582.66 h |
| 636021596 | container | 10/10, 12:42 PM UTC | -0.39 h | -1079.71 h |
| 538010119 | container | 10/10, 11:19 AM UTC | -0.30 h | -534.33 h |
| 229548000 | container | 10/10, 06:50 AM UTC | -0.21 h | -603.84 h |
| 247383300 | general-cargo | 10/10, 05:02 AM UTC | 0.19 h | -96.53 h |
| 372497000 | container | 10/10, 04:52 AM UTC | -0.17 h | -120.68 h |
| 241298000 | container | 10/10, 04:21 AM UTC | -1.98 h | -1744.36 h |
| 538090641 | container | 10/10, 03:58 AM UTC | -0.06 h | -243.48 h |
| 636019221 | container | 10/09, 08:48 PM UTC | 0.01 h | -31.81 h |
| 224127820 | product | 10/09, 08:25 PM UTC | -9.71 h | 2227.58 h |
| 255806492 | container | 10/09, 07:58 PM UTC | -0.17 h | 0.03 h |
| 477183800 | general-cargo | 10/09, 04:06 PM UTC | -0.15 h | -1888.11 h |
| 271050950 | container | 10/09, 11:01 AM UTC | -0.13 h | -125.03 h |
| 255805984 | container | 10/09, 10:20 AM UTC | 0.02 h | -88.35 h |
| 210908000 | product | 10/09, 07:04 AM UTC | -0.71 h | -6.91 h |
| 255915616 | container | 10/09, 07:04 AM UTC | 0.23 h | -855.07 h |
| 215219000 | container | 10/09, 05:35 AM UTC | 0.08 h | -2335.60 h |
| 477552700 | container | 10/08, 11:50 PM UTC | -0.22 h | -857.84 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.