Jaro-Winkler Similarity Calculator | Name Matching Scores With Full Breakdown
Score how similar two strings are on a 0 to 1 scale. This tool returns both the Jaro similarity and the prefix-weighted Jaro-Winkler similarity, and breaks the result down into matches, transpositions, common prefix, and matching window.
💡 About this tool
If you have ever tried to dedupe a CRM, reconcile two customer lists, or build a fuzzy autocomplete, you know exact matching is useless the moment someone types "Smyth" instead of "Smith". You need a number that says "these are 96% the same" so you can set a threshold and move on.
Jaro-Winkler is the metric most teams reach for on short strings and personal names: it tolerates transposed characters and rewards strings that agree at the start. This calculator does not just hand you a score. It exposes the moving parts (m matched characters, t transpositions, L common prefix) so you can see exactly why "MARTHA" vs "MARHTA" lands at 0.961, and tune your accept/reject threshold against your own data instead of guessing.
🧐 Frequently Asked Questions
What is the difference between Jaro and Jaro-Winkler? Jaro uses only the count of matching characters and transpositions. Jaro-Winkler adds a bonus that grows when the strings share a common prefix, which makes it stronger for personal names where typos rarely hit the first few letters.
When should I use Levenshtein instead? Levenshtein counts the minimum insertions, deletions, and substitutions, so it fits longer strings like full company names and addresses where every character carries equal weight. Reach for Jaro-Winkler on short names and prefix-heavy matching.
Why can the score go above 1.0? That happens when the scaling factor p is too large. Since p times the prefix length can exceed 1, the bonus overshoots. Winkler's standard p is 0.10, and 0.25 is the usual upper bound.
Is the comparison case sensitive? By default yes. Turn on the comparison option and "A" and "a" are treated as equal. Matching runs at the Unicode codepoint level, so surrogate pairs and emoji each count as one character.
What is the matching window?
It is how far apart two characters can sit and still count as a match. It equals floor(max(|A|, |B|) / 2) - 1; identical characters farther apart than that are not paired.
📚 Where this metric actually shows up
Jaro-Winkler came out of record linkage work at the US Census Bureau by Matthew Jaro and William Winkler, and it still quietly powers a lot of production systems. AML and sanctions screening lean on it because it handles transliteration variants of names from Arabic or Cyrillic scripts well, where a single character can shift but the overall name still matches. A common real-world pattern is to use Jaro-Winkler for the individual-name pass and a separate metric for long business entities, rather than forcing one algorithm across every field.