← Back to blog
AMLSanctions screeningDeep dive

Name Screening in AML: How Matching Works

The Screen100 Team··8 min read
Fingerprint scanner illustrating name screening in AML

Photo by panumas nikhomkhai on Pexels

Ask most compliance teams how their screening tool decided that "Mohamed Al-Amin" might be the same person as "Mohammad Al-Ameen" on a sanctions list, and you'll usually get a shrug — it just did. Name screening in AML looks like a simple lookup from the outside: type a name in, get a match or not. Underneath, it's a genuinely hard string-comparison problem, because real names were never designed to be compared programmatically. They get spelled inconsistently, transliterated from other scripts in more than one legitimate way, and recorded with different name orders across different systems. Understanding how matching actually copes with all of that — where it's exact, where it's fuzzy, and why — makes a screening programme far easier to trust and to defend.

Key takeaways

  • Exact-string matching alone misses most genuine sanctions matches, because names are spelled, ordered and transliterated differently every time someone records them.
  • Fuzzy matching techniques — edit distance and phonetic algorithms — catch spelling variants and mis-transliterations that exact matching quietly lets through.
  • Names romanised from Arabic, Cyrillic or Chinese script can have several equally correct English spellings, not just typos to be tidied up.
  • Aliases carry different evidentiary weight to a verified primary name — a hit on a weak or unverified alias is not the same strength of signal as a hit on the primary designation.
  • Match-score thresholds are a trade-off dial, not a setting you tune once and forget: tighter thresholds cut false positives but risk missing true matches.

Why do sanctions screening tools use fuzzy matching instead of exact matching?

Exact matching asks a single, binary question: is this string identical to that string? For sanctions screening, that's the wrong question almost as often as it's the right one. A customer's name might be entered with a middle name one time and without it the next; a hyphen might appear in "Al-Rashidi" on one form and disappear on another; a list entry might record a full legal name while your intake form captures a shortened, everyday one. None of these are errors exactly — they're just the normal variation that happens whenever a name passes through multiple people, systems and languages before it reaches a screening engine.

Fuzzy matching replaces the binary question with a graded one: how similar are these two strings, on a scale, allowing for the kinds of variation that show up in real name data? Instead of a yes/no answer, it returns a score, and a screening system decides how confident it needs to be before it treats that score as worth a human's attention. That shift — from identity to similarity — is what lets a screening tool catch "Yousef Al-Rasheedi" as a plausible match for a listed "Yusuf Al-Rashidi" without also drowning reviewers in every name that happens to share a common first name.

Why does a name transliterated from Arabic, Cyrillic or Chinese script cause matching problems?

A large share of sanctions designations concern individuals whose names are written natively in a non-Latin script — Arabic, Cyrillic, or Chinese characters among the most common. There is no single, universally agreed way to render those names in Latin letters. The formal transliteration standard used for machine-readable passports, ICAO Document 9303, exists precisely because governments needed to agree on one consistent mapping for travel documents — and even that standard has to carve out exceptions for languages where a single "correct" transliteration still doesn't exist in everyday use.

Sanctions data compilers, banks and onboarding forms rarely all follow the same convention. Picture a name written in Arabic script that gets romanised three separate ways across three separate records: a sanctions list compiler renders it as "Yusuf," a bank's KYC file (sourced from an older passport) has "Youssef," and a payment message from a correspondent bank spells it "Yusef." None of these three spellings is wrong. They are all defensible transliterations of the same underlying Arabic name, arrived at independently by different people applying different, equally reasonable conventions. An exact-string search for any one of them against a list containing only one of the others returns nothing — a missed match not because the technology failed, but because exact matching was never capable of bridging a transliteration gap in the first place. This is the exact scenario fuzzy and phonetic matching exist to close.

How do algorithms actually catch spelling and transliteration variants?

Screening engines generally lean on two complementary families of technique, described here conceptually rather than as code.

Edit distance

Edit distance (the Levenshtein distance is the best-known version) counts the smallest number of single-character insertions, deletions or substitutions needed to turn one string into another. "Yusuf" to "Yusaf" is one substitution — a short distance, so a high similarity score. "Yusuf" to "Youssef" takes a few more edits, but still few enough relative to the length of the name to register as a strong match rather than a coincidence. The shorter the edit distance relative to the name's length, the more similar the two strings are judged to be.

Phonetic matching

Phonetic algorithms — Soundex and its more refined descendants such as Metaphone-style approaches — take a different angle: instead of comparing letters directly, they encode how a name is likely to sound when spoken aloud, then compare the sound codes rather than the spellings. Two names that are spelled quite differently but sound similar — "Katherine" and "Catherine," or "Stephan" and "Steven" — land in the same or a similar phonetic bucket even though a letter-by-letter comparison would show several differences. This matters for transliteration variants especially, because two romanisations of the same foreign name are often chosen precisely because they sound right to an English speaker, even when the letters diverge more than edit distance alone would forgive.

A well-built matching engine runs both families of technique together and blends the results into a single score, because each covers the other's blind spot: edit distance alone under-scores transliterations where whole syllables change shape, and phonetic matching alone is too permissive for names that merely share common sounds with no real connection.

