The Setup
The vessel identity graph in Axiom Overwatch tracks six core relation types across 93,936 temporal edges: how vessels are flagged, who owns them, who manages them operationally, and which ones have moved through shell structures to mask beneficial ownership.
There are 473 shell_hop edges in the graph. Every one of them is marked with an obfuscation flag. None of them have ever closed.
The Chain
The temporal edge model is built to capture when relationships begin and end. OWNED_BY edges—the most fundamental layer of vessel identity—reflect this design: 1,118 of 20,569 ownership edges (5.4%) carry a valid_to timestamp, meaning the system has recorded when a vessel changed hands. SHIP_MANAGER follows a similar logic: 570 of 20,498 edges (2.8%) have been terminated.
That is the pattern where the graph works as intended.
Now look at the layer beneath. COMMERCIAL_MANAGER and ISM_MANAGER together hold 24,900 edges. Both carry a valid_to expiry rate of 0.0%. Not low—zero. A vessel can change its commercial manager or its ISM-certified safety manager, and the old edge stays permanently active.
Shell_hop is the most specific signal: 473 vessels have been identified as having moved through a shell company structure. Each event is individually flagged as obfuscation. Each one points to a unique target entity. The earliest dates to April 5, 2026. The most recent is today. None of the 473 carry a closing date.
The graph records obfuscation entry. It does not record obfuscation exit.
The Implication
The asymmetry has direct consequences for sanctions screening. OWNED_BY changes when beneficial ownership transfers—5.4% of those edges have been closed and updated. That is the layer regulators and compliance teams focus on first.
But shell_hop edges—the ones explicitly marked as obfuscation—are open-ended regardless of what happens downstream. If a vessel passes through a shell company that is later dissolved or restructured, the shell_hop edge pointing to that intermediate entity stays live indefinitely. A screening query run today returns the same 473 flagged vessels it would have returned in April. There is no mechanism in the current graph to distinguish a vessel still operating inside a shell structure from one that exited it three months ago.
COMMERCIAL_MANAGER staleness compounds this. Commercial managers handle cargo booking, freight arrangements, and port relationships. They are often the first point of contact for voyage declarations and cargo manifests. Twelve thousand four hundred fifty-eight edges, zero expiries: the commercial manager layer has never been updated since it was populated. If a vessel moved to a new commercial operator under sanctions pressure, the old relationship still reads as active.
What to Watch
The ratio to track: new shell_hop edges added per week against the ISM/commercial manager expiry rate. If hops continue accumulating while the closure mechanism remains at zero, the obfuscation layer compounds without resolution. At the current velocity—473 hops across roughly 110 days—new entries are being added at roughly 4.3 per day with no offsetting closures.
The secondary signal: OWNED_BY expiry at 5.4% suggests the system is receiving ownership transfer data from a live feed. That same feed should be triggering commercial manager updates when vessels change hands. The fact that it is not suggests the manager update pathway is either not wired to ownership change events, or the data source does not supply manager updates at the same frequency as ownership changes.
Limitations
Shell_hop edges may be intended as permanent historical records rather than live relationship indicators—a vessel that passed through a shell structure at any point in its history is a different kind of risk signal than one whose beneficial ownership simply changed. The 0% expiry rate may reflect design.
What is not ambiguous: COMMERCIAL_MANAGER and ISM_MANAGER expiry rates of 0.0% across 24,900 edges. Those relationships end in the real world. The graph does not capture when.
Temporal edge counts reflect the live graph state as of July 24, 2026. Shell_hop date range: April 5 through July 24, 2026.