ETA accuracy benchmark · 🇺🇸 Los Angeles
How Port Flow's predicted ETA compares to each vessel's own broadcast ETA at Los Angeles, 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)
4.65 h
MAE 2.37 h · 445 voyages
Broadcast ETA (RMSE)
38.33 h
crew-declared, 217 voyages (same set)
Our advantage
87.9 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (200 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 352004278 | product | 10/12, 03:24 AM UTC | 0.61 h | -922.41 h |
| 368237190 | container | 10/12, 01:56 AM UTC | 0.51 h | -299.94 h |
| 366791000 | container | 10/12, 01:03 AM UTC | 1.18 h | -163.06 h |
| 538004202 | container | 10/12, 12:22 AM UTC | 0.15 h | — |
| 369006000 | container | 10/11, 11:56 PM UTC | 0.40 h | -1035.94 h |
| 636091473 | container | 10/11, 11:23 PM UTC | 0.51 h | -756.90 h |
| 636014128 | product | 10/11, 09:25 PM UTC | 0.49 h | -1.43 h |
| 477848700 | container | 10/11, 09:18 PM UTC | 0.31 h | -1.30 h |
| 369225000 | product | 10/11, 04:41 PM UTC | 0.37 h | -276.69 h |
| 636020979 | container | 10/11, 03:32 PM UTC | 0.31 h | -4.55 h |
| 367740790 | product | 10/11, 03:08 PM UTC | 0.51 h | -281.15 h |
| 636021471 | container | 10/11, 02:31 PM UTC | 0.72 h | 329.48 h |
| 563199600 | container | 10/11, 01:54 PM UTC | -0.51 h | -1233.91 h |
| 563281400 | general-cargo | 10/11, 01:00 PM UTC | -1.23 h | -817.01 h |
| 368485000 | container | 10/11, 11:08 AM UTC | 1.86 h | -38.14 h |
| 636015659 | container | 10/11, 09:35 AM UTC | -0.67 h | -1419.09 h |
| 538011471 | product | 10/11, 05:12 AM UTC | 0.92 h | -23.21 h |
| 563153600 | product | 10/11, 02:30 AM UTC | 0.45 h | -15.01 h |
| 212539000 | container | 10/10, 09:55 PM UTC | 3.19 h | -194.93 h |
| 369567000 | product | 10/10, 09:20 PM UTC | -0.10 h | -0.35 h |
| 477056400 | general-cargo | 10/10, 08:13 PM UTC | 1.66 h | -643.22 h |
| 367719640 | container | 10/10, 05:49 PM UTC | -0.01 h | -24.99 h |
| 367688000 | product | 10/10, 05:24 PM UTC | 0.19 h | -1870.16 h |
| 367353080 | product | 10/10, 03:27 PM UTC | 2.01 h | 1976.54 h |
| 373048000 | container | 10/10, 02:38 PM UTC | 0.66 h | -0.63 h |
| 636025512 | container | 10/10, 02:31 PM UTC | 0.85 h | -1.52 h |
| 431153000 | container | 10/10, 02:03 PM UTC | 0.67 h | -3145.06 h |
| 636025512 | container | 10/10, 01:41 PM UTC | 1.01 h | -472.70 h |
| 563052600 | container | 10/10, 01:28 PM UTC | 1.37 h | -556.47 h |
| 372148000 | container | 10/10, 01:04 PM UTC | 0.84 h | -2.07 h |
| 563153600 | product | 10/10, 12:11 PM UTC | 0.73 h | -1.19 h |
| 354891000 | general-cargo | 10/10, 09:59 AM UTC | 1.37 h | -1.00 h |
| 338899000 | product | 10/10, 07:54 AM UTC | 3.45 h | -183.90 h |
| 636021962 | product | 10/10, 03:26 AM UTC | 0.83 h | -20.44 h |
| 311056900 | container | 10/10, 12:41 AM UTC | 1.91 h | -731.19 h |
| 369567000 | product | 10/10, 12:17 AM UTC | -0.14 h | -0.29 h |
| 351928000 | container | 10/09, 10:58 PM UTC | 0.58 h | -1.48 h |
| 441701000 | container | 10/09, 10:30 PM UTC | -0.03 h | -886.51 h |
| 259951000 | container | 10/09, 10:01 PM UTC | 2.79 h | -2.02 h |
| 338899000 | product | 10/09, 07:44 PM UTC | -0.19 h | -171.74 h |
| 368237190 | container | 10/09, 06:05 PM UTC | 1.59 h | -244.09 h |
| 367719640 | container | 10/09, 05:47 PM UTC | -0.53 h | -4.95 h |
| 636021548 | container | 10/09, 04:59 PM UTC | 1.04 h | -1.99 h |
| 416465000 | container | 10/09, 03:47 PM UTC | -0.26 h | -0.78 h |
| 477182300 | container | 10/09, 02:01 PM UTC | 0.48 h | -510.53 h |
| 636018038 | general-cargo | 10/09, 01:25 PM UTC | 0.12 h | -1735.42 h |
| 563295900 | container | 10/09, 12:03 PM UTC | 0.50 h | -1.05 h |
| 566410000 | general-cargo | 10/09, 11:59 AM UTC | -0.79 h | -25.00 h |
| 366562000 | container | 10/09, 09:19 AM UTC | 0.60 h | -198.32 h |
| 636024125 | container | 10/09, 08:34 AM UTC | 0.73 h | -10.57 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.