ETA accuracy benchmark · 🇨🇳 Shenzhen
How Port Flow's predicted ETA compares to each vessel's own broadcast ETA at Shenzhen, 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)
57.86 h
MAE 114.12 h · 202 voyages
Broadcast ETA (RMSE)
54.09 h
crew-declared, 44 voyages (same set)
Gap
7.0 %
higher error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (116 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 413229070 | container | 08/26, 01:46 AM UTC | -204.56 h | -662.77 h |
| 538010792 | general-cargo | 08/26, 01:26 AM UTC | 3.70 h | -795.44 h |
| 413998793 | container | 08/25, 09:19 PM UTC | -1405.29 h | — |
| 412750000 | container | 08/25, 07:57 PM UTC | -4.74 h | -1480.45 h |
| 566409000 | container | 08/25, 06:50 PM UTC | 5.89 h | -5.84 h |
| 538010784 | general-cargo | 08/25, 05:24 PM UTC | 2.14 h | -1731.90 h |
| 256615000 | container | 08/25, 05:19 PM UTC | 2.03 h | -6.32 h |
| 636025149 | container | 08/25, 04:54 PM UTC | 7.07 h | -3.92 h |
| 477282300 | container | 08/25, 02:52 PM UTC | 0.66 h | — |
| 636022037 | container | 08/25, 02:08 PM UTC | -14.54 h | -581.14 h |
| 413345280 | container | 08/25, 01:24 PM UTC | -26.01 h | -500.57 h |
| 412350580 | container | 08/25, 01:22 PM UTC | -2.05 h | -1909.38 h |
| 563205700 | container | 08/25, 01:02 PM UTC | 5.67 h | -783.05 h |
| 412411020 | container | 08/25, 12:00 PM UTC | -12.35 h | -513.51 h |
| 563110800 | container | 08/25, 11:02 AM UTC | 4.28 h | -3.04 h |
| 563163300 | container | 08/25, 06:23 AM UTC | 5.72 h | -674.39 h |
| 241312000 | general-cargo | 08/25, 02:09 AM UTC | 2.90 h | -1604.66 h |
| 352003114 | container | 08/25, 01:45 AM UTC | -2.50 h | -4.76 h |
| 564619000 | general-cargo | 08/25, 01:38 AM UTC | 2.57 h | -608.64 h |
| 212428000 | general-cargo | 08/25, 01:02 AM UTC | 5.77 h | -3.04 h |
| 413837481 | container | 08/25, 01:01 AM UTC | -1426.77 h | -1386.02 h |
| 413905921 | container | 08/25, 12:36 AM UTC | 7.23 h | -1851.62 h |
| 413496010 | container | 08/25, 12:10 AM UTC | -1.06 h | — |
| 636025296 | container | 08/24, 10:42 PM UTC | -1.25 h | -837.70 h |
| 413479270 | container | 08/24, 10:36 PM UTC | -505.07 h | -496.61 h |
| 563808000 | general-cargo | 08/24, 08:04 PM UTC | 0.83 h | -1547.08 h |
| 538011688 | product | 08/24, 06:59 PM UTC | -6.55 h | -19.99 h |
| 357874000 | container | 08/24, 06:30 PM UTC | 1.56 h | -1614.51 h |
| 413496010 | container | 08/24, 04:09 PM UTC | -1.29 h | -888.16 h |
| 440761000 | general-cargo | 08/24, 03:15 PM UTC | 5.93 h | -1196.25 h |
| 255806031 | container | 08/24, 12:37 PM UTC | 2.92 h | — |
| 636025448 | container | 08/24, 10:51 AM UTC | -23.08 h | -25.85 h |
| 636023683 | container | 08/24, 10:43 AM UTC | 3.93 h | -884.22 h |
| 538007311 | container | 08/24, 10:17 AM UTC | -6.30 h | -1161.29 h |
| 563182400 | general-cargo | 08/24, 09:59 AM UTC | -1.35 h | -821.98 h |
| 566730000 | container | 08/24, 09:33 AM UTC | -7.14 h | — |
| 256441000 | container | 08/24, 08:18 AM UTC | -2.51 h | -519.31 h |
| 235093569 | container | 08/24, 05:50 AM UTC | 3.32 h | — |
| 371543000 | container | 08/24, 02:33 AM UTC | 1.99 h | -603.06 h |
| 249515000 | general-cargo | 08/24, 01:12 AM UTC | 3.09 h | -3.21 h |
| 563265100 | container | 08/24, 12:10 AM UTC | 2.82 h | -579.18 h |
| 636019897 | container | 08/23, 09:43 PM UTC | 0.73 h | -437.73 h |
| 636022573 | container | 08/23, 08:13 PM UTC | -3.85 h | -521.73 h |
| 636023720 | general-cargo | 08/23, 08:07 PM UTC | -0.97 h | -1258.13 h |
| 413492730 | container | 08/23, 07:56 PM UTC | -126.62 h | — |
| 565653000 | container | 08/23, 07:50 PM UTC | 1.33 h | — |
| 563230400 | container | 08/23, 05:42 PM UTC | 1.62 h | -1490.71 h |
| 636015514 | container | 08/23, 04:16 PM UTC | -3.14 h | — |
| 563139600 | container | 08/23, 01:35 PM UTC | -0.33 h | -541.09 h |
| 412412420 | container | 08/23, 12:08 PM UTC | -552.96 h | -637.65 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.