Articles

How does Jaro-Winkler scoring work in sanctions name screening?

Many screening engines rank name matches with Jaro-Winkler or a close relative. Working one score by hand shows what a threshold can and cannot separate.

Jaro-Winkler similarity is the Jaro score, built from matching characters and transpositions, plus a bonus for a shared prefix of up to four characters. Against an illustrative listed name OLEG IVANOV, the transliteration OLEG IVANOFF has a Jaro score of 0.914 and a Jaro-Winkler score of 0.948, so a 0.95 threshold misses it. A different person, OLGA IVANOVA, reaches the same 0.948 once token order is allowed for, which is why the threshold cannot be the only control.

Worked in full in The EU AML Handbook by Julian R. Sterling, with every figure reproduced in a free workbook.See the book on Amazon →

Screening engines rarely publish their scoring, but many of them rank candidate matches with Jaro-Winkler or a close relative. Compliance teams set the threshold, defend it to supervisors and tune it after every list update. Working the score by hand once shows what the number measures and where it breaks.

The assumptions

One listed name, seven customer names. All names fictional.
Customer nameRelationship to the listed OLEG IVANOV
OLEG IVANOVExact match
OLEG IVANOFFSame person, alternative transliteration
OLEG IWANOWSame person, German transliteration
ALEG IVANOVSame person, typing error in the first letter
IVANOV OLEGSame person, surname first
OLGA IVANOVADifferent person
OLEG PETROVDifferent person

Names are upper case with a single space. Standard parameters: a prefix scale of 0.1 and a maximum prefix of four characters.

Jaro-Winkler is preferred to plain edit distance for names because it is normalised between zero and one whatever the length, tolerates characters that drift a position or two, and weights the start of the string, where people make fewer errors. Each of those design choices shows up in the results below, for better and for worse.

The calculation, step by step

Jaro = ⅓ × (m ÷ |s1| + m ÷ |s2| + (m − t) ÷ m)

Jaro-Winkler = Jaro + l × 0.1 × (1 − Jaro)

m is the number of matching characters, counted only if they sit within a window of half the longer name minus one; t is half the number of matched characters out of order; l is the shared prefix, capped at 4. Excel has no built-in function; most teams compute it in the screening engine or in a short script.

Take OLEG IVANOFF, 12 characters, against OLEG IVANOV, 11. The window is 5 positions. Ten characters match: O, L, E, G, the space, I, V, A, N and the second O. None is out of order, so t is 0.

The result for all seven names

Scores against OLEG IVANOV. "Sorted" compares names with tokens in alphabetical order; "Best" keeps the higher of the two.
Customer nameJaroJaro-WinklerSortedBest
OLEG IVANOV1.0001.0001.0001.000
OLEG IVANOFF0.9140.9480.9480.948
OLEG IWANOW0.8790.9270.8910.927
ALEG IVANOV0.9390.9390.4920.939
IVANOV OLEG0.4920.4921.0001.000
OLGA IVANOVA0.8470.8780.9480.948
OLEG PETROV0.7100.8260.4920.826

Three things stand out. The prefix bonus rewards a shared first name: OLEG PETROV, a different person, climbs from 0.710 to 0.826 on OLEG alone, while ALEG IVANOV gets no bonus because its first letter differs. Reversed names collapse: IVANOV OLEG finds only 4 matches inside the window and scores 0.492 until tokens are sorted. And sorting helps the wrong name as much as the right one: OLGA IVANOVA rises to 0.948, exactly level with the true variant.

What if the threshold moves?

Names alerted at each threshold, using the best of the two orderings.
ThresholdAlertsTrue variants missedDifferent people alerted
0.856NoneOLGA IVANOVA
0.906NoneOLGA IVANOVA
0.952IVANOFF, IWANOW, ALEGNone

At 0.95 the transliteration misses by 0.002. Between 0.90 and 0.85 nothing changes on this list, which is the usual shape: thresholds work in steps, and the only way to know where the steps are is to run known variants through the engine. A test pack of transliterations, typing errors, reversed and truncated names for each list is the evidence a supervisor will ask for, in the same way that monitoring thresholds are tested band by band in setting an AML transaction monitoring threshold.

The similarity score decides which names reach an analyst; it does not decide whether they are the listed person. OLEG IVANOFF and OLGA IVANOVA are indistinguishable at 0.948. Date of birth, nationality and address separate them at review, which is why those fields need to be complete in customer data before screening runs.

The common mistake

The common mistake is raising the threshold to cut alert volumes. Every point removed from the alert queue comes from somewhere on the score distribution, and on names the variants of a listed person sit just below the exact match. Here, moving from 0.90 to 0.95 removes three true variants and one false alert. The cost shows up as staffing in the other direction, as worked in the false positive rate of AML alerts; the answer to volume is better secondary identifiers, not a higher threshold.

Takeaway

Jaro-Winkler = Jaro + prefix × 0.1 × (1 − Jaro). It scores OLEG IVANOFF at 0.948 against OLEG IVANOV, misses reversed names unless tokens are reordered, and cannot separate a true variant from a different person with a similar name. Set the threshold on a documented test pack. The free companion files for the book include a working document with the four data controls, the test pack and the watch list.

Questions readers ask

What is a good Jaro-Winkler threshold for sanctions screening?

There is no universal value: set it by testing known variants of listed names against your engine. In the illustration a 0.95 threshold misses the transliteration OLEG IVANOFF at 0.948, by 0.002, while 0.90 catches it along with OLEG IWANOW at 0.927 and a first-letter typo at 0.939. Tune on a test pack, then document why.

Why does Jaro-Winkler fail on reversed names?

Because it compares characters by position within a window. IVANOV OLEG against OLEG IVANOV finds only 4 matching characters within the 4-character window and scores 0.492. Sorting the tokens first lifts it to 1.000, but sorting also hurts other cases, so engines score several orderings and keep the highest.

Can a name screening threshold separate true and false matches?

Not on its own. With names compared in both orders, the true variant OLEG IVANOFF and the different person OLGA IVANOVA both score 0.948 against OLEG IVANOV. No threshold keeps one and drops the other; date of birth, nationality and other identifiers have to do that work at the alert review stage.

Read the whole case

This article is one calculation from The EU AML Handbook. The book takes the same case from first principles to the decision, chapter by chapter, and every figure it prints is a live formula in the free companion workbooks.

Get the book on Amazon →Free companion files

Also on Amazon UK · Amazon Germany · Amazon France · Amazon Canada

Also on this site

Reading guide: regulation, compliance and banking → · All 1340 articles →

If this book helped, or didn’t, a few lines on Amazon are worth more than they look: they are what the next reader goes on. Write a review. The workbook stays free either way.