• contact@verticalserve.com
Home / Engineering / Post 27
Engineering Blog · Post #27

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%).

graph TD subgraph Input["Submission Entities"] A["🏢 Insured Name<br/>Solaris Energy Holdings"] B["🏛️ Broker Name<br/>Lockton Risk Advisors"] C["👤 Key Principals<br/>James Whitfield (CEO)<br/>Maria Petrov (CFO)<br/>David Chen (COO)"] end subgraph Lists["Sanctions Lists"] D["🇺🇸 Ofac SDN List<br/>~12,000 entries"] E["🇪🇺 EU Consolidated<br/>~2,400 entries"] F["🇬🇧 UK Sanctions<br/>~3,800 entries"] end subgraph Matching["Fuzzy Match Engine"] G["Sequence Matcher<br/>Similarity Ratio"] H{"Score >= 70%<br/>Threshold?"} end subgraph Results["Screening Results"] I["✅ Clear<br/>No matches above threshold"] J["🚫 HIT<br/>Match found — issue created"] end subgraph Audit["Audit Record"] K["Sanctions Check<br/>entity type, list source,<br/>score, matched entry,<br/>screened at"] end A --> G B --> G C --> G D --> G E --> G F --> G G --> H H -->|Below Threshold| I H -->|Above Threshold| J I --> K J --> K

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

  1. Comprehensive coverage — three entity types screened against three lists means no sanctions gap.
  2. Fuzzy matching catches what exact match misses — transliterations, spelling variants, and abbreviations are surfaced rather than silently passed.
  3. Configurable sensitivity — compliance teams tune the threshold to their risk appetite without developer involvement.
  4. Full audit trail — every screening produces a record, whether hit or clear, satisfying regulatory examination requirements.
  5. 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.

See InsightUW run on your data

A 45-minute working session with a real broker email and your LOBs.

Request a demo