9.2 Name Matching Logic & Fuzzy Matching Algorithms

Key Takeaways

  • Exact matching requires 100% character identity and is vulnerable to typos, whereas fuzzy matching calculates probabilistic similarity to detect obscured permutations.
  • Levenshtein edit distance calculates single-character insertions, deletions, substitutions, and transpositions, while Jaro-Winkler applies prefix weighting favorable to personal names.
  • Phonetic algorithms like Soundex and Double Metaphone convert words into phonetic codes based on spoken sound, neutralizing diverse spelling variations.
  • Threshold tuning governs the operational trade-off between False Positives (over-screening operational paralysis) and False Negatives (under-screening regulatory breach).
  • Secondary identifiers—including Date of Birth (DOB), nationality, address, national ID, and permanent vessel IMO numbers—are critical for algorithmic disambiguation.
Last updated: August 2026

9.2 Name Matching Logic & Fuzzy Matching Algorithms

Core Principle: Sanctions targets routinely alter spellings, invert names, introduce deliberate typographical errors, or use phonetic aliases to evade detection. To penetrate this obfuscation, sanctions screening engines rely on sophisticated string-matching algorithms and probabilistic fuzzy logic combined with secondary identifier disambiguation.


1. Matching Logic Foundations: Exact Matching vs. Fuzzy Matching

Screening engines evaluate text through two fundamentally different logical frameworks:

+--------------------------------------------------------------------------------------------------+
|                             EXACT MATCHING vs. FUZZY MATCHING                                    |
+--------------------------------------------------------------------------------------------------+
| EXACT MATCHING (Deterministic / Binary):                                                         |
|   Query: "VLADIMIR IVANOV"  <===>  List: "VLADIMIR IVANOV"  ──> Match Score = 100% (ALERT)       |
|   Query: "VLADAMIR IVANOV"  <===>  List: "VLADIMIR IVANOV"  ──> Match Score =   0% (NO ALERT!)   |
+--------------------------------------------------------------------------------------------------+
| FUZZY MATCHING (Probabilistic / Approximate String Matching):                                    |
|   Query: "VLADAMIR IVANOV"  <===>  List: "VLADIMIR IVANOV"  ──> Match Score =  93% (ALERT)       |
+--------------------------------------------------------------------------------------------------+
  • Exact Matching (Deterministic): Requires 100% binary character equality between the input string and the watchlist entry. While computationally fast and producing zero false positives for identical names, exact matching is exceptionally fragile: a single typographical error, dropped space, or alternate spelling results in an immediate False Negative (undetected sanctions target).
  • Fuzzy Matching (Probabilistic): Applies mathematical algorithms to measure string similarity, returning a confidence score between $0%$ and $100%$ (or $0.0$ to $1.0$). If the calculated similarity score equals or exceeds a pre-set Sensitivity Threshold (e.g., $85%$), an alert is generated for human review.

2. Core String Comparison & Distance Algorithms

Modern sanctions screening engines combine multiple algorithmic families to evaluate typographical, structural, and phonetic similarities:

+---------------------------------------------------------------------------------------+
|                         ALGORITHM TAXONOMY FOR NAME MATCHING                          |
|                                                                                       |
|  [ String Distance ]   ──> Levenshtein (Edit Distance), Damerau-Levenshtein           |
|  [ Prefix-Weighted ]   ──> Jaro, Jaro-Winkler (Optimized for First/Last Names)        |
|  [ Phonetic Encoding ] ──> Soundex, Metaphone, Double Metaphone (Spoken Sound)        |
|  [ Token / N-Gram ]    ──> N-Gram Overlap, Jaccard / Dice Similarity (Substrings)     |
+---------------------------------------------------------------------------------------+

Algorithmic Comparison Matrix

Algorithm FamilyPrimary MechanismBest Operational Use CaseVulnerabilities / Limitations
Levenshtein DistanceCalculates the minimum number of single-character edits (insertions, deletions, substitutions) needed to change String A into String B.Typographical errors, minor misspellings in body text.Sensitive to word order inversions ("John Smith" vs "Smith John" produces a very poor edit distance).
Damerau-LevenshteinExtends Levenshtein by counting adjacent character transpositions as a single edit operation (e.g., "teh" $\rightarrow$ "the" = 1 edit).Common keyboard slip errors and swapped letters.Still vulnerable to token reordering and compound surname splits.
Jaro-Winkler DistanceMeasures character matches within a sliding window and transpositions, applying an upward prefix bonus ($p$) for matching initial characters.Short strings, personal given/family names where prefixes match.Penalizes names where the prefix contains a typo or where titles/prefixes are attached.
Double MetaphoneEncodes English and foreign words into 4-character phonetic codes representing how the word sounds in spoken speech.Cross-cultural spelling variants (e.g., "Smyth" and "Smith" $\rightarrow$ SM0).Cannot distinguish between completely different names that share phonetic profiles; produces false positives.
N-Gram TokenizationBreaks strings into overlapping character sequences of length $n$ (bigrams $n=2$, trigrams $n=3$) and calculates overlap ratios.Truncated strings, concatenated words, and intra-word scrambling.Computationally intensive; sensitive to short 2-to-3 letter names.

