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)
14.26 h
MAE 71.22 h · 995 voyages
Broadcast ETA (RMSE)
60.92 h
crew-declared, 564 voyages (same set)
Our advantage
76.6 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (343 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 477083800 | container | 08/26, 10:57 PM UTC | -5.30 h | -1142.96 h |
| 636093139 | general-cargo | 08/26, 10:07 PM UTC | -1.67 h | -1580.13 h |
| 636016098 | product | 08/26, 09:29 PM UTC | -16.64 h | -117.99 h |
| 355506000 | container | 08/26, 05:29 PM UTC | -3.05 h | -6.00 h |
| 368611000 | container | 08/26, 05:04 PM UTC | -1.84 h | — |
| 356075000 | product | 08/26, 04:03 PM UTC | 2.05 h | -33.06 h |
| 367479930 | product | 08/26, 03:37 PM UTC | -7.00 h | — |
| 205776000 | container | 08/26, 02:44 PM UTC | 11.63 h | -6.74 h |
| 636015706 | product | 08/26, 02:23 PM UTC | 6.47 h | -114.40 h |
| 636022974 | container | 08/26, 01:54 PM UTC | -0.07 h | -11.41 h |
| 636021410 | product | 08/26, 09:50 AM UTC | -4.53 h | -6.84 h |
| 538005585 | product | 08/26, 07:48 AM UTC | -0.25 h | -4.80 h |
| 319377000 | product | 08/26, 05:17 AM UTC | 0.24 h | -103.30 h |
| 368611000 | container | 08/26, 02:16 AM UTC | -24.30 h | — |
| 538008166 | product | 08/26, 01:29 AM UTC | -37.91 h | -1824.49 h |
| 372267000 | product | 08/26, 01:23 AM UTC | -3.07 h | -1273.56 h |
| 244149000 | container | 08/26, 01:04 AM UTC | 1.13 h | -4.58 h |
| 229748000 | chemical | 08/26, 12:46 AM UTC | -0.48 h | -1117.77 h |
| 257081350 | product | 08/26, 12:16 AM UTC | -2.80 h | -542.27 h |
| 636019534 | product | 08/25, 11:04 PM UTC | 2.33 h | -60.07 h |
| 563052800 | container | 08/25, 10:41 PM UTC | 3.05 h | -112.69 h |
| 538011375 | product | 08/25, 10:30 PM UTC | 10.10 h | -158.51 h |
| 305245000 | container | 08/25, 10:20 PM UTC | 8.35 h | -5.84 h |
| 256855000 | container | 08/25, 09:00 PM UTC | -1.72 h | -2120.01 h |
| 563091800 | product | 08/25, 08:01 PM UTC | 11.03 h | -1724.01 h |
| 636022581 | product | 08/25, 07:14 PM UTC | -2.66 h | -1715.24 h |
| 565516000 | product | 08/25, 06:57 PM UTC | -0.22 h | -86.46 h |
| 245964000 | container | 08/25, 04:48 PM UTC | 7.66 h | -7.81 h |
| 563258100 | chemical | 08/25, 02:10 PM UTC | 0.50 h | -28.17 h |
| 218650000 | general-cargo | 08/25, 01:03 PM UTC | -3.26 h | -4.72 h |
| 255916107 | container | 08/25, 11:27 AM UTC | 3.12 h | -52.45 h |
| 636017874 | product | 08/25, 10:03 AM UTC | 7.48 h | -563.56 h |
| 636018092 | product | 08/25, 10:02 AM UTC | 7.48 h | -12.04 h |
| 563229500 | product | 08/25, 09:39 AM UTC | 1.60 h | -20.65 h |
| 538005746 | product | 08/25, 08:35 AM UTC | 9.90 h | -1963.60 h |
| 538010009 | container | 08/25, 06:05 AM UTC | 1.37 h | -126.08 h |
| 538003910 | product | 08/25, 03:31 AM UTC | 4.49 h | -54.52 h |
| 563101100 | product | 08/25, 03:01 AM UTC | 15.31 h | -353.02 h |
| 538006499 | product | 08/25, 02:21 AM UTC | 27.88 h | -1594.35 h |
| 255806421 | chemical | 08/25, 01:47 AM UTC | 5.46 h | -12.79 h |
| 367141680 | container | 08/25, 01:31 AM UTC | -6.89 h | -8.52 h |
| 563091400 | product | 08/24, 06:58 PM UTC | -1.00 h | -185.98 h |
| 636024507 | container | 08/24, 05:29 PM UTC | -0.94 h | -3.99 h |
| 636025867 | container | 08/24, 05:24 PM UTC | 4.98 h | -461.40 h |
| 477078500 | container | 08/24, 04:27 PM UTC | 4.31 h | -5.45 h |
| 538010358 | product | 08/24, 03:54 PM UTC | -3.80 h | -3.41 h |
| 248429000 | product | 08/24, 03:18 PM UTC | -3.86 h | -29.31 h |
| 241952000 | product | 08/24, 02:45 PM UTC | 1.56 h | -3.75 h |
| 636021410 | product | 08/24, 02:10 PM UTC | -1.73 h | -723.17 h |
| 563320200 | container | 08/24, 12:34 PM UTC | 0.56 h | -93.58 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.