How to use the fuzzy list matcher
- Paste List A and List B, one item per line. Each item in List A is compared with every item in List B.
- Choose the similarity measure, Jaro-Winkler for names or Levenshtein for general text, and set a match threshold.
- Choose one to one matching, where each item is used once and the best scores win, or best match mode, where several items can pick the same partner.
- Read the table for each score and status, check the borderline cases by eye, then copy the table or download the CSV.
Formula
Jaro = (m / |s| + m / |t| + (m - t) / m) / 3, where m counts matching letters and t half the swapped ones
Jaro-Winkler = Jaro + 0.1 x L x (1 - Jaro), where L is the shared start of up to 4 letters, applied when Jaro > 0.7
Levenshtein similarity = 1 - edits / length of the longer item
Both scores run from 0 to 1 and are shown as percentages. Letters match in Jaro-Winkler when they are equal and no more than half the longer length apart, and the score rewards names that begin the same way.
Seven names against seven candidates
With the default lists and a threshold of 75%, five of seven items are matched. Martha Jones pairs with Marhta Jones at 98.1%, because the swapped h and t cost little. Dwayne Johnson pairs with Duane Johnson at 93.4%, and José García pairs with Jose Garcia at 100.0% after accents are removed.
Jonathan Smith is not matched to Smith, Jonathan, which scores only 70.6%, because Jaro-Winkler rewards letters in the same order and the words were reversed. That is a real limit of the measure. Zed Unknown has no partner at all. The published checks are MARTHA and MARHTA at 0.9611, DWAYNE and DUANE at 0.84, and kitten and sitting at 3 edits.
Choosing a threshold
A threshold is a trade-off. Lowering it catches more spelling variants and accepts more wrong pairs, and raising it does the opposite. There is no correct value for every list, so look at the scores of the pairs just above and just below your threshold and decide where real matches stop.
Scores are similarity estimates, not proof that two items are the same thing. Very short items and items that share common words score high by accident.
One to one against best match
In one to one mode all pairs at or above the threshold are ranked, and the highest score is taken first. An item that has already been used is skipped, so a clear match is never stolen by a weaker one. This is a greedy method and does not always find the best overall pairing, but it is simple to explain and check.
Best match mode gives every item in List A its own highest scoring partner, which is useful when List B is a reference list. For exact comparisons use the Compare Two Lists tool, and for a score between two single strings see the Text Similarity Calculator.
Assumptions and limits
- Matching is case, accent and punctuation insensitive unless you turn that off. Order of words still matters.
- Each list is limited to 300 items, which makes up to 90,000 comparisons.
- Ties are broken by position: the earlier item in List A wins, then the earlier item in List B.
- Scores are not probabilities. They are similarity measures on spelling only.
- Nothing typed here leaves your browser.
Frequently asked questions
Why did two similar names not match?
Jaro-Winkler compares letters by position, so reversed words such as Smith, Jonathan and Jonathan Smith score lower than a spelling slip. Try sorting the words first or lower the threshold and check the result.
When should I use Levenshtein instead?
Use it when you want a plain count of edits, such as for product codes or addresses. The Edits column shows how many insertions, deletions and changes separate the matched pair.
What happens to items that are left over?
Items in List A without a partner show why, either below the threshold or because their best match was taken. Items in List B that were never chosen are listed in a second table.
Does it use a machine learning model?
No. Both measures are fixed formulas on the letters, so the same inputs always give the same scores and you can check any score by hand.