Mathematical Deep Dive: Levenshtein vs. Jaro-Winkler

  1. Levenshtein Calculation Example:

    • String 1: "KASIM"
    • String 2: "QASIM"
    • Edit: 1 substitution (K $\rightarrow$ Q). Distance = $1$.
    • Similarity Formula: $\text{Similarity} = \left(1 - \frac{\text{Distance}}{\max(\text{Length}_1, \text{Length}_2)}\right) \times 100 = \left(1 - \frac{1}{5}\right) \times 100 = 80%$.
  2. Jaro-Winkler Mechanics:

    • Jaro measures common characters within distance $\lfloor \frac{\max(|s_1|, |s_2|)}{2} \rfloor - 1$ and transpositions.
    • Winkler modifies the Jaro score $d_j$ with prefix weight $p$ (standard $p=0.1$) for up to 4 matching initial characters ($l$): dw=dj+(lp(1dj))d_w = d_j + (l \cdot p \cdot (1 - d_j))
    • Because humans rarely misspell the first letter of their name, Jaro-Winkler assigns higher scores to "AHMED" vs "AHMAD" than Levenshtein.

3. Token Matching, Word Reordering & Out-of-Order Logic

In international commerce, name tokens frequently arrive in inverted or scrambled order (e.g., "HUSSEIN, SADDAM" vs "SADDAM HUSSEIN"). Standard linear edit-distance algorithms fail on inverted names because every character position is shifted.

+---------------------------------------------------------------------------------------+
|                               TOKEN REORDERING ENGINE                                 |
|                                                                                       |
|  Input Name:  [ HUSSEIN ] [ SADDAM ]                                                  |
|  Watchlist:   [ SADDAM ]  [ HUSSEIN ]                                                  |
|                                                                                       |
|  Step 1: Tokenize string into individual elements: { "HUSSEIN", "SADDAM" }           |
|  Step 2: Compare token sets across permutations using Jaccard / Cosine Similarity     |
|  Step 3: Calculate Composite Token Score ──> Score = 100% (MATCH DETECTED!)           |
+---------------------------------------------------------------------------------------+
  • Tokenization: The system splits full names into individual constituent words (tokens).
  • Permutation / Asymmetric Matching: The engine evaluates every permutation of token combinations. If an input contains "MOHAMMAD ALI REZA" and the list contains "REZA, MOHAMMAD ALI", token-matching logic aligns the corresponding tokens regardless of sequence.
  • Token Weighting / Inverse Frequency: Sophisticated engines assign mathematical weights based on token rarity. Common tokens (e.g., "Mohammad", "International", "Trading") carry lower match weight, while rare family names (e.g., "Makhlouf", "Rotenberg") carry high match weight.

4. Threshold Setting, Sensitivity Tuning & The Operational Trade-Off

Calibrating the matching threshold is one of the most critical governance decisions in sanctions compliance. Management must navigate the fundamental trade-off between False Positives and False Negatives:

