Beyond Insured Name: Multi-Entity Sanctions Screening for OFAC, EU, and UK Compliance
How InsightUW screens three entity types — insured name, broker name, and key principals — against multiple sanctions lists using fuzzy matching with a configurable 70% threshold, and why single-entity screening leaves carriers exposed.
The Problem
Most underwriting platforms perform a single sanctions check: they compare the insured name against the OFAC SDN list and call it done. This approach has three critical gaps.
First, it misses broker-side risk. A broker entity or individual operating under sanctions can expose the carrier to regulatory penalties even if the insured is clean. Second, it ignores the humans behind the entity. A company may be newly formed and not yet listed, but its directors or officers may be sanctioned individuals using the company as a front. Third, exact-match-only screening misses transliterated names, spelling variations, and deliberate obfuscation — "Al-Rashid Holdings" versus "Al Rasheed Holdings Ltd" would pass an exact match but represent the same sanctioned entity.
Regulators expect carriers to demonstrate a risk-based approach to sanctions compliance. A single exact-match check against one list does not meet that standard.
The InsightUW Approach
InsightUW implements three sanctions rules — SANC-001, SANC-002, and SANC-003 — that together screen every relevant entity on a submission against all major sanctions lists. Each rule uses Python's SequenceMatcher for fuzzy matching with a configurable similarity threshold (default: 70%).
The Three Sanctions Rules
| Rule | Entity Screened | Why It Matters |
|---|---|---|
| SANC-001 | Insured name | The primary entity — regulatory baseline |
| SANC-002 | Broker name | Broker under sanctions = carrier liability |
| SANC-003 | Key principals / officers | Individuals behind the entity — catches shell companies |
Each rule executes independently. A submission can pass SANC-001 (clean insured) but fail SANC-003 (sanctioned director).
Fuzzy Matching with SequenceMatcher
InsightUW uses Python's difflib.SequenceMatcher to compute similarity ratios between the submission entity name and every entry in the sanctions lists. The algorithm finds the longest contiguous matching subsequence and computes a ratio from 0.0 to 1.0.
| Submission Name | Sanctions List Entry | Similarity | Result |
|---|---|---|---|
| Solaris Energy Holdings | Solaris Energy Holdings Ltd | 92% | HIT |
| Al-Rashid Trading Co | Al Rasheed Trading Company | 78% | HIT |
| Pacific Rim Exports | Pacific Rim Export LLC | 85% | HIT |
| Greenfield Manufacturing | Greenway Mfg Corp | 52% | CLEAR |
| James Whitfield | James R. Whitfield | 88% | HIT |
| Maria Petrov | Maria Petrova | 83% | HIT |
The default threshold of 70% balances sensitivity against false positives. Carriers with higher risk tolerance can raise it to 80%; those in highly regulated environments can lower it to 60%.
Configurable Threshold
The 70% default is adjustable per rule from the Platform Features UI:
| Setting | Conservative | Default | Permissive |
|---|---|---|---|
| Threshold | 60% | 70% | 80% |
| False positive rate | Higher | Moderate | Lower |
| Miss rate | Very low | Low | Moderate |
| Use case | High-risk LOBs, reinsurance | General commercial | High-volume personal lines |
A compliance officer changes the threshold, and all future clearance runs use the new value immediately. The change is logged with the officer's identity and timestamp.
Sanctions List Sources
InsightUW screens against three authoritative sanctions lists:
| List | Source | Entries | Update Frequency |
|---|---|---|---|
| OFAC SDN | U.S. Treasury | ~12,000 | Daily |
| EU Consolidated | European Commission | ~2,400 | Weekly |
| UK Sanctions | HM Treasury | ~3,800 | Weekly |
Each list includes entity names, aliases, and associated identifiers. The fuzzy match runs against all aliases for each entry, increasing the chance of catching obfuscated names.
The Sanctions Check Audit Record
Every screening — whether it produces a hit or a clear result — generates a Sanctions Check record:
| Field | Description | Example |
|---|---|---|
| submission guid | Link to submission | 619b26bd-... |
| entity type | insured / broker / principal | principal |
| entity name | Name screened | Maria Petrov |
| list source | Which sanctions list | OFAC_SDN |
| matched entry | List entry matched (if hit) | Maria Petrova |
| similarity score | SequenceMatcher ratio | 0.83 |
result |
clear / hit | hit |
| rule code | Which rule triggered | SANC-003 |
| screened at | UTC timestamp | 2026-04-21T09:00:05Z |
For a submission with 1 insured + 1 broker + 3 principals screened against 3 lists, the system generates 15 audit records (5 entities x 3 lists). Every record is retained for regulatory examination.
Screening Performance
| Entities | Lists | Total Comparisons | Time |
|---|---|---|---|
| 1 insured | 3 | ~18,200 | 0.4s |
| 1 insured + 1 broker | 3 | ~36,400 | 0.7s |
| 1 insured + 1 broker + 5 principals | 3 | ~127,400 | 1.8s |
The engine normalizes names before comparison — lowercasing, stripping punctuation, removing common suffixes (Ltd, LLC, Inc, Corp) — to improve match accuracy.
D&O Submission: Director Name Triggers 75% Sanctions Match
Scenario: A D&O submission arrives for Apex Dynamics Inc., a technology company. The broker is Marsh. The application lists five directors and officers.
Entity screening results:
| Entity | Type | OFAC | EU | UK | Result |
|---|---|---|---|---|---|
| Apex Dynamics Inc. | insured | 0.31 | 0.28 | 0.22 | CLEAR |
| Marsh & McLennan | broker | 0.15 | 0.12 | 0.18 | CLEAR |
| Robert Hayes (CEO) | principal | 0.42 | 0.38 | 0.40 | CLEAR |
| Dmitri Volkov (CFO) | principal | 0.68 | 0.71 | 0.75 | HIT |
| Sarah Lin (COO) | principal | 0.22 | 0.19 | 0.25 | CLEAR |
SANC-003 fires for Dmitri Volkov:
| Field | Value |
|---|---|
| Rule | SANC-003: Key principal/officer sanctions screening |
| Entity | Dmitri Volkov (CFO) |
| Matched against | Dmitrii Volkov (UK Sanctions List) |
| Similarity | 75% (above 70% threshold) |
| Severity | critical |
| Issue | "Key principal 'Dmitri Volkov' matches UK sanctions entry 'Dmitrii Volkov' with 75% similarity" |
The underwriter sees a red critical issue on the clearance panel. The AI recommendation reads: "Investigate — this may be a false positive due to a common name. Recommended next steps: (1) Obtain full legal name and date of birth from the D&O application, (2) Compare against sanctions entry details including DOB and nationality, (3) If confirmed different individual, document rationale and proceed, (4) If unresolvable, escalate to compliance officer for determination, (5) Do not bind until sanctions status is resolved."
The 75% match is close enough to warrant investigation but not high enough to confirm identity. This is precisely the scenario where fuzzy matching adds value — an exact-match system would have missed "Dmitri" vs. "Dmitrii" entirely.
What This Means for Underwriters
- Comprehensive coverage — three entity types screened against three lists means no sanctions gap.
- Fuzzy matching catches what exact match misses — transliterations, spelling variants, and abbreviations are surfaced rather than silently passed.
- Configurable sensitivity — compliance teams tune the threshold to their risk appetite without developer involvement.
- Full audit trail — every screening produces a record, whether hit or clear, satisfying regulatory examination requirements.
- Speed — even a 7-entity, 3-list screening completes in under 2 seconds, integrated into the clearance flow with no separate system or manual step.
What's Next
In the next post, we will explore AI-Powered Conflict Resolution — how InsightUW generates recommended actions, confidence scores, and ordered next steps for every clearance issue, helping underwriters resolve conflicts faster with AI-guided decision support.
InsightUW is an AI-powered underwriting workstation for P&C carriers. Request a demo to see multi-entity sanctions screening in action.