Screen Against OFAC SDN / Consolidated Sanctions List
Skill: Convert a party list into OFAC sanctions-screening matches and decisions
Region: United States Category: Sanctions / OFAC Does: Takes a list of parties (customers, vendors, counterparties, payees) and screens them against the OFAC SDN List and the Consolidated Sanctions List, producing scored potential matches with the data needed to make a block/reject/clear decision. Spec: U.S. Treasury OFAC — Specially Designated Nationals (SDN) List + Consolidated Sanctions List (published as SDN/Consolidated XML, CSV, and fixed-width; plus SDN Advanced XML)
OFAC sanctions are strict-liability for U.S. persons — screening is a compliance control, not a filing. This is a screening recipe that ingests the official OFAC data files and flags possible matches; a trained compliance analyst makes the final determination. Always pull the current OFAC files (they change frequently, sometimes daily) and account for the OFAC 50% Rule (entities ≥50% owned by blocked persons are themselves blocked even if not listed).
When this applies
- Onboarding (KYC) and periodic re-screening of customers/vendors; payment/transaction screening; trade and shipping party screening.
- Any U.S. person or U.S.-nexus transaction must avoid dealings with blocked persons/property.
Source data (OFAC files)
| File | Contents |
|---|---|
sdn.xml / sdn.csv |
SDN List primary records (names, programs, types) |
add.csv, alt.csv |
SDN addresses; alternate names (AKA / FKA) |
Consolidated list (cons_*) |
non-SDN sanctions lists (e.g. SSI, FSE, NS-PLC) |
| SDN Advanced XML | richer structured data: features (DOB, passport, vessel IMO), relationships, ID documents |
Each record carries: unique ID, name, type (Individual / Entity / Vessel / Aircraft), sanctions program(s), addresses, aliases, and identity features (DOB, place of birth, nationality, ID numbers, vessel call sign/IMO).
Screening logic
- Normalize both sides: case-fold, strip punctuation/diacritics, expand/standardize common tokens (Mohammed/Muhammad, Ltd/Limited), handle name-order and transliteration variants.
- Match names against primary + ALL aliases (AKA/FKA) — many true hits match only an alias.
- Use fuzzy matching (e.g. Jaro-Winkler / token-set / edit distance) with a tuned threshold; emit a match score. Exact-only screening misses misspellings and transliterations.
- Disambiguate with secondary identifiers when present (DOB, nationality, passport/national ID, address, vessel IMO) to raise/lower confidence and cut false positives.
- Apply the 50% Rule: screen ownership data so entities majority-owned by SDNs are treated as blocked even if not separately listed.
- Decision: above-threshold hits become potential matches for analyst review → block (SDN: block property & reject), reject (some programs), or clear (false positive) with a documented rationale.
Output structure (per screened party)
{
"party_id": "CUST-1001",
"party_name": "Ivan Ivanov",
"screened_against": "SDN+Consolidated 2026-05-31",
"matches": [
{
"list": "SDN",
"ofac_uid": "12345",
"matched_name": "IVANOV, Ivan",
"match_type": "alias(AKA)",
"score": 0.93,
"program": ["UKRAINE-EO13662"],
"entity_type": "Individual",
"secondary_match": { "dob": "partial", "nationality": "match" },
"decision": "potential_match_review",
"analyst_rationale": null
}
],
"overall_status": "needs_review"
}
Worked example
Screening payee "Ivan Ivanov, DOB 1970" against the SDN list:
Normalize → "ivan ivanov"
Candidates: SDN UID 12345 "IVANOV, Ivan" (AKA) program UKRAINE-EO13662, type Individual, DOB 1970-xx-xx
Name score (token-set Jaro-Winkler) = 0.93 ≥ threshold 0.85
Secondary: DOB year matches (1970) → confidence raised
→ POTENTIAL MATCH → route to analyst → if confirmed: BLOCK, reject the payment, file an OFAC blocking report within 10 business days
Validation / control checklist
- Current OFAC SDN + Consolidated files loaded (re-pulled on OFAC's update cadence)
- Names normalized; screened against primary names and all aliases (AKA/FKA)
- Fuzzy matching with a tuned, documented threshold; each hit carries a score
- Secondary identifiers (DOB, nationality, ID numbers, vessel IMO) used to disambiguate
- 50% Rule ownership screening applied
- Potential matches routed to a trained analyst; block/reject/clear decisions documented with rationale
- Confirmed blocks handled per program rules (block property, reject prohibited transactions, file the OFAC report within the required window)
- Screening list version, parameters, and results retained for audit
Last updated: 2026-05-31 — OFAC lists change frequently and sanctions are strict-liability; confirm the current SDN/Consolidated/SDN-Advanced file formats, the 50% Rule guidance, and blocking/reporting obligations against current Treasury OFAC guidance, and have a qualified analyst review matches, before acting.