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 90 days. We publish the number — good or bad. Lower error is better.
Port Flow predicted ETA (RMSE)
11.21 h
MAE 12.57 h · 588 voyages
Broadcast ETA (RMSE)
38.57 h
crew-declared, 405 voyages (same set)
Our advantage
70.9 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (104 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 |
|---|---|---|---|---|
| 374645000 | container | 07/11, 12:11 PM UTC | -2.68 h | — |
| 563220900 | container | 07/11, 11:39 AM UTC | -13.58 h | -253.66 h |
| 412659000 | general-cargo | 07/11, 11:03 AM UTC | 3.66 h | 4.95 h |
| 351753000 | container | 07/10, 09:09 PM UTC | -470.42 h | -200.66 h |
| 563232800 | general-cargo | 07/10, 05:38 PM UTC | 1.27 h | -504.13 h |
| 538010122 | container | 07/10, 06:25 AM UTC | -364.29 h | -510.43 h |
| 228459800 | container | 07/09, 03:44 PM UTC | -5.51 h | — |
| 413496010 | container | 07/08, 09:19 AM UTC | -0.65 h | -431.32 h |
| 563265100 | container | 07/08, 07:21 AM UTC | 5.30 h | -183.36 h |
| 477987100 | general-cargo | 07/08, 05:57 AM UTC | -2.10 h | -539.96 h |
| 563105800 | container | 07/08, 05:45 AM UTC | 0.83 h | -19.75 h |
| 412620150 | container | 07/08, 05:11 AM UTC | -15.08 h | -521.19 h |
| 636018739 | container | 07/08, 04:17 AM UTC | -0.62 h | -3.30 h |
| 563163500 | container | 07/07, 07:40 PM UTC | -5.99 h | -476.07 h |
| 477632900 | general-cargo | 07/07, 06:46 PM UTC | -0.84 h | — |
| 215158000 | container | 07/07, 10:21 AM UTC | -5.16 h | -8.36 h |
| 636022342 | container | 07/07, 08:43 AM UTC | 1.12 h | -501.73 h |
| 413905922 | container | 07/07, 03:05 AM UTC | -84.43 h | -470.09 h |
| 414850000 | container | 07/07, 01:20 AM UTC | -2.92 h | -1.34 h |
| 563144200 | general-cargo | 07/06, 10:05 PM UTC | -13.06 h | -127.08 h |
| 563173400 | container | 07/06, 07:03 PM UTC | -374.24 h | -350.56 h |
| 412403930 | container | 07/06, 06:06 PM UTC | -171.59 h | -482.60 h |
| 212749000 | container | 07/06, 04:11 PM UTC | -1.28 h | -571.19 h |
| 256381000 | general-cargo | 07/06, 05:52 AM UTC | 5.83 h | -120.88 h |
| 563263200 | container | 07/06, 05:13 AM UTC | 5.73 h | -2.23 h |
| 563211100 | container | 07/06, 03:40 AM UTC | -1.53 h | -2.68 h |
| 538006545 | product | 07/06, 03:40 AM UTC | -103.96 h | -1149.67 h |
| 412469340 | container | 07/06, 03:38 AM UTC | -1.49 h | -9.64 h |
| 538010174 | general-cargo | 07/06, 02:47 AM UTC | -9.37 h | -12.80 h |
| 357121000 | product | 07/06, 02:20 AM UTC | 3.21 h | -3.85 h |
| 413474470 | container | 07/06, 02:02 AM UTC | -3.94 h | -34.04 h |
| 412411020 | container | 07/06, 01:21 AM UTC | 9.93 h | -165.85 h |
| 413060000 | general-cargo | 07/06, 12:52 AM UTC | 9.93 h | -0.86 h |
| 215857000 | general-cargo | 07/06, 12:50 AM UTC | 3.07 h | -2.85 h |
| 413479270 | container | 07/05, 11:52 PM UTC | -5.44 h | -139.88 h |
| 563113200 | general-cargo | 07/05, 09:28 PM UTC | 3.30 h | — |
| 563005400 | container | 07/05, 06:48 PM UTC | 0.29 h | -232.66 h |
| 563163300 | container | 07/05, 12:13 PM UTC | 1.45 h | -3.23 h |
| 636021597 | container | 07/05, 11:58 AM UTC | -0.80 h | — |
| 563263200 | container | 07/05, 10:30 AM UTC | -7.88 h | — |
| 352269000 | container | 07/05, 09:26 AM UTC | 2.66 h | -3.44 h |
| 353201000 | container | 07/05, 07:45 AM UTC | 0.92 h | -2.75 h |
| 533131021 | general-cargo | 07/05, 07:20 AM UTC | -3.72 h | -364.34 h |
| 248161000 | container | 07/05, 07:07 AM UTC | 4.42 h | -9.13 h |
| 229393000 | container | 07/05, 01:58 AM UTC | 3.64 h | -3.98 h |
| 563242900 | general-cargo | 07/05, 01:08 AM UTC | 0.25 h | -271.64 h |
| 538009749 | container | 07/05, 12:26 AM UTC | 5.79 h | -3.44 h |
| 563256100 | container | 07/05, 12:13 AM UTC | 1.29 h | 4.78 h |
| 538010121 | container | 07/05, 12:13 AM UTC | -12.25 h | — |
| 249283000 | container | 07/04, 08:00 PM UTC | 1.44 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.