Data Matching

Jaro Similarity: How It Works, Examples & Free Calculator

Jaro Similarity: How It Works, Examples & Free Calculator

Definition

Jaro similarity

Jaro similarity measures how closely two strings match by comparing their characters and the order in which they appear. It returns a score from 0 to 1, where 1 means the strings are identical. It is particularly useful for comparing short values such as names.

Key Takeaways

  • Jaro Similarity measures how closely two strings match using character matches and transpositions.
  • It is particularly useful for short values such as names with minor spelling or typing differences.
  • A score of 1 means identical strings; higher scores indicate greater similarity.
  • A high Jaro score alone does not prove that two records represent the same person or organisation.
  • WinPure AdaptiveMatch™ enables no-code Jaro matching at individual-column level.
FREE MATCHING TOOL

Jaro Similarity Calculator

Compare two text values and instantly see how similar they are using the Jaro algorithm.

Try an example
0.944 Jaro similarity score
Very strong similarity

These values are highly similar.

Jaro measures similarity using matching characters and transpositions. It is particularly useful for comparing short text values such as names.

Matching characters 6
Transpositions 1
Difference Likely typo / transposition
Remember: A similarity score alone should not normally determine whether two real-world records represent the same entity. Production matching often combines multiple fields, algorithms, thresholds and business rules.
From one algorithm to intelligent matching

WinPure AdaptiveMatch™ can apply the most appropriate matching logic across names, addresses and other fields as part of a complete data matching workflow.

What Is Jaro Similarity?

Jaro Similarity is a string comparison algorithm used to measure how similar two pieces of text are. Rather than counting the number of edits needed to transform one string into another, as Levenshtein Distance does, Jaro looks at matching characters, their positions and character transpositions.

The algorithm produces a similarity score between 0 and 1:

1.0 means the two strings are identical.
Scores closer to 1.0 indicate greater similarity.
Scores closer to 0 indicate less similarity.

For example, the names MARTHA and MARHTA contain the same characters, but two appear in a different order. Jaro recognises that the strings are still highly similar and gives them a score of approximately 0.944.

Jaro Similarity example comparing MARTHA and MARHTA with matching characters and transposition

Jaro Similarity example: MARTHA and MARHTA contain six matching characters and one transposition, producing a similarity score of approximately 0.944.

This makes Jaro particularly useful for comparing short strings such as names, where spelling mistakes, misplaced characters and small variations are common.

In data matching and entity resolution, however, a high Jaro Similarity score does not necessarily mean two records represent the same person or organisation. It is best treated as one piece of matching evidence, potentially combined with other fields and comparison methods such as exact, fuzzy and phonetic matching.

How Does the Jaro Similarity Algorithm Work?

The Jaro Similarity algorithm compares two strings by looking at matching characters, how close those characters are to the same position, and whether any matching characters appear in a different order. It works in three main stages.

1. Find Matching Characters

First, Jaro identifies characters that appear in both strings. However, characters are only considered a match if they occur within a defined matching window.

The maximum distance is typically calculated as:

matching distance

This allows Jaro to recognise characters that have shifted slightly rather than requiring them to appear in exactly the same position. For example:

MARTHA
MARHTA

The T and H have changed position, but they are still close enough to be recognised as matching characters.

2. Count Transpositions. Next, the algorithm examines the order of the matching characters. When matching characters occur in a different order between the two strings, they contribute to the transposition count. Because displaced characters are encountered in pairs when the matched sequences are compared, the number of mismatches is divided by two.

In MARTHA and MARHTA, the switched T and H result in one transposition.

3. Calculate the Jaro Similarity Score. The matching characters and transpositions are then combined using the Jaro formula:

jaro similarity formula

For MARTHA and MARHTA, each string contains six characters. All six characters match within the matching window, so m = 6. The T and H appear in a different order, producing two mismatched positions in the matched sequences. Jaro divides this count by two, giving t = 1 transposition.

