Secondary-Sanctions Triage Report (50% Rule Proxy)
Date: 2026-04-20 Method: Graph-based adjacency analysis. Organizations with strong litigation or ownership linkage to already-sanctioned entities are flagged as candidates for OFAC 50% Rule investigation (or equivalent EU/UK/UA rules). This does not apply the Rule itself — it provides the analyst triage set.
Scope universe
- Primary sanctioned: 5,655 Organizations flagged
sanctioned=true(US OFAC SDN) - Multi-list sanctioned: 4,363 Organizations linked to EU/UK/UA SanctionedEntity nodes via
ON_SANCTIONS_LISTedges
Tiered triage results
| Tier | Criterion | Candidates |
|---|---|---|
| A | Shared UBOPerson with any sanctioned org | 0 (graph gap — UBO data is SDN-only) |
| B | ≥5 sanctioned LITIGATED_WITH neighbors, ≥10 cases each | 3 |
| B2 | ≥3 sanctioned LITIGATED_WITH neighbors, ≥3 cases each | 246 |
| C | ≥3 sanctioned CONTRACTED_WITH counterparties | 0 (data gap — direct procurement edges don't cross the SDN boundary) |
| Total | 249 |
Tier A gap (important)
Our SHIFT_EVENT UBO layer only covers sanctioned organizations — UBOPersons are linked to SDN orgs but not to non-SDN ones. This blocks the cleanest 50%-Rule proxy (shared beneficial owner detection).
Fix: EGRUL bulk enrichment for non-SDN Russian entities would unlock Tier A. Without it, we can't surface orgs owned by the same person as an SDN but not currently flagged. Roughly 4-5M RU legal entities have EGRUL records; full ingestion would take ~1-2 weeks.
Tier B — highest-confidence candidates
Three entities meet the strict criterion:
| INN | Entity | SDN links | Notes |
|---|---|---|---|
| 7719555477 | ФГУП "Охрана" Росгвардии | 10 | Prior designation memo exists (okhrana_rosgvardiya_memo.md); triage confirms the case |
| 7202128616 | Северо-Уральское межрегиональное управление федеральной... | 7 | Federal agency |
| 7743425292 | Межрегиональное территориальное управление федерального агентства по управлению госимуществом | 6 | Federal property administrator |
Tier B2 — high-value triage (top 20)
| INN | Entity | Links | Priority signal |
|---|---|---|---|
| 7705031674 | Department of City Property, Moscow | 20 | Regional-property administration, massive SDN entanglement |
| 7704270863 | Federal Bailiff Service (main admin) | 16 | Federal debt-enforcement agency |
| 7450001007 | ПАО "Челябинский Металлургический Комбинат" (ChMK) | 14 | Defense-grade steel producer |
| 7701984274 | АО "Мосводоканал" | 13 | Moscow water utility |
| 7703363868 | Pension Fund Branch, Moscow | 12 | |
| 7709263972 | Federal IP Protection Agency | 12 | |
| 7740000090 | ПАО "Авиахолдинг Сухой" | 12 | Sukhoi Aviation Holding (reconfirms earlier scorecard finding) |
| 7726639745 | Department of City Property, Moscow (sub-office) | 11 | |
| 7701090559 | Moscow Capital Repair Fund | 10 | |
| 6658065103 | Sverdlovsk Federal Antimonopoly Service | 10 | |
| 7204189710 | ООО "Компания Рифей" | 10 | |
| 2460069527 | ПАО "Россети Сибирь" | 9 | Siberian electrical grid |
| 7720518494 | АО "Мосэнергосбыт" | 9 | Moscow electricity retail |
| 5612042824 | ПАО "Т Плюс" | 8 | Major Russian utility group |
| 4207009857 | Kuzbass Regional Fund | 8 | |
| 7730544207 | Moscow State Construction Oversight Committee | 8 | |
| 4205121451 | Department of Forestry, Kuzbass | 8 | |
| 7725216070 | Department of City Property, Moscow (sub-office) | 9 | |
| 7456021049 | ООО "Спецметалл" | 9 |
Policy interpretation
-
Federal administrative entities dominate the top tier — Moscow Property, Bailiff Service, Pension Fund, FAS regional branches. These are not 50%-Rule candidates in the traditional sense (they're sovereign organs), but their heavy SDN litigation footprint is policy-relevant evidence for CAATSA §231 (secondary-sanctions on institutions facilitating SDN transactions).
-
Industrial/utility primary targets confirmed: ChMK (steel), Мосводоканал, Россети Сибирь, Мосэнергосбыт, Т Плюс, Сухой Aviation — these are individual-designation candidates, not just 50%-Rule scope. Several already surfaced in our prior briefs.
-
"Rifey" (7204189710) and "Спецметалл" (7456021049) are mid-tier commercial LLCs — these are the true 50%-Rule candidates (small commercial actors heavily entangled with SDN, not sovereign administrative bodies).
How to query
Each flagged Organization has:
secondary_sanction_candidate = truesecondary_tier∈ {'B', 'B2'} (tier assignment)secondary_via_inns— array of up to 20 sanctioned-org INNs linked- Outgoing
:SECONDARY_SCOPEedges withreason∈ {'heavy_litigation', 'moderate_litigation'}
Example:
MATCH (o:Organization {secondary_sanction_candidate: true})-[r:SECONDARY_SCOPE]->(s:Organization)
WHERE o.secondary_tier = 'B'
RETURN o.inn, o.name, collect(s.name) AS via
Limitations
- No true 50%-Rule arithmetic. We don't have share-percentage ownership at scale. Tiers B/B2 are adjacency proxies, not share-weighted ownership computations.
- Tier A blocked by data gap. Without non-SDN UBO data, cross-boundary shared-controller analysis isn't possible.
- Tier C blocked. The direct procurement edges (
CONTRACTED_WITH) don't cross the SDN boundary in our current graph — sanctioned orgs don't have CONTRACTED_WITH edges to non-sanctioned orgs in the data we have. A different query overAWARDED_CONTRACT→Contract→Contract.customer_inn/supplier_innmight surface supply-chain-level candidates. Worth a follow-on tile. - Recomputed on every pipeline run — analysts working with tier flags should pin their findings to a specific timestamp.
Artifacts
- Module:
pipeline/neo4j_ingest/propagate_sanctions.py(wired intorun_all.pyMODULE_ORDER, runs afterubo_shifts) - Graph properties:
o.secondary_sanction_candidate,o.secondary_tier,o.secondary_via_inns - Graph edges:
Organization-[:SECONDARY_SCOPE {reason}]->Organization - Related:
bridge_entities_discovery.md,federal_ministries_sdn_entanglement.md,okhrana_rosgvardiya_memo.md
Next steps to improve coverage
- EGRUL bulk UBO ingestion — biggest unlock, fills the Tier A data gap
- Rebuild procurement graph to include
customer_inn/supplier_innINNs as direct Organization-to-Organization edges (currently via Contract intermediary which breaks the query pattern) - Share-percentage data from rusprofile/EGRUL for orgs with SDN ownership — enables true 50%-Rule arithmetic on a subset of targets
- Periodic re-run via cron — captures new OFAC/EU designations automatically as they cascade into graph properties