An illustrative example: one name, several variants

The table below shows how one hypothetical sanctioned individual's name might appear across different records, and how each variant would fare under exact matching versus a fuzzy matching score.

Name variant on record Exact match against "Yusuf Al-Rashidi" Illustrative fuzzy score
Yusuf Al-RashidiMatch100 — identical
Yousef Al-RasheediNo matchHigh — plausible transliteration variant
Yusaf Al-RashidiNo matchHigh — single-letter substitution
Yusuf RashidiNo matchModerate — missing name particle
Youssef Al RachidiNo matchModerate — French-convention transliteration, longer edit distance

Every row after the first would be invisible to exact-string search. A fuzzy matching engine surfaces all of them at varying confidence levels, leaving a human reviewer — with supporting attributes such as date of birth or nationality — to decide which are worth pursuing. That triage step is exactly where our guide on reducing false positives in sanctions screening picks up.

How are aliases weighted differently from primary names?

Sanctions list entries typically distinguish a primary designated name from a list of known aliases, and the aliases themselves aren't all equal. Some are verified spellings the designating authority has confirmed; others are recorded as weak, low-quality, or unconfirmed variants — essentially a plausible guess rather than a documented identity. The US Treasury's guidance on assessing OFAC name matches explicitly asks reviewers to weigh how much of a listed entry's name data actually lines up, not simply whether any single name string matched.

A good matching engine reflects that distinction in its scoring rather than treating every hit the same way. A strong match against a primary, verified name deserves more weight as evidence than an equally strong string-similarity match against a weak alias with nothing else corroborating it. Two names can produce an identical fuzzy score and still warrant very different levels of concern, depending on which part of the list entry they hit and what supporting data — nationality, date of birth, entity type — lines up alongside it.

How do match-score thresholds trade off false positives against false negatives?

Every fuzzy matching system needs a cut-off: a score above which a result counts as a "possible match" worth a look, and below which it's filtered out as noise. Move that threshold in either direction and something gives. Tighten it, and the review queue shrinks — but true matches that happen to score just under the new bar vanish along with the noise, becoming false negatives. Loosen it, and recall improves — genuine matches are far less likely to slip through — but the queue fills with low-relevance coincidences that reviewers have to work through one by one.

There is no single correct threshold that suits every institution; it depends on risk appetite, list size, and how much supporting data typically accompanies a screening request. As one screening-engine engineer put it, the score is a triage tool, not a verdict — it tells a reviewer where to look first, not what the answer is. That distinction matters more than the exact number chosen: a threshold is only defensible if the institution can explain why it sits where it does and show it was tested against known variants, not picked to make a queue feel more manageable.

The stakes behind getting this balance wrong aren't abstract. FATF's own best-practice guidance on targeted financial sanctions notes plainly that the harder it is to identify a person or entity from a sanctions list, the greater the burden on the private sector to still get it right — difficulty of identification does not lower the compliance obligation. A threshold set purely to reduce workload, without regard to what it costs in missed true matches, doesn't meet that bar.

Where this fits in a wider screening programme

Matching mechanics are only one layer of a working AML screening programme. They sit alongside decisions about which lists to screen against, how often to refresh them, and how to document the review of every hit — the kind of ground covered in our walkthrough of running an OFAC check and our broader guide to choosing AML screening software. None of that matters much, though, if the underlying matching can't bridge the gap between how a name is spelled on a list and how it turns up in your own records — which is exactly why understanding fuzzy matching, transliteration and thresholds pays off even for teams who never touch the underlying code.

Matching engines will keep getting better at handling transliteration and phonetic variation, but the trade-off between false positives and false negatives isn't going away — it's inherent to comparing names as approximations rather than certainties. If you want to see fuzzy matching, alias weighting and score thresholds working together on a real name, run a free screen and try a deliberately misspelled or transliterated variant of a common name to see how the scoring responds.

Frequently asked questions

What's the difference between exact and fuzzy matching in AML screening?

Exact matching only flags a result when a name is character-for-character identical to a list entry. Fuzzy matching scores how similar two names are on a scale, catching spelling variants, transliterations and minor differences that exact matching would miss entirely.

Why do transliterated names cause missed matches?

Names originally written in Arabic, Cyrillic or Chinese script often have more than one equally correct English spelling, since there's no single universal transliteration standard used consistently across sanctions lists, banks and onboarding forms. A name spelled one valid way on a list and another valid way in your records won't match under exact search.

Are all aliases on a sanctions list treated the same as the primary name?

No. Sanctions data typically distinguishes verified aliases from weak or unconfirmed ones, and a well-built matching engine weights them accordingly — a hit on the primary designated name carries more evidentiary weight than an equally strong score against an unverified alias.

Should I set my match threshold as high as possible to avoid false positives?

Be cautious about this. Raising the threshold does cut false positives, but it also risks filtering out true matches that score just under the new bar, creating false negatives. The right threshold balances review workload against the risk of missing a genuine match, not just against queue size.

Run this check on a real name

Free, no account required. Screen against the OFAC SDN, OFAC Consolidated and UN Security Council lists.