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)
22.67 h
MAE 13.79 h · 274 voyages
Broadcast ETA (RMSE)
49.07 h
crew-declared, 189 voyages (same set)
Our advantage
53.8 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (77 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 |
|---|---|---|---|---|
| 538009786 | container | 07/12, 02:16 AM UTC | -0.26 h | -2.28 h |
| 566583000 | product | 07/11, 11:23 PM UTC | 0.52 h | -8.10 h |
| 355989000 | container | 07/11, 10:40 PM UTC | 0.47 h | -7.18 h |
| 601010710 | product | 07/11, 10:22 PM UTC | 0.02 h | 5729.62 h |
| 566583000 | product | 07/11, 09:19 PM UTC | 5.03 h | -830.33 h |
| 636018071 | container | 07/11, 07:03 PM UTC | -0.83 h | -757.06 h |
| 636026529 | general-cargo | 07/11, 01:51 PM UTC | 0.40 h | -3.36 h |
| 636026529 | general-cargo | 07/11, 12:06 PM UTC | 1.15 h | -8.12 h |
| 265021000 | container | 07/11, 09:28 AM UTC | -0.17 h | -1.48 h |
| 538009050 | chemical | 07/11, 08:59 AM UTC | -0.77 h | -26.99 h |
| 538009050 | chemical | 07/11, 07:27 AM UTC | 0.90 h | -25.46 h |
| 538009050 | product | 07/11, 06:58 AM UTC | 3.41 h | -24.97 h |
| 259075000 | container | 07/11, 02:24 AM UTC | 0.05 h | -824.42 h |
| 563051900 | general-cargo | 07/10, 11:00 PM UTC | -9.08 h | -15.02 h |
| 352006188 | container | 07/10, 09:50 PM UTC | -2.73 h | -17.35 h |
| 311000853 | container | 07/10, 07:44 PM UTC | -0.85 h | -70.74 h |
| 563051900 | general-cargo | 07/10, 11:20 AM UTC | 3.14 h | -3.35 h |
| 563656000 | container | 07/10, 10:19 AM UTC | 1.59 h | -28.32 h |
| 563051900 | container | 07/10, 09:24 AM UTC | 3.31 h | -583.90 h |
| 431651000 | container | 07/10, 06:38 AM UTC | 10.55 h | -19.39 h |
| 563656000 | container | 07/10, 05:42 AM UTC | 3.05 h | -23.72 h |
| 563656000 | container | 07/10, 04:35 AM UTC | 5.00 h | -22.59 h |
| 601010710 | product | 07/10, 04:01 AM UTC | 0.47 h | 5771.97 h |
| 538010808 | general-cargo | 07/09, 11:40 PM UTC | 0.36 h | -606.68 h |
| 601010710 | product | 07/09, 07:14 PM UTC | -0.13 h | 5780.76 h |
| 356479000 | container | 07/09, 05:47 PM UTC | -458.62 h | -464.78 h |
| 538090453 | container | 07/09, 03:39 PM UTC | 1.80 h | -4.15 h |
| 601010710 | product | 07/09, 12:48 PM UTC | -0.69 h | 5787.19 h |
| 636016429 | container | 07/09, 08:40 AM UTC | 0.76 h | -44.68 h |
| 256095000 | container | 07/09, 07:38 AM UTC | 2.47 h | 0.35 h |
| 601010710 | product | 07/09, 06:56 AM UTC | 1.18 h | 5793.05 h |
| 351757000 | container | 07/09, 06:06 AM UTC | 0.53 h | -1.61 h |
| 601010710 | product | 07/09, 06:02 AM UTC | -6.39 h | 5793.96 h |
| 636019921 | product | 07/09, 03:08 AM UTC | -0.81 h | -685.14 h |
| 563329800 | container | 07/08, 11:35 PM UTC | 0.03 h | -13.60 h |
| 477444300 | container | 07/08, 11:24 PM UTC | 1.26 h | -109.41 h |
| 352506000 | container | 07/08, 09:28 PM UTC | -1.77 h | -8.47 h |
| 538004628 | chemical | 07/08, 08:08 PM UTC | 0.39 h | -24.14 h |
| 247487700 | container | 07/08, 07:21 PM UTC | -0.29 h | -34.36 h |
| 601010710 | product | 07/08, 06:28 PM UTC | -0.53 h | — |
| 477444300 | container | 07/08, 05:29 PM UTC | 2.15 h | -103.49 h |
| 353978000 | container | 07/08, 04:41 PM UTC | -0.88 h | -90.97 h |
| 636016824 | container | 07/08, 02:39 PM UTC | 0.16 h | -123.66 h |
| 477793600 | container | 07/08, 10:22 AM UTC | 1.80 h | -51.38 h |
| 304577000 | container | 07/08, 09:58 AM UTC | -0.69 h | -27.47 h |
| 538004628 | chemical | 07/08, 09:55 AM UTC | 1.62 h | -13.93 h |
| 538004628 | chemical | 07/08, 09:05 AM UTC | 4.10 h | -13.09 h |
| 477793600 | container | 07/08, 08:14 AM UTC | 1.30 h | -49.23 h |
| 215522000 | container | 07/08, 06:54 AM UTC | 0.16 h | -0.41 h |
| 219466000 | product | 07/08, 06:31 AM UTC | -8.32 h | -20.03 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.