ETA accuracy benchmark · 🇭🇰 Hong Kong
How Port Flow's predicted ETA compares to each vessel's own broadcast ETA at Hong Kong, 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)
140.65 h
MAE 65.38 h · 521 voyages
Broadcast ETA (RMSE)
49.13 h
crew-declared, 105 voyages (same set)
Gap
186.3 %
higher error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (106 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 477995437 | container | 08/26, 11:44 PM UTC | -0.09 h | — |
| 477995065 | product | 08/26, 11:41 PM UTC | 1.05 h | — |
| 538010433 | general-cargo | 08/26, 11:28 PM UTC | 0.29 h | -767.48 h |
| 477997242 | container | 08/26, 11:25 PM UTC | 0.52 h | 5912.07 h |
| 413773462 | container | 08/26, 11:19 PM UTC | -0.68 h | — |
| 440493000 | container | 08/26, 11:11 PM UTC | 0.35 h | -1.69 h |
| 305558000 | container | 08/26, 11:10 PM UTC | 0.18 h | — |
| 477995064 | product | 08/26, 11:08 PM UTC | 0.18 h | — |
| 413902778 | container | 08/26, 10:39 PM UTC | -12.29 h | -279.66 h |
| 413906927 | container | 08/26, 10:35 PM UTC | -0.33 h | — |
| 636026529 | container | 08/26, 10:18 PM UTC | 0.89 h | -1448.32 h |
| 412054930 | container | 08/26, 09:48 PM UTC | -0.06 h | -1931.80 h |
| 413464990 | container | 08/26, 09:34 PM UTC | -6.63 h | 2.39 h |
| 477996392 | product | 08/26, 09:25 PM UTC | -3.08 h | — |
| 413803231 | container | 08/26, 08:21 PM UTC | -202.34 h | -227.36 h |
| 413906647 | container | 08/26, 08:09 PM UTC | 0.15 h | -10.32 h |
| 413906922 | container | 08/26, 07:16 PM UTC | -1008.04 h | — |
| 412042060 | container | 08/26, 07:10 PM UTC | 2.57 h | — |
| 413800828 | container | 08/26, 07:04 PM UTC | 0.15 h | -542.08 h |
| 413774212 | container | 08/26, 06:52 PM UTC | 0.14 h | — |
| 413868409 | container | 08/26, 06:50 PM UTC | 0.24 h | — |
| 412042060 | container | 08/26, 06:42 PM UTC | 1.98 h | -73.21 h |
| 477996613 | product | 08/26, 06:30 PM UTC | -8.11 h | — |
| 477995064 | product | 08/26, 06:04 PM UTC | 1.13 h | — |
| 413837473 | container | 08/26, 05:53 PM UTC | -201.84 h | — |
| 477996907 | product | 08/26, 05:29 PM UTC | 0.25 h | -1109.49 h |
| 413995708 | container | 08/26, 05:20 PM UTC | -1.08 h | -10.34 h |
| 636015514 | container | 08/26, 05:05 PM UTC | 1.85 h | -1858.09 h |
| 357178000 | container | 08/26, 04:37 PM UTC | 1.85 h | -821.63 h |
| 412411480 | container | 08/26, 04:35 PM UTC | 0.33 h | -41.09 h |
| 477995381 | product | 08/26, 04:35 PM UTC | -3.19 h | — |
| 477995253 | chemical | 08/26, 04:09 PM UTC | -2.79 h | — |
| 477922400 | general-cargo | 08/26, 04:04 PM UTC | 1.00 h | — |
| 412419990 | container | 08/26, 03:28 PM UTC | -0.14 h | -40.47 h |
| 477996450 | container | 08/26, 02:56 PM UTC | -3.60 h | — |
| 413883483 | container | 08/26, 02:43 PM UTC | 2.45 h | — |
| 533170614 | container | 08/26, 02:41 PM UTC | -5.68 h | — |
| 477995066 | product | 08/26, 02:32 PM UTC | 2.55 h | — |
| 477995065 | product | 08/26, 02:27 PM UTC | 0.87 h | — |
| 413762849 | container | 08/26, 02:20 PM UTC | -22.92 h | -202.10 h |
| 477996392 | product | 08/26, 01:45 PM UTC | -3.24 h | — |
| 477100300 | container | 08/26, 01:23 PM UTC | -0.12 h | -1706.38 h |
| 413855543 | container | 08/26, 01:17 PM UTC | -38.93 h | — |
| 413995708 | container | 08/26, 01:15 PM UTC | -1.59 h | -6.26 h |
| 563230700 | general-cargo | 08/26, 12:08 PM UTC | -3.69 h | -547.14 h |
| 413876063 | container | 08/26, 12:04 PM UTC | 0.34 h | — |
| 538010783 | container | 08/26, 12:04 PM UTC | 1.45 h | — |
| 477996530 | product | 08/26, 11:35 AM UTC | -9.34 h | — |
| 477997157 | product | 08/26, 11:31 AM UTC | -0.88 h | — |
| 477996907 | product | 08/26, 11:05 AM UTC | -3.04 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.