Jaro Similarity = (6/6 + 6/6 + (6 − 1)/6) ÷ 3 = 0.9444…

Rounded to three decimal places, the Jaro Similarity is 0.944.

The result is high because all six characters match and only their ordering differs slightly. This ability to tolerate small positional changes is one reason Jaro can be useful for name matching, customer deduplication, record linkage and entity resolution, particularly when character transpositions or minor spelling variations are expected.

Jaro Similarity vs Jaro Distance

The terms Jaro Similarity and Jaro Distance are sometimes used interchangeably, but they can describe opposite ways of expressing the relationship between two strings.

Jaro Similarity measures how similar two strings are. It produces a value between 0 and 1, where:

1 = identical strings
0 = no similarity
A higher score = greater similarity

For example, the Jaro Similarity between MARTHA and MARHTA is approximately 0.944.

When Jaro Distance is defined as the complement of the similarity score, it is calculated as:

Jaro Distance = 1 − Jaro Similarity

Using the same example:

1 − 0.944 = 0.056

In this representation, a lower distance means the strings are more similar, while a higher distance indicates greater difference.

ComparisonJaro SimilarityJaro Distance
Identical strings1.0000.000
MARTHA / MARHTA0.9440.056
Increasingly different stringsLowerHigher
Completely dissimilar*0.0001.000

*Assuming distance is defined as 1 − similarity.

Why the Terminology Can Be Confusing

Some software libraries and technical documentation use the term “Jaro distance” when referring to what is mathematically a similarity score. Others define distance explicitly as 1 − Jaro Similarity. For this reason, when implementing Jaro in a data matching system, it is important to check the definition used by the particular library or platform rather than relying on the function name alone. Throughout this guide, Jaro Similarity refers to the 0-to-1 measure where higher values indicate greater string similarity.

Jaro Similarity vs Jaro-Winkler Similarity

Jaro-Winkler Similarity is an extension of Jaro Similarity. Both algorithms compare matching characters and transpositions, but Jaro-Winkler adds extra weight when two strings share the same characters at the beginning of the string.

This makes Jaro-Winkler particularly useful for comparing names and other short strings where a common prefix can be significant.

For example, consider:

MARTHA
MARHTA

Jaro already gives these strings a high similarity score because most characters match and there is only a small change in their order. Jaro-Winkler can increase the score further when the strings also share a common prefix. The main difference can be summarised as:

AlgorithmHow it worksParticularly useful when
Jaro SimilarityConsiders matching characters and transpositionsCharacter position and ordering are important
Jaro-Winkler SimilarityStarts with Jaro and adds a prefix adjustmentMatching characters at the beginning of a string deserve additional weight

The Jaro-Winkler score is commonly expressed as:

Jaro-Winkler = Jaro + prefix adjustment

More formally:

JW = J + (ℓ × p × (1 − J))

where J is the Jaro Similarity, ℓ is the length of the common prefix (typically capped at four characters), and p is the prefix scaling factor, commonly 0.1.

Which Should You Use?  Neither algorithm is universally better. The appropriate choice depends on the characteristics of the data.

Jaro can be useful when you want similarity to be based primarily on character correspondence and transpositions without giving special importance to the beginning of the string. Jaro-Winkler can be useful when matching prefixes are particularly meaningful. This is one reason it is frequently associated with person-name matching.

For data matching and entity resolution, the choice does not necessarily need to be applied universally across every field. Different columns may benefit from different algorithms depending on their data type and characteristics. This is the principle behind adaptive data matching, where algorithms can be selected according to the field being compared rather than relying on a single similarity measure for the entire record.

Jaro vs Levenshtein Distance

Jaro Similarity and Levenshtein Distance can both be used to compare strings, but they measure similarity in fundamentally different ways. Levenshtein Distance measures the minimum number of insertions, deletions and substitutions required to transform one string into another. Jaro, by comparison, focuses on matching characters, their relative positions and transpositions.

