Sanctions and Watchlist Screening

Sanctions screening looks simple — check if a name is on a list — and is genuinely hard, because names are messy, lists are fuzzy, and the penalty for a miss is among the most severe in all of compliance. It's a string-matching problem with strict-liability stakes, which is exactly what makes the false-positive-versus-false-negative balance so unforgiving.

Distinct from AML monitoring (watching behavior), sanctions screening checks who you’re dealing with against official lists of prohibited parties — sanctioned individuals, entities, and countries you’re legally forbidden to transact with. This post covers screening as an engineering problem: what the lists are, why matching names is far harder than it looks, the fuzzy-matching and false-positive challenge at its core, and why sanctions carry uniquely high stakes. It’s a deceptively deep problem hiding behind “just check the list.”

What sanctions screening is

Governments and international bodies publish sanctions lists — the names of individuals, organizations, and countries that businesses are prohibited from doing business with. Screening is the obligation to check your customers (and often the parties to their transactions) against these lists, and to block prohibited parties. Common lists include those from bodies like OFAC (in the US) and equivalent national and international authorities; screening typically also covers related watchlists such as PEP lists and adverse-media lists.

The stakes make sanctions distinct from other compliance areas: sanctions violations are frequently strict liability — meaning you can be penalized even without intent, simply for the violation occurring — and penalties are among the most severe in compliance. This changes the engineering calculus: because a single missed match can be catastrophic and intent is no defense, screening must lean hard toward not missing prohibited parties, which drives the false-positive problem below.

Screening happens at multiple points: at onboarding (part of KYC), on an ongoing basis (re-screening as lists update — someone can be added to a list after you onboarded them), and often on transactions (screening counterparties in real time). Lists change frequently, so screening is continuous, not one-time.

Why matching names is hard

The naive view is “check if the customer’s name is on the list” — a simple lookup. In reality, exact string matching fails badly, because names are messy in ways that defeat literal comparison:

Exact matching would miss all the variations (dangerous false negatives) while doing nothing about common-name collisions. So screening requires fuzzy matching — matching names that are similar but not identical, using techniques like phonetic matching, edit-distance, and handling of transliteration and name structure. This turns screening into a nuanced similarity problem, not a lookup, and how well you do it determines both what you catch and how much noise you generate.

The false-positive balance, sharpened

Fuzzy matching creates the central tension, and sanctions is where it’s most acute because of strict liability:

Because missing a true match is so costly, sanctions screening deliberately errs toward sensitivity, accepting a high false-positive rate as the price of not missing prohibited parties. The consequence is a large volume of matches to review — most of which are legitimate customers who happen to resemble a listed name — creating the same investigator-overload problem as AML, and often worse. The engineering challenge is therefore reducing false positives without lowering sensitivity: better matching algorithms, richer data (using date of birth, nationality, and other attributes beyond name to disambiguate — a “John Smith” match is dismissible if the DOB and nationality differ), and efficient review workflows. Using additional identifying attributes to disambiguate is one of the most effective levers — the more you can confirm it’s a different John Smith, the more false positives you clear confidently.

The screening and resolution workflow

Screening, like AML, is detection plus a human-in-the-loop workflow:

1. Screen     → match customer/counterparty names against lists (fuzzy)
2. Alert      → potential matches generate alerts (often held pending review)
3. Review     → an analyst assesses whether it's a true match, using extra
                identifying data (DOB, nationality, address) to disambiguate
4. Resolve    → true match → block/report; false positive → clear (documented)
5. Record     → log the screening, the match, and the decision immutably

The design goal mirrors AML: catch every true match (sensitivity, because strict liability), while making false-positive resolution fast and well-documented so legitimate customers aren’t unduly delayed and analysts aren’t overwhelmed.

Why sanctions screening deserves special care

Sanctions screening earns its own post because it’s uniquely unforgiving among compliance controls:

The upshot for engineers: sanctions screening is a high-stakes, continuously-updated, latency-sensitive fuzzy-matching system that must never miss a true match while resolving a flood of look-alikes efficiently. It’s “check the list” the way search is “find the document” — simple to state, deep to do well. With who-you-serve and what-they-do covered, the next post turns to the backbone that makes all of it defensible: audit trails and immutability.

Key takeaways

Further reading

Sources & References

Sanctions lists and screening