ETA accuracy benchmark · 🇳🇱 Rotterdam
How Port Flow's predicted ETA compares to each vessel's own broadcast ETA at Rotterdam, 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)
5.85 h
MAE 5.24 h · 987 voyages
Broadcast ETA (RMSE)
59.67 h
crew-declared, 340 voyages (same set)
Our advantage
90.2 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (265 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 244740135 | container | 08/26, 11:59 PM UTC | 1.35 h | — |
| 244372228 | product | 08/26, 11:56 PM UTC | 2.65 h | -29.13 h |
| 244740135 | container | 08/26, 11:52 PM UTC | 3.96 h | -846.50 h |
| 205564190 | container | 08/26, 11:52 PM UTC | 3.82 h | -0.53 h |
| 244780850 | container | 08/26, 11:52 PM UTC | 4.16 h | — |
| 244620937 | container | 08/26, 11:48 PM UTC | 0.64 h | — |
| 244810513 | container | 08/26, 11:45 PM UTC | 1.05 h | -73.30 h |
| 205568590 | product | 08/26, 11:44 PM UTC | 0.35 h | -122.17 h |
| 244620993 | container | 08/26, 11:40 PM UTC | -0.97 h | -75.68 h |
| 244710736 | product | 08/26, 11:40 PM UTC | 6.33 h | — |
| 244710207 | product | 08/26, 11:39 PM UTC | 0.05 h | 8.00 h |
| 244046289 | product | 08/26, 11:35 PM UTC | 9.90 h | -29.64 h |
| 244733530 | container | 08/26, 11:32 PM UTC | 9.95 h | — |
| 244660351 | container | 08/26, 11:31 PM UTC | -3.89 h | -23.51 h |
| 244012683 | product | 08/26, 11:25 PM UTC | 2.12 h | -7.74 h |
| 205564190 | container | 08/26, 11:21 PM UTC | 3.97 h | -609.29 h |
| 244074275 | container | 08/26, 11:20 PM UTC | 1.25 h | — |
| 244850360 | container | 08/26, 11:19 PM UTC | -0.40 h | 4917.68 h |
| 244650588 | container | 08/26, 11:16 PM UTC | 1.39 h | — |
| 244070991 | container | 08/26, 11:16 PM UTC | -0.37 h | — |
| 304030000 | container | 08/26, 11:14 PM UTC | 9.25 h | -38.25 h |
| 244650739 | container | 08/26, 11:12 PM UTC | 9.43 h | -1103.21 h |
| 244070846 | container | 08/26, 11:12 PM UTC | -0.53 h | -671.94 h |
| 244719540 | product | 08/26, 11:10 PM UTC | 6.76 h | -195.06 h |
| 218085000 | product | 08/26, 11:09 PM UTC | 0.23 h | -1950.92 h |
| 244620933 | dry-bulk | 08/26, 11:09 PM UTC | 0.31 h | -156.57 h |
| 244716806 | product | 08/26, 11:06 PM UTC | 1.60 h | -11.33 h |
| 244046976 | container | 08/26, 11:06 PM UTC | 10.60 h | 1.28 h |
| 244830333 | product | 08/26, 11:02 PM UTC | 0.33 h | -49.49 h |
| 244620963 | container | 08/26, 11:01 PM UTC | -0.82 h | 21.64 h |
| 244670595 | container | 08/26, 10:58 PM UTC | -2.28 h | — |
| 235095972 | product | 08/26, 10:55 PM UTC | 8.32 h | -24.93 h |
| 244710707 | container | 08/26, 10:53 PM UTC | 1.45 h | — |
| 205212890 | product | 08/26, 10:52 PM UTC | 2.49 h | 4998.56 h |
| 257836000 | container | 08/26, 10:51 PM UTC | -0.92 h | -30.85 h |
| 244620196 | product | 08/26, 10:48 PM UTC | -1.09 h | -34.16 h |
| 211511740 | product | 08/26, 10:46 PM UTC | 0.40 h | — |
| 244059044 | container | 08/26, 10:44 PM UTC | -0.20 h | -48.80 h |
| 275561000 | container | 08/26, 10:43 PM UTC | 3.86 h | -1048.23 h |
| 244000788 | product | 08/26, 10:41 PM UTC | 4.15 h | 12.05 h |
| 244670043 | container | 08/26, 10:41 PM UTC | 0.11 h | -34.40 h |
| 244710707 | container | 08/26, 10:40 PM UTC | -0.11 h | — |
| 257836000 | container | 08/26, 10:39 PM UTC | -0.52 h | -30.66 h |
| 205393990 | container | 08/26, 10:32 PM UTC | -0.24 h | — |
| 205579090 | container | 08/26, 10:30 PM UTC | 0.12 h | — |
| 205529990 | container | 08/26, 10:30 PM UTC | -0.73 h | — |
| 211169410 | container | 08/26, 10:29 PM UTC | 3.51 h | 10.95 h |
| 244046976 | container | 08/26, 10:26 PM UTC | 5.21 h | 1.94 h |
| 205452490 | container | 08/26, 10:24 PM UTC | 4.48 h | -100.40 h |
| 244670745 | product | 08/26, 10:19 PM UTC | 0.15 h | 30.78 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.