A useful way to think about the difference is:

Levenshtein asks: How many edits are required to turn one string into the other?
Jaro asks: How many characters match, and how closely do their positions and ordering correspond?

For example, consider a simple typing error:

String 1: MARTHA
String 2: MARHTA

With Levenshtein Distance, changing MARTHA into MARHTA requires two character substitutions, giving a distance of 2 under standard Levenshtein. Jaro recognises that the same characters are present and that T and H have simply changed position, producing a high Jaro Similarity of approximately 0.944.

FeatureJaro SimilarityLevenshtein Distance
MeasuresCharacter matches and transpositionsInsertions, deletions and substitutions
Raw result0 to 1 similarity scoreNumber of edits
Identical strings1.00
Handles transpositionsExplicitly considers ordering/transpositionsStandard Levenshtein does not treat a transposition as one edit
Particularly useful forShort strings and namesGeneral spelling and edit differences

Which Is Better for Data Matching?

Neither algorithm is inherently better. They respond differently to different types of variation.

Levenshtein can be effective when differences are caused by missing, additional or substituted characters, such as:

Jennifer → Jenifer

Jaro can be particularly useful where strings contain many of the same characters but some occur in slightly different positions, such as:

MARTHA → MARHTA

This distinction matters in real-world data matching because different fields — and even different types of errors within the same field — may benefit from different comparison methods.

Rather than selecting Jaro or Levenshtein as a universal matching algorithm, a matching configuration can combine them with exact, fuzzy and phonetic algorithms and evaluate the resulting evidence across multiple fields. This allows the comparison method to reflect the characteristics of the data rather than forcing every value through the same algorithm.

When Is Jaro Similarity Useful?

Jaro Similarity is particularly useful for comparing short text strings where characters may be correct but slightly misplaced, reordered or affected by minor typing errors. This makes it well suited to many data matching, deduplication and record linkage tasks.

Common use cases include:

  • Person names – identifying variations caused by spelling mistakes or transposed characters.
  • Customer and contact records – comparing names across CRM, ERP and other business systems.
  • Data deduplication – helping identify potentially duplicated records containing small textual differences.
  • Record linkage – comparing records from different datasets when no reliable unique identifier is available.
  • Entity resolution – providing string-level evidence when determining whether records may represent the same real-world entity.
  • Data migration – comparing source and destination records when values are similar but not identical.

For example:

Michael Thompson
Micheal Thompson

A strict exact comparison would treat these as different values. Jaro can recognise the high degree of character similarity despite the transposition in the first name.

Jaro is generally most useful when applied to relatively short strings where character position is meaningful. It does not understand the semantic meaning of the values being compared, nor does a high Jaro score prove that two records represent the same entity. For this reason, in production data matching, Jaro Similarity is often more valuable as one component of a broader matching rule. A name might be compared using Jaro while an email address is matched exactly, an address uses fuzzy matching and a telephone number is compared using normalised values. Combining evidence across multiple fields can provide substantially more confidence than relying on the Jaro score of a single field alone.

Limitations of Jaro Similarity

Jaro Similarity is useful for comparing short strings, but it has several limitations.

  • It measures similarity, not identity. Two values can have a high Jaro score without representing the same person, organisation or entity.
  • It does not understand context or meaning. Jaro compares characters and their positions; it does not know that Bob may refer to Robert, for example.
  • It is not phonetic. Names that sound alike but are spelled differently may be better handled by algorithms such as Soundex or Double Metaphone.
  • Thresholds matter. A threshold that is too high may miss genuine matches, while one that is too low can increase false positives.

For these reasons, Jaro is generally most effective as one piece of matching evidence. It can be combined with exact, fuzzy and phonetic comparisons across multiple fields to make more reliable matching decisions.

Why Jaro Similarity Shouldn’t Decide a Match Alone

A high Jaro Similarity score shows that two strings are similar, but it does not prove that two records represent the same person or entity.

Consider these two customer records:

