OSINT Investigation — Test Cases
Vessel profiles for manual testing of the in-app OSINT investigation workflow. Each entry covers a confirmed sanctioned vessel or stateless-MMSI candidate from the live top-50 watchlist (snapshot: 2026-05-03).
How the investigation workflow fits together
indago (data pipeline)
│
├─ Ingests AIS stream (positions, gaps, STS events)
├─ Computes behavioural features per vessel
│ ais_gap_count_30d, sts_candidate_count,
│ chokepoint_exit_gap_count, ais_pre_gap_regularity,
│ imo_type_mismatch, imo_scrapped_flag, …
├─ Scores with anomaly detection + composite model → confidence [0,1]
├─ Cross-references OpenSanctions DB → sanctions_distance
├─ Detects ITU-unallocated MMSIs → stateless_mmsi flag
└─ Publishes candidate_watchlist.parquet → maridb-public R2
│
▼ (push.py copies to arktrace-public)
arktrace (analyst app)
│
├─ Pulls watchlist from arktrace-public R2 → registers in DuckDB-WASM
├─ Renders vessels on map + ranked table (confidence-sorted)
├─ Analyst selects vessel → detail panel opens
│ · Confidence badge, SHAP signal bars, analyst brief (LLM)
│ · "Investigate" button opens the 5-step OSINT panel:
│
│ Step 1 — Triage
│ Local LLM reads vessel data from DuckDB, identifies
│ top 3 evasion indicators (bounded prompt, ≤10 words each)
│
│ Step 2 — OSINT links
│ Pre-built MarineTraffic / VesselFinder / OFAC URLs
│ generated from MMSI and IMO
│
│ Step 3 — Analyst notes
│ Analyst opens links, pastes findings into text area
│
│ Step 4 — Synthesis
│ Local LLM combines vessel data + analyst notes →
│ 2-sentence threat assessment
│
│ Step 5 — Briefing
│ Local LLM drafts 3-sentence DSTA/MPA briefing
│ Analyst edits → Approve → saved to DuckDB (OPFS)
│ "Copy as Markdown" → paste into GitHub Issue (audit trail)
│
└─ Session persists across reloads (DuckDB OPFS-backed)
What indago provides
| indago output | How arktrace uses it |
|---|---|
confidence score |
Ranks vessels in the watchlist; drives triage priority |
sanctions_distance |
Flags vessels with ownership proximity to sanctioned entities |
ownership_chain |
JSON hop list for the Ownership chain panel (materialised at publish time in indago) |
top_signals (SHAP) |
Displayed as signal bars; passed to LLM as investigation context |
ais_gap_count_30d |
Key evasion indicator surfaced in triage step |
sts_candidate_count |
STS event count surfaced in triage step |
| Stateless MMSI flag | Surfaced as high-confidence evasion signal in triage |
candidate_watchlist.parquet |
The entire ranked vessel list the analyst works from |
What the analyst does
- Open arktrace app — watchlist loads from R2 into DuckDB-WASM automatically
- Review top candidates — sorted by confidence, filtered by region
- Select a vessel — click any row to open the detail panel
- Click Investigate — opens the 5-step OSINT panel
- Step 1 — click "Run triage", read the LLM's 3 evasion indicators
- Step 2 — open the OSINT links (MarineTraffic, VesselFinder, OFAC) in new tabs
- Step 3 — paste relevant findings from those pages into the notes field
- Step 4 — click "Synthesise →", review the 2-sentence threat assessment
- Step 5 — click "Draft briefing →", edit if needed, click "Approve"
- Copy as Markdown — paste into a GitHub Issue for team audit trail
The local LLM (Qwen2.5-7B via llama-server) runs on the same machine as the
browser — no data leaves the device. Start it with bash scripts/run_llama.sh
before opening the app.
Test cases
Vessel profiles for manual testing. Use the expected findings to validate LLM output at each step.
Confirmed sanctioned vessels (sanctions_distance = 0)
1. DOBRYNYA — MMSI 273449240
| Field | Value |
|---|---|
| MMSI | 273449240 |
| IMO | — |
| Flag | Russia |
| Type | Unknown |
| Confidence | 0.674 (Rank 1) |
| Sanctions basis | OFAC Jan 2025 — EO 14024 (Russia harmful activities) |
| Sanctioned entity | Rosnefteflot / Rosneft infrastructure fleet |
What arktrace detected:
Russia-flagged vessel with the highest confidence score in the watchlist. High
sts_candidate_count and ais_gap_max_hours signals. No IMO in registry data —
consistent with deliberate identity suppression. Sanctioned as part of the January
2025 OFAC action targeting Rosneft's shadow tanker fleet supporting Sakhalin and
Arctic crude exports.
OSINT links:
| Source | Link |
|---|---|
| MarineTraffic | DOBRYNYA |
| VesselFinder | 273449240 |
| OFAC SDN search | Rosnefteflot |
Expected triage output (Step 1):
- Highest confidence score in watchlist (0.674)
- Russia flag — OFAC Jan 2025 direct designation
- No IMO — identity suppression indicator
Expected synthesis (Step 4): Russia-flagged tanker fleet vessel directly sanctioned under OFAC EO 14024 for supporting Rosneft crude export operations. Confidence driven by AIS evasion behaviour and sanctions network proximity.
2. ANHONA — MMSI 312171000
| Field | Value |
|---|---|
| MMSI | 312171000 |
| IMO | 9354521 |
| Flag | Belize |
| Type | Oil Products Tanker (~46,000 DWT, built 2008) |
| Confidence | 0.521 (Rank 2) |
| Sanctions basis | OFAC Oct 2024 — EO 13846 (Iran oil sector) |
| Sanctioned entity | Harry Victor Ship Management and Operation L.L.C. (UAE) |
What arktrace detected: Belize-flagged tanker transporting Iranian petrochemicals for Triliance Petrochemical Co. (US-sanctioned) via a UAE-based shell company. Classic identity layering: Iranian product → UAE management → Belize flag. The operator's network position would have scored suspicious before the October 2024 OFAC designation.
OSINT links:
| Source | Link |
|---|---|
| MarineTraffic (MMSI) | 312171000 |
| MarineTraffic (IMO) | 9354521 |
| VesselFinder | 312171000 |
| OFAC SDN search | Harry Victor Ship Management |
| OFAC SDN search | ANHONA |
Expected triage output (Step 1):
- Belize flag — open registry used for Iranian crude identity layering
- IMO 9354521 — operator designated OFAC Oct 2024
- Tanker type consistent with petrochemical transport
Expected synthesis (Step 4): ANHONA is a Belize-flagged tanker operated by a UAE shell company sanctioned for facilitating Iranian petrochemical exports. Evasion pattern: Iranian product obscured through UAE management layer before delivery to buyers.
3. SCF ENTERPRISE — MMSI 273312060
| Field | Value |
|---|---|
| MMSI | 273312060 |
| IMO | — |
| Flag | Russia |
| Type | Unknown |
| Confidence | 0.516 (Rank 3) |
| Sanctions basis | OFAC Jan 2025 — EO 14024 (Russia harmful activities) |
| Sanctioned entity | Sovcomflot / Sakhalin-2 LNG project |
What arktrace detected: Russia-flagged vessel designated in the same January 2025 OFAC action as DOBRYNYA, targeting Sovcomflot — Russia's state shipping company managing the Sakhalin-2 LNG export terminal. No IMO registered. AIS gap behaviour consistent with dark voyages on the Russia–Asia LNG route.
OSINT links:
| Source | Link |
|---|---|
| MarineTraffic (MMSI) | 273312060 |
| VesselFinder | 273312060 |
| OFAC SDN search | SCF Enterprise |
| OFAC SDN search | Sovcomflot |
Expected triage output (Step 1):
- Russia flag — Sovcomflot / Sakhalin-2 OFAC Jan 2025
- No IMO — identity suppression, same pattern as DOBRYNYA
- AIS gap behaviour consistent with dark transit
Expected synthesis (Step 4): SCF ENTERPRISE is a Sovcomflot vessel sanctioned for supporting Sakhalin-2 LNG exports in violation of EO 14024. Pattern of AIS gaps suggests deliberate dark voyages on Russia-to-Asia routes.
4. PIONEER 92 — MMSI 457133000
| Field | Value |
|---|---|
| MMSI | 457133000 |
| IMO | 9340934 |
| Flag | Mongolia |
| Type | Tug |
| Confidence | 0.495 (Rank 4) |
| Sanctions basis | OFAC — EO 13902 (Iran petroleum sector) |
| Sanctioned entity | Logos Marine Pte. Ltd., Singapore |
What arktrace detected: Mongolia-flagged tug whose operator (Logos Marine, Singapore) is sanctioned for supporting at least 7 Iran-affiliated tankers at Singapore's Eastern Outer Port Limit (EOPL) via ship-to-ship (STS) transfers. The STS operations obscured Iranian crude provenance before delivery to Chinese buyers. Directly matches the pattern described in the Al Jazeera April 30 2026 investigation into Singapore-area STS networks.
OSINT links:
| Source | Link |
|---|---|
| MarineTraffic (MMSI) | 457133000 |
| MarineTraffic (IMO) | 9340934 |
| VesselFinder | 457133000 |
| OFAC SDN search | Logos Marine |
| OFAC SDN search | PIONEER 92 |
Expected triage output (Step 1):
- Mongolia flag — open registry used for Iranian STS support vessels
- Operator Logos Marine designated OFAC EO 13902
- Tug type — consistent with STS coordination role at EOPL
Expected synthesis (Step 4): PIONEER 92 is a Mongolia-flagged tug operated by a Singapore company sanctioned for coordinating Iranian crude STS transfers at Singapore EOPL. Direct link to active Iran crude evasion network identified in recent OSINT reporting.
Stateless MMSI candidates (unallocated MID)
These vessels broadcast MMSI numbers with ITU-unallocated MID prefixes. No legitimate vessel can hold these identifiers — they are a documented shadow fleet evasion technique. No OSINT lookup will return a vessel record; the signal itself is the finding.
| MMSI | MID | Confidence | MarineTraffic | VesselFinder |
|---|---|---|---|---|
| 400789012 | 400 | 0.606 | link | link |
| 400123456 | 400 | 0.599 | link | link |
| 400345678 | 400 | 0.591 | link | link |
Expected result: MarineTraffic and VesselFinder will return no vessel record — this confirms the MMSI is unallocated. The absence of a record is itself evidence of evasion.
Expected synthesis for any stateless MMSI: This vessel broadcasts an ITU-unallocated MMSI (MID 400), a tactic used by shadow fleet operators to appear invisible to standard AIS tracking platforms. No registry record exists by design. Recommend cross-referencing against SAR imagery for the last known position.
Additional confirmed vessel
MARIE DE LOURDES I — MMSI 248000368
| Field | Value |
|---|---|
| MMSI | 248000368 |
| IMO | — |
| Flag | Malta |
| Confidence | ~0.38 (Rank 12) |
| Sanctions basis | OFAC — EO 13726 (Libya illicit crude) |
Note: Below the default confidence filter (0.4). Set minimum confidence to 0.3 in the app to see this vessel in the watchlist.
OSINT links:
| Source | Link |
|---|---|
| MarineTraffic (MMSI) | 248000368 |
| VesselFinder | 248000368 |
| OFAC SDN search | MARIE DE LOURDES |
Source investigation
Al Jazeera — 2026-04-30
Tracking the shadow fleet: How Iran evaded the US naval blockade in Hormuz
Investigative report published 30 April 2026. Key findings that triggered this watchlist cross-reference:
- Named vessels Flora, Genoa, Skywave, and Pola as Iran-linked tankers active in the Strait of Hormuz, deliberately disabling or jamming AIS signals to hide identities and destinations
- Documented widespread AIS manipulation and use of fake flags (landlocked nation registries including Botswana, San Marino, Comoros) to obscure ownership
- Operating firms primarily based in Iran (15.7%), China (13%), Greece (11%), UAE (9.7%)
- At least 26 ships from Iran's shadow fleet circumvented the US naval blockade since it was imposed
Cross-reference result: No direct name match found for Flora/Genoa/Skywave/Pola in the arktrace watchlist — shadow fleet vessels change names frequently. MMSI/IMO cross-reference is required. The vessels in this test case document (PIONEER 92, ANHONA, DOBRYNYA, SCF ENTERPRISE) were identified via sanctions_distance=0 scoring, not name search.
References
- Local LLM setup — start llama-server before running investigations
- LLM grounding policy — what the LLM may and may not claim
- indago OSINT workflow — automated workflow (Case B)