Skip to content
DataUntangler

Fuzzy matching that shows you every match before it merges

Fuzzy matching finds records that mean the same thing but are not spelled the same way. Acme Corp and Acme Corporation. Catherine Wallace and Katherine Wallace. DataUntangler runs that matching in your browser and lists every pair it found, so you decide what merges.

In-browser your file never leaves your computer

Every row proposed to you before it is applied

CSV log of what you approved and rejected

Clean a file
01 Try it on this page

Load a messy sample and watch it work

The same engine described below, running on your own machine. Nothing is uploaded and nothing is applied until you approve it.

1. Load a file

Your file is read on your own machine. Nothing is uploaded, so nothing can leak.

Or start from a messy sample

Status

Loading the sample file.

File: CRM contact export

Rows

--

Columns

--

Changes

--

Duplicate rows

--

Date formats

--

Blank or invalid emails

--

Load a file to see the diff

Drop a CSV or pick one of the messy samples. Every proposed change appears here as a line you approve or reject.

02 About fuzzy matching

Why exact matching misses most of your duplicates

An exact match compares two strings byte for byte. That catches the easy case and nothing else, because real data is entered by people. One row has a trailing space. One has the legal suffix. One was typed at a trade show booth by someone reading a business card upside down.

Fuzzy matching compares how similar two values are instead of whether they are identical. DataUntangler normalizes the value first (case, punctuation, accents, company suffixes such as Inc and Ltd), then scores what is left with edit distance and token overlap. Anything above the threshold is proposed as a match, with the score attached.

What the matcher compares

Email, exact after normalizing

Case and stray spaces removed first, so Jose.Munoz@Acme.com and jose.munoz@acme.com are one person.

Name plus company, normalized

Accents folded, punctuation dropped, legal suffixes removed, so Ferreira Group and Ferreira Group Ltd line up.

Name and company, fuzzy

Edit distance and shared tokens catch Markus Hall against Marcus Hall, or Watanabee against Watanabe.

A blocking key, for speed

Records are grouped by short prefixes before comparison, so a large file does not turn into every row compared against every other row.

Every match is a proposal, not an action

A matcher that merges on its own is a liability. The one time it is wrong, two real customers become one record and nobody can tell you which fields were lost.

DataUntangler groups the matched rows into a cluster, picks the most complete row as the one to keep, and shows you the whole cluster with the reason it matched. You merge it or you keep both. Whatever you decide is written into an audit log you can export as its own CSV. Resolving a whole cluster down to one record is entity resolution, running the same pass over a contact export is CRM data cleansing, and the data cleaning tool itself does both on the file you already have.

What the fuzzy matching tool catches and what it leaves to you

We put eight pairs through the engine, each pair as two rows with different email addresses so that only the name and company could connect them. Four were proposed as matches and four were not. The four it passed on are the useful part of the table, because they show where the threshold sits.

Row A Row B Result
Catherine Wallace, Brightwater Health Katherine Wallace, Brightwater Health Proposed, close name and company match
Liam Watanabe, Keystone Labs Liam Watanabee, Keystone Labs Inc Proposed, close name and company match
Elena Petrova, Vector Analytics E. Petrova, Vector Analytics Proposed, close name and company match
Ana Silva, Granite Bay Corp Ana Silva, Granite Bay Corporation Proposed, same name and company, different email
Robert King, Maple Street Bakery Bob King, Maple Street Bakery Not proposed, a nickname is not a typo
Tom OBrien, Summit Freight Thomas O Brien, Summit Freight Not proposed, short form plus a split surname
Grace Kim, Lakeside Realty Grace Kim, Lakeshore Realty Not proposed, the company names really differ
Jordan Blake, Pinecrest Media Jordan Blake, Redwood Capital Not proposed, same name at two companies

Every row of this table is the output of a real run of the matching engine. Each pair had two different email addresses.

