ETA accuracy benchmark · 🇺🇸 Houston
How Port Flow's predicted ETA compares to each vessel's own broadcast ETA at Houston, 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)
16.31 h
MAE 17.31 h · 992 voyages
Broadcast ETA (RMSE)
62.93 h
crew-declared, 587 voyages (same set)
Our advantage
74.1 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (172 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 |
|---|---|---|---|---|
| 319469000 | chemical | 07/12, 11:54 AM UTC | 2.67 h | -234.91 h |
| 636022942 | container | 07/12, 11:02 AM UTC | 0.34 h | 18.95 h |
| 367455580 | product | 07/12, 10:38 AM UTC | 6.75 h | -97.14 h |
| 338525000 | container | 07/12, 10:28 AM UTC | -0.19 h | -820.48 h |
| 256312000 | product | 07/12, 09:11 AM UTC | 2.21 h | -205.19 h |
| 357743000 | container | 07/12, 08:39 AM UTC | 8.75 h | -5.66 h |
| 255916578 | container | 07/12, 08:37 AM UTC | 1.96 h | -42.63 h |
| 563016600 | container | 07/12, 06:55 AM UTC | 4.85 h | -23.93 h |
| 563301700 | container | 07/12, 05:03 AM UTC | 6.47 h | -88.06 h |
| 314508000 | container | 07/12, 04:20 AM UTC | 6.85 h | -5.34 h |
| 538009779 | chemical | 07/12, 01:37 AM UTC | -21.28 h | -261.62 h |
| 219377000 | container | 07/12, 01:26 AM UTC | -60.56 h | -776.44 h |
| 352003540 | product | 07/12, 12:04 AM UTC | 5.58 h | -52.07 h |
| 636092892 | container | 07/12, 12:03 AM UTC | 1.55 h | -1104.56 h |
| 255915816 | chemical | 07/11, 11:01 PM UTC | -14.92 h | -208.02 h |
| 538010230 | container | 07/11, 11:00 PM UTC | 3.41 h | -12.00 h |
| 636023094 | chemical | 07/11, 10:57 PM UTC | -0.41 h | -256.96 h |
| 636091686 | product | 07/11, 10:50 PM UTC | -0.73 h | -50.85 h |
| 636021688 | product | 07/11, 08:28 PM UTC | 4.75 h | -632.47 h |
| 538009521 | container | 07/11, 07:52 PM UTC | 6.45 h | -17.87 h |
| 244559000 | container | 07/11, 06:12 PM UTC | 9.88 h | -5.21 h |
| 256572000 | container | 07/11, 04:56 PM UTC | 2.57 h | -4.95 h |
| 636022034 | product | 07/11, 04:53 PM UTC | 5.76 h | -207.90 h |
| 538004911 | general-cargo | 07/11, 04:47 PM UTC | -2.43 h | -948.30 h |
| 367497070 | product | 07/11, 04:14 PM UTC | 11.87 h | -763.70 h |
| 367497070 | product | 07/11, 03:57 PM UTC | 1.39 h | — |
| 367497070 | product | 07/11, 03:44 PM UTC | 6.50 h | — |
| 367497070 | product | 07/11, 03:20 PM UTC | 10.68 h | -762.81 h |
| 367497070 | product | 07/11, 12:50 PM UTC | 4.42 h | -760.30 h |
| 538010751 | product | 07/11, 12:30 PM UTC | 5.04 h | -121.50 h |
| 352002629 | product | 07/11, 12:06 PM UTC | -36.09 h | -1285.11 h |
| 367497070 | product | 07/11, 10:57 AM UTC | -3.44 h | -758.43 h |
| 636023029 | container | 07/11, 10:54 AM UTC | 5.22 h | -4.91 h |
| 357994000 | container | 07/11, 10:48 AM UTC | -3.20 h | -90.80 h |
| 636022805 | chemical | 07/11, 09:28 AM UTC | 0.73 h | -123.48 h |
| 244155000 | general-cargo | 07/11, 08:00 AM UTC | 1.01 h | 0.99 h |
| 538007042 | product | 07/11, 06:16 AM UTC | 3.28 h | -60.28 h |
| 538010252 | chemical | 07/11, 04:17 AM UTC | 0.87 h | -213.30 h |
| 563220700 | product | 07/11, 02:27 AM UTC | 5.79 h | -21.45 h |
| 563155400 | product | 07/11, 02:00 AM UTC | 16.06 h | -17.01 h |
| 636021975 | container | 07/11, 01:49 AM UTC | 2.25 h | -86.82 h |
| 371895000 | container | 07/11, 12:36 AM UTC | -1.63 h | -97.61 h |
| 220164000 | container | 07/10, 09:36 PM UTC | 0.65 h | -4.61 h |
| 636025867 | container | 07/10, 09:22 PM UTC | -0.95 h | -4.37 h |
| 368611000 | container | 07/10, 09:09 PM UTC | -28.16 h | — |
| 477454900 | container | 07/10, 06:12 PM UTC | -1.83 h | -4.21 h |
| 538011321 | product | 07/10, 05:55 PM UTC | -1.24 h | -4.42 h |
| 403533001 | container | 07/10, 04:41 PM UTC | 11.60 h | -5.68 h |
| 219287000 | product | 07/10, 04:12 PM UTC | -3.81 h | -821.20 h |
| 636018193 | general-cargo | 07/10, 03:13 PM UTC | 0.36 h | -2.23 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.