+---------------------------------------------------------------------------------------+
|                      THE THRESHOLD TUNING OPERATIONAL FRONTIER                        |
|                                                                                       |
|  THRESHOLD SET TOO LOW (e.g., 60% - 70%)                                              |
|  [ Alert Volume: Massive Surge ] ──> [ High False Positives ] ──> [ Analyst Fatigue ]  |
|                                                                                       |
|  THRESHOLD SET TOO HIGH (e.g., 95% - 100%)                                            |
|  [ Alert Volume: Zero / Minimal ] ──> [ High False Negatives ] ──> [ REGULATORY PENALTY|
+---------------------------------------------------------------------------------------+

Sensitivity Threshold Calibration Matrix

Threshold BandOperational ImpactRisk of False PositivesRisk of False NegativesRegulatory Assessment
Low Sensitivity (60% - 74%)Floods compliance queue with thousands of spurious alerts; operational backlog; high risk of analyst rubber-stamping.Extreme (Over-screening)Very Low (Captures virtually all variants)Unsound due to operational inefficiency and investigative alert fatigue.
Optimal Calibrated Range (80% - 88%)Industry benchmark; balances robust typographical detection with manageable investigative capacity.Moderate / ControlledLow / DefensibleCompliant with regulatory expectations when supported by model validation.
High Strictness (92% - 100%)Minimizes alert volume; eliminates false positives; high risk of missing slight typographical evasions.NegligibleSevere / Critical (Under-screening)Regulatory violation; unacceptable risk of processing prohibited transactions.

5. Secondary Identifiers & Disambiguation Hierarchy

A name match alone generates an initial hit, but names in global populations are rarely unique. Compliance analysts and screening engines use Secondary Identifiers to disambiguate common names and clear false positives:

+---------------------------------------------------------------------------------------+
|                         SECONDARY IDENTIFIER DISAMBIGUATION HIERARCHY                 |
|                                                                                       |
|  1. PRIMARY NAME MATCH DETECTED (Score >= Threshold)                                  |
|                            │                                                          |
|                            ▼                                                          |
|  2. COMPARE UNIQUE IDENTIFIERS:                                                       |
|     • Vessel IMO Number / Corporate Tax ID (Definitive 100% Confirmation)             |
|     • Passport / National ID Number (Definitive Confirmation)                         |
|                            │                                                          |
|                            ▼                                                          |
|  3. COMPARE DEMOGRAPHIC IDENTIFIERS:                                                  |
|     • Date of Birth (DOB) (Exact match vs +/- 1-year vs Decades apart)                |
|     • Nationality & Country of Residence                                              |
|     • Physical Address & City                                                         |
+---------------------------------------------------------------------------------------+

Disambiguation Factor Evaluation Standards

  • Vessel IMO Number: The International Maritime Organization (IMO) number is a permanent 7-digit identifier that remains linked to a ship's hull for its entire operational lifetime, regardless of changes in vessel name, flag of registry, or registered ownership. In maritime screening, an IMO match is 100% definitive, overriding any discrepancy in the vessel's declared name.
  • Date of Birth (DOB) Evaluation:
    • Exact DOB Match: Strong corroboration of a true hit.
    • Minor Variance (+/- 1-2 years or transposed month/day): Cannot be discounted immediately; requires secondary investigation due to recordkeeping inconsistencies in developing jurisdictions.
    • Significant Discrepancy (e.g., 20+ years difference): Objective grounds for immediate Level 1 false positive discount.
  • Government Identification Numbers: National ID, Tax Identification Number (TIN), or passport numbers provide near-definitive disambiguation when verified against official government registries.

6. Practical Compliance Scenario & Calculation Example

Realistic Scenario: Calculating Match Scores on Obfuscated Wire Instructions

A commercial bank processes an international wire transfer originating from "DMTRI MEDVEDEV" directed to an offshore account. The OFAC SDN List contains designated individual "DMITRY MEDVEDEV".

Input String (s1):   D  M  -  T  R  I     M  E  D  V  E  D  E  V   (Length = 14)
Target String (s2):  D  M  I  T  R  Y     M  E  D  V  E  D  E  V   (Length = 15)
  • Levenshtein Distance Calculation:
    1. Insertion of "I" at index 2 (DMTRI $\rightarrow$ DMITRI): 1 edit.
    2. Substitution of "I" $\rightarrow$ "Y" at index 5 (DMITRI $\rightarrow$ DMITRY): 1 edit.
    • Total Edit Distance = $2$.
    • Similarity Score: $\left(1 - \frac{2}{15}\right) \times 100 = 86.67%$.
  • System Decision: Because the bank's screening threshold is calibrated at $85%$, the score of $86.67%$ breaches the threshold, successfully intercepting the payment and generating an alert for Level 1 investigation.

Key Takeaways for the CGSS Exam:

  • Levenshtein calculates minimum edit operations; Damerau-Levenshtein includes single-step adjacent transpositions.
  • Jaro-Winkler gives higher weight to matching initial prefixes.
  • IMO numbers are permanent hull identifiers that override vessel name and flag changes.
  • Raising matching thresholds to reduce alert backlogs without validation creates catastrophic False Negative regulatory risk.
Loading diagram...
Fuzzy Matching Algorithm Execution & Secondary Disambiguation Workflow
Test Your Knowledge

A sanctions analyst evaluates two strings: Input Name 'SERGEI' and Watchlist Name 'SERGEY'. What is the Levenshtein edit distance between these two names, and what single edit operation accounts for the difference?

A
B
C
D
Test Your Knowledge

Why does the Jaro-Winkler algorithm frequently produce a higher similarity score than standard Levenshtein distance when comparing personal names with identical opening letters (such as 'ROBERTO' vs 'ROBERT')?

A
B
C
D
Test Your Knowledge

A newly appointed Chief Compliance Officer at a commercial bank observes that the sanctions screening department is overwhelmed by 50,000 false positive alerts per month. To resolve the backlog, the CCO raises the fuzzy matching threshold from 80% to 98%. What is the primary regulatory and operational risk of this action?

A
B
C
D
Test Your Knowledge

A maritime trade screening engine generates an alert on an oil tanker declared on a shipping bill of lading as the 'M/V OCEAN STAR' (flagged in Panama). The vessel's name does not appear on any sanctions list, but its declared International Maritime Organization (IMO) number matches the IMO number of the 'M/V NEPTUNE GLORY', a vessel designated under OFAC DPRK sanctions. How must the compliance officer resolve this alert?

A
B
C
D