induwara.lk
induwara.lkAI · String metrics

Jaro–Winkler Similarity Calculator

Compare two strings and get the Jaro similarity, the Jaro distance and the Jaro–Winkler score, with the matching characters, transpositions, common prefix and substituted formula laid out. No signup, nothing uploaded — it all runs in your browser.

By Induwara AshinsanaUpdated Jul 9, 2026
Jaro–Winkler similarity
6/128

Any text, 1–128 characters.

6/128

Compared character by character against A.

Examples
Jaro–Winkler similarity
0.9611
96.11% · range 0–1
Jaro similarity
0.9444
94.44% · before prefix bonus
Jaro–Winkler distance
0.0389
1 − JW · Jaro dist 0.0556
Interpretation
Very likely a match
Jaro = (1/3)( 6/6 + 6/6 + (61)/6 ) = 0.9444
JW = 0.9444 + 3·0.1·(1 − 0.9444) = 0.9611
Jaro distance = 1 − 0.9444 = 0.0556 · JW distance = 0.0389

Cross-check. The primary Jaro score is 0.9444; recomputing the transpositions from the matched-character substrings independently gives 0.9444. They reconcile, as they must.

Character alignment

A
martha
B
marhta

Derivation

TermValue
Lengths |A|, |B|6, 6
Matching window2
Matching characters m6
Transpositions t1
Common prefix ℓ3
Scaling factor p0.1

Method: Jaro (1989) matching window + transpositions, then Winkler (1990) prefix bonus JW = Jaro + ℓ·p·(1 − Jaro). Comparison is over Unicode code points; no diacritic folding. Nothing leaves this page.

How it works

Jaro–Winkler similarity scores how alike two strings are on a 0-to-1 scale, tuned for short strings such as names. It builds on the Jaro similarityfrom M. A. Jaro's 1989 record-linkage work and adds W. E. Winkler's 1990 bonus for a shared leading prefix. Identical strings score 1; strings with no characters in common score 0.

Jaro similarity rewards common characters and penalises those that are out of order. Two characters count as a match only when they are equal and lie within a matching window of each other:

window = max(0, ⌊max(|s1|, |s2|) / 2⌋ − 1)

With the matching characters m and transpositions t counted, the Jaro score is:

Jaro = (1/3) · ( m/|s1| + m/|s2| + (m − t)/m )

A transposition is a pair of matched characters that appear in a different order in the two strings. You count them by taking the matched characters of each string in order, tallying the positions where the sequences disagree, and halving that tally — the count is always even. If m = 0, the Jaro score is defined as 0 rather than a divide-by-zero.

Winkler then boosts strings that agree at the start, since typos tend to fall later in a word. Let be the length of the common prefix, capped at 4, and p the scaling factor (default 0.1):

JW = Jaro + ℓ · p · (1 − Jaro)

The ceiling p ≤ 0.25 keeps the score at or below 1, because the largest prefix bonus is 4 × 0.25 = 1 of the remaining gap. Setting p = 0 collapses Jaro–Winkler back to plain Jaro. The Jaro distance is 1 − Jaro and the Jaro–Winkler distance is 1 − JW. This tool implements the standard prefix bonus with no boost threshold — the most widely cited definition — and reproduces the published reference values for MARTHA/MARHTA, DWAYNE/DUANE and DIXON/DICKSONX exactly.

Worked examples

MARTHA vs MARHTA — the canonical textbook pair

  1. Lengths 6 and 6; window = max(0, ⌊6/2⌋ − 1) = 2
  2. All 6 characters match ⇒ m = 6
  3. Matched order M A R T H A vs M A R H T A differ at 2 positions ⇒ t = 1
  4. Jaro = (6/6 + 6/6 + (6−1)/6) / 3 = 0.9444
  5. Prefix MAR = 3 (T ≠ H); JW = 0.9444 + 3·0.1·(1 − 0.9444) = 0.9611

DWAYNE vs DUANE — Winkler's own example (different lengths)

  1. Lengths 6 and 5; window = max(0, ⌊6/2⌋ − 1) = 2
  2. Matches D, A, N, E ⇒ m = 4 (W and Y find no partner)
  3. Matched order D A N E vs D A N E agree ⇒ t = 0
  4. Jaro = (4/6 + 4/5 + 4/4) / 3 = 0.8222
  5. Prefix D = 1 (W ≠ U); JW = 0.8222 + 1·0.1·(1 − 0.8222) = 0.8400

abc vs xyz — the zero-similarity edge case

  1. Lengths 3 and 3; window = max(0, ⌊3/2⌋ − 1) = 0
  2. No characters match within the window ⇒ m = 0
  3. By definition Jaro = 0, and the prefix bonus cannot lift a zero score
  4. Jaro = 0.0000, Jaro–Winkler = 0.0000 → No similarity

Frequently asked questions

Sources & references

The formulas on this page were last cross-checked against these sources on 2026-07-09. Jaro–Winkler is a fixed algorithm definition, so the tool needs no rate or schedule updates — only the reference examples are periodically re-reconciled.

Related tools

Rate this tool
Be the first to rate

Comments & feedback

Spotted a bug or want an improvement? Tell us — our team reviews every comment, and good ideas get built. Comments are public and anonymous.

Found a bug, edge case, or want to suggest an improvement?

Email me at [email protected] — most fixes ship within 24 hours.