ETA accuracy benchmark · 🇲🇦 Tanger Med
How Port Flow's predicted ETA compares to each vessel's own broadcast ETA at Tanger Med, 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)
17.84 h
MAE 6.26 h · 811 voyages
Broadcast ETA (RMSE)
54.30 h
crew-declared, 369 voyages (same set)
Our advantage
67.1 %
lower error than the broadcast ETA
Broadcast ETAs more than 7 days from the actual arrival are excluded as AIS sentinel / placeholder values (354 excluded). Both figures are computed on the same remaining voyage set — apples to apples.
Closed voyages
error = predicted/broadcast minus actual arrival (hours)| 248096000 | product | 10/12, 05:26 AM UTC | -0.22 h | -517.45 h |
| 636093333 | container | 10/12, 04:04 AM UTC | -1.62 h | -297.08 h |
| 538007617 | container | 10/12, 02:51 AM UTC | -1.92 h | -988.86 h |
| 219018897 | chemical | 10/12, 02:03 AM UTC | -187.01 h | -153.06 h |
| 219767000 | container | 10/12, 01:04 AM UTC | -5.84 h | -11.07 h |
| 249123000 | container | 10/12, 01:04 AM UTC | -1.15 h | -651.07 h |
| 229340000 | container | 10/12, 12:48 AM UTC | -0.41 h | 2902.69 h |
| 256370000 | product | 10/11, 11:46 PM UTC | 3.91 h | -2543.80 h |
| 373026000 | product | 10/11, 11:43 PM UTC | -3.87 h | 166.28 h |
| 241298000 | container | 10/11, 09:59 PM UTC | -1.54 h | -755.99 h |
| 224473460 | product | 10/11, 09:37 PM UTC | 0.43 h | — |
| 212777000 | container | 10/11, 07:23 PM UTC | -0.03 h | -496.40 h |
| 253000159 | product | 10/11, 06:48 PM UTC | 2.29 h | -280.81 h |
| 212633000 | product | 10/11, 05:11 PM UTC | 2.16 h | -20.69 h |
| 563044300 | container | 10/11, 04:53 PM UTC | -2.73 h | -1127.89 h |
| 255917253 | product | 10/11, 04:43 PM UTC | 5.45 h | -1001.72 h |
| 210707000 | container | 10/11, 03:11 PM UTC | -0.64 h | -33.19 h |
| 636021776 | container | 10/11, 02:49 PM UTC | 0.03 h | -452.83 h |
| 314001074 | container | 10/11, 02:41 PM UTC | 4.28 h | 15.30 h |
| 215402000 | product | 10/11, 02:35 PM UTC | -90.83 h | -136.59 h |
| 224473460 | product | 10/11, 02:02 PM UTC | 1.05 h | -235.04 h |
| 373026000 | product | 10/11, 01:16 PM UTC | -37.50 h | -38.53 h |
| 636023006 | product | 10/11, 12:02 PM UTC | 1.09 h | -1984.05 h |
| 636014059 | container | 10/11, 11:11 AM UTC | 3.32 h | -318.19 h |
| 538010212 | product | 10/11, 11:11 AM UTC | 2.18 h | -2716.18 h |
| 219506000 | container | 10/11, 09:56 AM UTC | 3.93 h | -1169.95 h |
| 636018094 | container | 10/11, 09:05 AM UTC | -0.49 h | -296.60 h |
| 256453000 | product | 10/11, 08:21 AM UTC | 5.00 h | -2234.36 h |
| 219515000 | container | 10/11, 08:08 AM UTC | -0.99 h | -412.14 h |
| 229933000 | product | 10/11, 07:29 AM UTC | 6.12 h | -18.00 h |
| 250002434 | container | 10/11, 06:17 AM UTC | 6.88 h | -11.29 h |
| 229933000 | product | 10/11, 06:14 AM UTC | 7.13 h | -16.74 h |
| 255805657 | general-cargo | 10/11, 04:25 AM UTC | -0.22 h | -2353.43 h |
| 212633000 | product | 10/11, 03:55 AM UTC | -0.08 h | -28.93 h |
| 636025912 | product | 10/11, 03:24 AM UTC | 3.17 h | -2427.40 h |
| 311000922 | container | 10/11, 03:23 AM UTC | 0.15 h | -2.39 h |
| 256485000 | container | 10/11, 02:05 AM UTC | -0.28 h | -1936.10 h |
| 209314000 | container | 10/11, 01:21 AM UTC | 4.94 h | -7.36 h |
| 255805883 | container | 10/10, 11:55 PM UTC | -0.99 h | -443.92 h |
| 636022873 | container | 10/10, 11:01 PM UTC | -0.57 h | -1.53 h |
| 210707000 | general-cargo | 10/10, 10:52 PM UTC | -0.44 h | -10.88 h |
| 563022600 | product | 10/10, 09:59 PM UTC | 5.71 h | -11.99 h |
| 229365000 | product | 10/10, 09:45 PM UTC | -0.19 h | -173.75 h |
| 209825000 | product | 10/10, 09:18 PM UTC | -1.40 h | -41.30 h |
| 577414000 | container | 10/10, 09:13 PM UTC | 6.11 h | -12.22 h |
| 636018701 | container | 10/10, 08:17 PM UTC | -1.54 h | -2.29 h |
| 563220200 | container | 10/10, 07:39 PM UTC | -1.11 h | -1.15 h |
| 577414000 | container | 10/10, 07:37 PM UTC | 7.69 h | -541.63 h |
| 636026315 | product | 10/10, 05:54 PM UTC | 0.16 h | -10.91 h |
| 236590000 | product | 10/10, 05:53 PM UTC | 0.73 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.