The bottom four are the cases where an automatic merge does damage. Two people called Jordan Blake at two companies are two customers, and Lakeside Realty is not Lakeshore Realty. A matcher tuned loose enough to join Robert and Bob would also start joining those, so this one stays conservative and leaves nicknames for you to decide. When the same file also needs its formats repaired before matching, run it through data cleaning software in the same pass, and when the matches have to collapse into one record per customer, that step is data deduplication.

03 Read it off a real file

A cluster the matcher found in the sample CRM export

Row Name Company Email Matched on
10 Marcus Hall Ridgeline Partners marcus.hall@ridgeline.com Kept: most complete row
15 Markus Hall Ridgeline Partners LLC m.hall@ridgelinepartners.com Close name and company match

The emails are different, so an exact match finds nothing here. The names differ by one letter and the companies differ by a legal suffix.

04 Doing the matching by eye

What happens when the matching is done by eye

Sorting a column and reading down it works on a hundred rows. On ten thousand it fails quietly, and it fails in a way nobody notices until the number is challenged.

Entity resolution

The sort only groups what already agrees

Sorting by company puts two spellings side by side only when they start the same way. A missing accent, a leading The or a typo in the first word moves the row somewhere else entirely.

The judgement is never written down

You decided that two rows were the same person. Three weeks later the only record of that decision is a file that no longer contains one of them.

Two people give two answers

Near matches are judged case by case, so the same list cleaned twice keeps different rows and neither pass can be repeated.

What a scored match gives you instead

Every pair is compared by the same rule, scored, and shown with the reason it matched. You still decide, and the decision goes into a log you can export.

05 Before you run it

Questions about fuzzy matching

Can Excel do fuzzy matching?
Partly. Power Query has a fuzzy merge option and Microsoft publishes a Fuzzy Lookup add-in, both of which join two tables on similar values. Neither groups a single list into duplicate clusters for review, picks the most complete row, or keeps a log of which rows you merged.
Is fuzzy matching accurate enough to merge records automatically?
Not without review. Similar names at the same company are usually one person, but not always, and two people with the same name at different companies are never one. That is why every match here is a proposal with its reason attached, and nothing merges until you approve it.
Can I change how strict the matching is?
The browser demo uses one calibrated threshold that favors precision, so it proposes fewer matches rather than wrong ones. The paid plan uses the same threshold; what changes is that every file, not just one, goes through it.
Does fuzzy matching work without an email column?
Yes. Email is used when it is there because it is the strongest signal, but matching also runs on name and company alone.
06 What it costs

Plans for when the file is bigger than the demo

Yearly billing saves 50 percent. There is no free plan, and no card is needed to use the browser demo above.

Yearly billing saves 50 percent, half the monthly price.

Switch to yearly and save 50 percent.

Analyst

Self-serve

One person with files to clean, as many as they like.

$29$59/mo

Billed $348 a year Billed monthly

Buy Analyst, yearly Buy Analyst, monthly
  • Unlimited files
  • Files up to 25MB, about 100,000 rows
  • Exact and fuzzy duplicate detection
  • Dates, numbers, currencies, encoding and casing fixed
  • Every change reviewable before you download
  • Cleaned CSV and a change log, both downloadable
  • Runs in your browser: files never leave your machine
  • Email support

Enterprise

Several people on one invoice, a DPA on request, priced per seat.

$49$98/seat/mo

Billed $588 a seat a year, from 2 seats ($1,176) Billed monthly per seat, from 2 seats ($196)

Buy Enterprise, yearly Buy Enterprise, monthly
  • Everything in Analyst
  • Several people on one invoice
  • DPA on request
  • Invoicing and purchase orders
  • A named contact for support

Payment is by card through our payment provider, monthly or yearly, and you can cancel from your account at any time. The free try is one file of your own, up to 5MB, in the browser demo. Already paid? Sign in.

Clean the file, and be able to show what you changed

Try the demo on your own CSV first. It runs in your browser, it costs nothing, and no card is required.

No card required. Your file never leaves your computer.

Clean a file