Levenshtein / Jaro-Winkler String Similarity

Free string similarity calculator: compare two strings with Levenshtein and Jaro-Winkler. Runs in your browser, no upload, no login, no size limit.

published catalog-matchingapi-first

This string similarity calculator scores how close two strings are using two complementary algorithms — Levenshtein edit distance and Jaro-Winkler — so you can see exactly why a product title, brand, or part number does or does not match. It is built for engineers tuning fuzzy-match thresholds across MRO, CPG, furniture, and industrial-distribution catalogs.

Levenshtein / Jaro-Winkler String Similarity

The interactive version of this tool is coming soon. It will run entirely in your browser — no login, no upload limits.

Planned tool: string similarity calculator

Need this now? Talk to Claro

What it checks

Paste two strings (or a column of pairs) and the calculator returns, for each pair:

  • Levenshtein distance — the raw count of single-character insertions, deletions, and substitutions needed to turn string A into string B.
  • Normalized Levenshtein similarity — distance rescaled to a 0–1 (or 0–100%) score, so "M8 x 20" vs "M8x20" and a 60-character description are comparable on the same axis.
  • Jaro similarity — a 0–1 score that rewards matching characters and penalizes transpositions, tuned for short strings like brand names and SKUs.
  • Jaro-Winkler similarity — Jaro with a prefix bonus, so "Hilti" vs "Hilty" and "3M Scotch" vs "3M Scotch-Brite" score higher when the leading characters agree.
  • Side-by-side character diff — a plain-language view of which characters were added, removed, or swapped.
  • A pass/fail call against your threshold — set a cutoff (for example 0.90) and each pair is flagged match, review, or no-match.

How it works

Levenshtein distance counts the minimum number of single-character edits between two strings; it is precise for typos and truncation ("Bearing 6204-2RS" vs "Bearing 6204 2RS") but treats every edit as equally costly, so word reordering and long descriptions can score low even when the products are identical.

Jaro and Jaro-Winkler take a different view: they measure the proportion of matching characters within a sliding window and penalize transpositions, then Winkler adds a bonus when the strings share a common prefix. That prefix weighting makes Jaro-Winkler well suited to manufacturer names, part numbers, and short product titles, where the first few characters carry most of the identity. Running both lets you see when the two algorithms disagree — usually the signal that a pair needs human review or a different matching key (a GTIN or MPN) instead of free text.

These string scores are one signal, not a verdict. Production-grade catalog matching blends string similarity with identifiers, attributes, units, and category context, then attaches a confidence score and provenance to every merge decision — which is what keeps fuzzy matching reliable as catalogs grow.

Why a string similarity calculator is only step one

A single similarity score answers “how alike are these two strings?” — not “are these the same product?” Two genuinely different items ("Cable 3x1.5mm CU" and "Cable 3x2.5mm CU") can score above 0.90, while two records for the same SKU can score low because one supplier abbreviates and another spells things out. Use this tool to calibrate thresholds and understand the algorithms, then graduate to a matching pipeline that weighs multiple fields and stays auditable.

FAQ

What is the difference between Levenshtein and Jaro-Winkler?

Levenshtein counts the minimum single-character edits (insert, delete, substitute) between two strings and weights every edit equally. Jaro-Winkler measures the share of matching characters and transpositions, then adds a bonus for a shared prefix. Levenshtein is strong for typos and truncation; Jaro-Winkler is strong for short strings like brand names, SKUs, and part numbers where the leading characters matter most.

What is a good string similarity threshold for product matching?

There is no universal number — it depends on your data and your tolerance for false matches. Many teams treat normalized scores above roughly 0.90 as auto-match candidates, 0.80–0.90 as review, and below 0.80 as no-match, then tune from a labeled sample. Always validate against known pairs rather than picking a cutoff blind, and pair string scores with identifier or attribute checks before merging.

Can I use this to deduplicate a whole catalog?

This calculator is for comparing strings and calibrating thresholds, not for running a full catalog at scale. Deduplication needs blocking (to avoid comparing every row to every other row), multiple weighted fields, and reversible merges with provenance. See the playbook on matching supplier catalogs and the guide on why fuzzy-match scripts break for the production picture.

Is my data uploaded anywhere?

No. The scoring runs entirely in your browser using client-side JavaScript. The strings you paste or the file you load are never transmitted to a server, stored, or logged, so you can safely test with real supplier or customer data.

Why do two algorithms sometimes disagree?

Because they model similarity differently. A reordered or abbreviated description can score low on Levenshtein (many edits) but high on Jaro-Winkler (shared prefix, similar characters), or vice versa. When the two disagree sharply, treat the pair as a review case and lean on a stronger key such as a GTIN or MPN instead of free-text matching.