Phase 6.1 (D)
Same Hull, New Name
The IMO number is permanently and uniquely assigned to one hull for the entire lifetime of the ship. Every distinct name we observe attached to that IMO is a textbook re-flagging / identity-laundering signal.
INPUTS
OpenSanctions FtM `aliases[]` and `previousName[]` aggregated per IMO from the daily `entities.ftm.json` ingest.
METHOD
Canonicalise each candidate name (case-fold, strip "(formerly X)" suffixes, collapse whitespace) and count the distinct set per hull.
THRESHOLDS & CONTRIBUTION
| Rule | Verdict | Risk points |
|---|---|---|
| 4 ≤ names < 8 | SUSPECT | +10 |
| names ≥ 8 | HEAVY | +15 |
EDGE CASES & LIMITATIONS
Localized transliterations of the same name are NOT counted twice (e.g. "ARTSAKH" vs "АРЦАХ" canonicalise to the same key). Operator companies (e.g. "MSC ANTONIA" → "MAERSK ANTONIA" same hull, two operators) DO trigger because the IMO is what we anchor on, not the operator.
OUTPUT
`distinct_names`, `severity`, `risk_points`
ENDPOINT
GET /api/maritime/vessel/identity
SOURCE FILE
services/vessel_identity_service.py