Jaro Similarity combined with fuzzy and exact matching in an AdaptiveMatch matching decision

Together, these comparisons provide much stronger matching evidence than the Jaro score alone.  This is particularly important in entity resolution, where similar names can belong to different people and genuine matches can contain differences across several fields.

Using Jaro Similarity in Adaptive Data Matching

In real-world data matching, using the same algorithm for every field is rarely the best approach. Different types of data contain different kinds of variations and therefore benefit from different comparison methods. For example, a matching configuration might use:

First Name → Jaro Similarity
Last Name → Jaro-Winkler
Address → Fuzzy Matching
Postcode → Exact Matching
Phone → Exact / Normalised Matching

With WinPure AdaptiveMatch™, mapped fields can be analysed automatically and assigned appropriate algorithms, weights and matching options based on the type and characteristics of the data. Users can start with the recommended configuration or manually adjust the algorithms and thresholds where greater control is required. This allows Jaro Similarity to be used where it adds value, rather than applying a single algorithm across every field.

Jaro Similarity Thresholds

A Jaro Similarity score ranges from 0 to 1, with higher values indicating greater similarity between two strings.  As a general illustration:

Jaro ScoreInterpretation
1.00Identical strings
0.90–0.99Very high similarity
0.80–0.89High similarity
0.70–0.79Moderate similarity
Below 0.70Lower similarity

These ranges should not be treated as universal matching thresholds. The appropriate threshold depends on the type of data, its quality and the consequences of false matches or missed matches. For example, a 0.90 name similarity may provide useful evidence, but it should normally be considered alongside other fields such as address, postcode, email or telephone number. In an adaptive matching process, thresholds can therefore be configured alongside algorithms, field weights and other matching criteria rather than using a single Jaro score to determine the entire match.

Performance and Computational Considerations

Jaro Similarity is relatively efficient for comparing individual strings, particularly short values such as names. However, the challenge in large-scale data matching is often the number of record pairs that need to be compared, rather than the similarity calculation itself. For example, comparing every record against every other record in a dataset of one million records would create an impractical number of potential comparisons. Production matching systems therefore use techniques such as blocking, indexing and candidate selection to reduce the number of record pairs requiring detailed comparison. The algorithm used for each field is only one part of matching performance. Candidate generation, data preparation, rule configuration and the number of fields being compared can all have a significant impact on processing time and scalability.

Jaro Similarity in WinPure Clean & Match

Jaro Similarity is available within WinPure AdaptiveMatch™ as one of several algorithms that can be applied at the individual column level. Rather than using the same comparison method across every field, AdaptiveMatch can analyse mapped columns and recommend suitable algorithms, weights and matching options based on the type and characteristics of the data.

For example, Jaro might be selected for a name field, while another field uses Levenshtein, Jaro-Winkler, WinPureFuzzy™, phonetic matching or an exact comparison. Users can begin with the automatically generated configuration or manually adjust the algorithms and thresholds when greater control is required. This allows Jaro Similarity to form part of a multi-field matching strategy, rather than relying on a single similarity score to determine whether records match.

A similar name is only the start

See how WinPure combines evidence from names, addresses and other fields to identify and review potential matches.

Start Free Trial

Frequently Asked Questions

Written by

Team WinPure

The WinPure Team shares official updates on our products, features, and company news. From new releases and enhancements to behind-the-scenes developments, this space keeps you informed on how WinPure continues to deliver secure, reliable, and innovative data quality solutions.

Have a Data Quality Problem to Solve?

Talk to our team about your data, your requirements, and how WinPure could support your project.

Talk to Our Team

Get practical data quality guidance in your inbox

Receive our latest articles on data cleansing, matching, deduplication, entity resolution, and golden records.

Keep Reading

Start Your 30-Day Trial!

Secure desktop tool. No credit card required.

  • Full-feature access for 30 days
  • Runs on your own machine, data stays local
  • No credit card required
  • Onboarding support from our data team