ETA accuracy benchmark · 🇸🇬 Singapore
How Port Flow's predicted ETA compares to each vessel's own broadcast ETA at Singapore, 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)
49.76 h
MAE 14.54 h · 979 voyages
Broadcast ETA (RMSE)
65.12 h
crew-declared, 337 voyages (same set)
Our advantage
23.6 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (431 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 255799000 | container | 10/12, 04:48 AM UTC | -25.05 h | -3292.81 h |
| 563034300 | product | 10/12, 04:08 AM UTC | -8.86 h | -74.13 h |
| 563021100 | product | 10/12, 03:39 AM UTC | 6.53 h | 7.34 h |
| 563882000 | product | 10/12, 03:04 AM UTC | -18.67 h | -240.07 h |
| 636015007 | product | 10/12, 02:55 AM UTC | 5.50 h | -2.91 h |
| 538012478 | product | 10/12, 02:47 AM UTC | 8.52 h | -2461.78 h |
| 563021100 | product | 10/12, 02:45 AM UTC | 4.84 h | -45.75 h |
| 525119038 | product | 10/12, 02:33 AM UTC | 4.96 h | 7.69 h |
| 563096800 | product | 10/12, 02:08 AM UTC | 4.59 h | -1.90 h |
| 563220900 | container | 10/12, 02:00 AM UTC | 6.56 h | -2411.00 h |
| 249035000 | container | 10/12, 01:59 AM UTC | 7.10 h | -2463.99 h |
| 565102000 | product | 10/12, 01:45 AM UTC | 8.71 h | — |
| 564688000 | product | 10/12, 01:41 AM UTC | 4.42 h | -5.69 h |
| 566373000 | chemical | 10/12, 01:38 AM UTC | 5.64 h | — |
| 538010579 | product | 10/12, 01:36 AM UTC | 4.63 h | -2458.60 h |
| 566530000 | product | 10/12, 01:16 AM UTC | -7.51 h | -966.28 h |
| 563133100 | container | 10/12, 01:07 AM UTC | 2.56 h | -455.12 h |
| 565173000 | product | 10/12, 12:52 AM UTC | 3.68 h | -1416.88 h |
| 566540000 | product | 10/12, 12:50 AM UTC | -37.81 h | -33.74 h |
| 538012001 | container | 10/12, 12:28 AM UTC | 5.50 h | -2273.47 h |
| 563038700 | product | 10/12, 12:18 AM UTC | 0.07 h | -0.72 h |
| 563086610 | product | 10/12, 12:15 AM UTC | 0.48 h | -11.31 h |
| 566538000 | chemical | 10/12, 12:10 AM UTC | -1.44 h | -6.51 h |
| 636013530 | container | 10/11, 11:59 PM UTC | 8.49 h | -261.99 h |
| 563312700 | product | 10/11, 11:57 PM UTC | 7.57 h | -215.96 h |
| 566799000 | product | 10/11, 11:50 PM UTC | -23.02 h | -137.01 h |
| 563042900 | product | 10/11, 11:21 PM UTC | 3.82 h | — |
| 563291200 | container | 10/11, 11:19 PM UTC | -40.35 h | -654.33 h |
| 563132900 | product | 10/11, 11:16 PM UTC | 4.00 h | — |
| 566601000 | product | 10/11, 11:14 PM UTC | -1.31 h | -177.23 h |
| 564616000 | product | 10/11, 11:13 PM UTC | 5.96 h | -140.72 h |
| 247437600 | container | 10/11, 10:57 PM UTC | 8.89 h | -631.97 h |
| 219039000 | container | 10/11, 10:42 PM UTC | 15.42 h | — |
| 352002539 | general-cargo | 10/11, 10:40 PM UTC | 3.59 h | — |
| 431578000 | container | 10/11, 10:23 PM UTC | 4.72 h | -2561.39 h |
| 563056400 | product | 10/11, 10:23 PM UTC | -4.05 h | -167.38 h |
| 563212500 | chemical | 10/11, 10:07 PM UTC | 4.72 h | -65.13 h |
| 564167000 | chemical | 10/11, 09:53 PM UTC | 4.63 h | 6859.10 h |
| 219039000 | container | 10/11, 09:51 PM UTC | 4.98 h | -2082.86 h |
| 563212500 | product | 10/11, 09:32 PM UTC | 4.98 h | -1844.54 h |
| 563085320 | chemical | 10/11, 09:24 PM UTC | -1.75 h | -53.41 h |
| 566116000 | product | 10/11, 09:24 PM UTC | -3.59 h | -428.41 h |
| 256267000 | container | 10/11, 09:21 PM UTC | 6.17 h | -308.28 h |
| 636018769 | container | 10/11, 09:12 PM UTC | 5.44 h | — |
| 636018769 | container | 10/11, 08:21 PM UTC | 2.28 h | -34.85 h |
| 563056100 | product | 10/11, 08:06 PM UTC | 6.59 h | -7.12 h |
| 538011015 | general-cargo | 10/11, 08:02 PM UTC | 5.69 h | -2.04 h |
| 564938000 | container | 10/11, 07:59 PM UTC | 2.78 h | -765.49 h |
| 538003172 | product | 10/11, 07:40 PM UTC | -2.18 h | -2830.68 h |
| 636022117 | general-cargo | 10/11, 07:39 PM UTC | 2.84 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.