ETA accuracy benchmark · 🇿🇦 Durban
How Port Flow's predicted ETA compares to each vessel's own broadcast ETA at Durban, 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)
8.25 h
MAE 109.07 h · 180 voyages
Broadcast ETA (RMSE)
76.05 h
crew-declared, 104 voyages (same set)
Our advantage
89.1 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (75 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 247437400 | product | 08/26, 09:58 PM UTC | -1.92 h | -5.97 h |
| 249187000 | product | 08/26, 08:36 PM UTC | -0.29 h | -7.61 h |
| 636020962 | container | 08/26, 08:08 PM UTC | 0.13 h | -1906.15 h |
| 357997000 | container | 08/26, 06:29 PM UTC | -0.07 h | -77.49 h |
| 247437400 | product | 08/26, 03:12 PM UTC | -0.46 h | 0.79 h |
| 636023923 | container | 08/26, 01:50 PM UTC | 0.17 h | -44.34 h |
| 249112000 | container | 08/26, 01:25 PM UTC | -1.10 h | -393.43 h |
| 636023923 | container | 08/26, 10:43 AM UTC | 3.18 h | -41.23 h |
| 636023923 | container | 08/26, 09:20 AM UTC | 0.54 h | -39.84 h |
| 311001045 | container | 08/26, 09:15 AM UTC | -0.70 h | -123.26 h |
| 601890200 | product | 08/26, 09:14 AM UTC | -0.70 h | 3681.67 h |
| 636023923 | container | 08/26, 08:55 AM UTC | 1.91 h | — |
| 636023923 | container | 08/26, 08:44 AM UTC | 3.26 h | -39.24 h |
| 356251000 | product | 08/26, 08:02 AM UTC | 0.03 h | -600.04 h |
| 538010372 | general-cargo | 08/26, 07:32 AM UTC | -0.28 h | -820.54 h |
| 601890200 | product | 08/26, 12:12 AM UTC | -0.32 h | 3690.72 h |
| 563336200 | container | 08/25, 11:42 PM UTC | -1.45 h | -11.70 h |
| 538012382 | container | 08/25, 09:13 PM UTC | -0.39 h | 1.78 h |
| 601045610 | chemical | 08/25, 08:58 PM UTC | -32.74 h | -1140.97 h |
| 229396000 | container | 08/25, 06:22 PM UTC | 0.94 h | -58.37 h |
| 240963000 | container | 08/25, 02:01 PM UTC | -0.53 h | -143.02 h |
| 538009726 | container | 08/25, 10:46 AM UTC | -0.22 h | -601.28 h |
| 636019434 | container | 08/25, 10:32 AM UTC | -0.21 h | -1579.55 h |
| 352002141 | container | 08/25, 09:59 AM UTC | -6.38 h | 42.01 h |
| 538012737 | product | 08/25, 07:53 AM UTC | 0.07 h | -83.90 h |
| 374678000 | container | 08/25, 07:47 AM UTC | -1.43 h | -999.29 h |
| 538012737 | product | 08/25, 05:18 AM UTC | 3.92 h | -81.31 h |
| 636026006 | container | 08/25, 02:29 AM UTC | -0.01 h | -116.49 h |
| 538012737 | product | 08/25, 01:40 AM UTC | 2.25 h | -77.68 h |
| 636026006 | container | 08/25, 12:53 AM UTC | 2.15 h | -1910.90 h |
| 477534200 | container | 08/25, 12:42 AM UTC | 0.14 h | -72.71 h |
| 538012737 | product | 08/25, 12:18 AM UTC | 4.38 h | -76.32 h |
| 538012737 | product | 08/24, 11:00 PM UTC | 4.06 h | -75.00 h |
| 477534200 | container | 08/24, 10:00 PM UTC | 0.98 h | -70.01 h |
| 636023923 | container | 08/24, 06:59 PM UTC | 5.31 h | -1.49 h |
| 636092848 | general-cargo | 08/24, 06:36 PM UTC | -0.32 h | -2.60 h |
| 636023923 | container | 08/24, 04:55 PM UTC | 4.28 h | -1505.93 h |
| 636092848 | general-cargo | 08/24, 03:51 PM UTC | 2.87 h | 0.14 h |
| 636092848 | general-cargo | 08/24, 03:17 PM UTC | 3.22 h | -1608.30 h |
| 311040800 | container | 08/24, 03:09 PM UTC | 0.05 h | -14.16 h |
| 309075000 | container | 08/24, 02:27 PM UTC | 0.53 h | -4.46 h |
| 538009584 | product | 08/24, 12:17 PM UTC | -0.63 h | -494.79 h |
| 538005170 | container | 08/24, 11:56 AM UTC | 2.09 h | -6.45 h |
| 671362100 | container | 08/24, 10:00 AM UTC | -0.60 h | 6907.98 h |
| 538012192 | container | 08/24, 08:21 AM UTC | 0.14 h | -2.86 h |
| 538090451 | container | 08/24, 07:56 AM UTC | 1.65 h | -2177.95 h |
| 538012192 | container | 08/24, 06:35 AM UTC | 2.19 h | -1.10 h |
| 642122013 | product | 08/24, 12:54 AM UTC | -0.16 h | -87.92 h |
| 314101000 | product | 08/23, 09:52 PM UTC | 1.04 h | -1437.87 h |
| 538009711 | container | 08/23, 09:46 PM UTC | 1.59 h | -149.77 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.