The Setup
In the last 30 days, 64,788 vessels recorded a dark event — a gap in AIS transmission long enough to trigger monitoring. Of those, 6,792 qualified as high-risk. None have been adjudicated.
Before adjudication, there is classification: assigning a subtype to explain why a gap happened. Only 1,949 of the 64,788 events — 3.0% — received a subtype. That 3% operates on fundamentally different risk geometry than the other 97%.
The Chain
The unclassified majority averaged 13.4 hours per gap. The subtyped minority averaged dramatically longer:
| Subtype | Events | Avg Gap | High-Risk | Avg Risk Score | |---|---|---|---|---| | (none) | 62,841 | 13.4h | 6,555 | 17.0 | | impossible_kinematics | 1,789 | 108.2h | 204 | 14.8 | | nav_status | 145 | 92.3h | 31 | 19.1 | | teleport | 13 | 96.0h | 3 | 18.4 |
The multiplier is stark: impossible_kinematics gaps run 8.1× longer than unclassified events. Nav_status runs 6.9× longer. Teleport runs 7.2× longer.
The nav_status class is worth isolating. When a vessel broadcasts a restricted navigation condition — "not under command," "restricted in ability to maneuver," "constrained by draft" — and then goes dark, the subsequent gap averages 92.3 hours. The vessel announced a condition that logically constrains movement. Then the signal stopped for nearly four days. Nav_status also carries the highest average risk score of any class: 19.1, compared to the fleet-wide average of 16.9.
The Implication
The 7-8× gap multiplier is not a sampling artifact. It reflects that classification is capturing structurally different events — events where the dark period has mechanistic context, not just detection absence. A 13.4-hour unclassified gap is consistent with equipment failure, port shadowing, or antenna obstruction. A 92-hour nav_status gap is not.
The coverage problem runs in both directions. The 6,792 high-risk events in the unclassified pool have no mechanism label. Some fraction are almost certainly impossible_kinematics or nav_status events that the classification pipeline never reached. At 3% coverage, the subtype taxonomy is working correctly on a small slice of the detectable surface.
The zero-adjudication finding compounds this: 100% of the 64,788 events have null adjudication_status. Every high-risk flag, every kinematic violation, every nav_status gap sits in the open queue untouched.
What to Watch
- Subtype-filtered screening cuts gap duration noise considerably. Restricting to impossible_kinematics and nav_status at the 30-day window yields 1,934 events with avg gap 107.7h — a tractable queue versus the full 64k.
- Nav_status is the highest-risk class per event. The 145 events in 30 days is a workable number for manual review. The question is whether those 145 are more likely to include operational evasion versus genuine maneuverability constraints.
Limitations
Subtype classification is applied by the detection pipeline, not analyst review. Null subtype reflects either genuine ambiguity or pipeline gaps before classification executes. Nav_status counts are small and directional. Risk scores are model outputs, not adjudicated findings. The 30-day window bounds this sample.
Overwatch tracks AIS gaps, kinematic anomalies, and vessel behavior across global feeds. Gap durations and risk scores are system-generated estimates.