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.
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.
2. Review every change
Nothing approved yet.
Nothing is applied to your file until you approve it, and your original file is never modified.
Proposed changes
Original Proposed
Duplicate clusters
Merge or keep both
Want this on every file, and on bigger ones?
The free try is one file of your own. The Analyst plan cleans as many files as you need, up to 25MB and about 100,000 rows each, for $59 a month or $348 a year.
3. Take the result
The cleaned CSV contains only the changes you approved. The log lists every change, approved or not.
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.
A cluster the matcher found in the sample CRM export
| Row | Name | Company | 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.
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 resolutionThe 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.
Questions about fuzzy matching
Can Excel do fuzzy matching?
Is fuzzy matching accurate enough to merge records automatically?
Can I change how strict the matching is?
Does fuzzy matching work without an email column?
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-serveOne person with files to clean, as many as they like.
$29$59/mo
Billed $348 a year Billed 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)
- 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.
Related pages
- Entity Resolution Software for Customer Records
- Data Deduplication Tools for CSV and Excel
- CRM Data Cleansing Before Import or Migration
- Data Quality Tools and Software Compared
- Data Cleaning Software for CSV and Excel Files
- Data Hygiene for Contact Lists and CRM Records
- Excel Data Cleaning Tool Without Formulas
- Data Cleaning Services vs Doing It In House
- Address Standardization and Cleansing Software
- Salesforce Deduplication and Data Cleaning Tool
- HubSpot Deduplication to Merge Duplicate Contacts
- Zoho CRM Deduplication to Merge Duplicate Contacts
- Pipedrive Duplicate Contacts Deduplication Tool
- NetSuite CSV Import With Clean and Deduped Files
- Data Scrubbing Software and Tools for CSV Files
- Mailchimp Duplicate Contacts Across Audiences
- Constant Contact Duplicate Contacts and Emails
- Klaviyo Duplicate Profiles and Merge Profiles
- ActiveCampaign Duplicate Contacts and Merge Contacts
- QuickBooks Online Merge Vendors and Customers From One List
- Merge Customers in QuickBooks Desktop and Merge Vendors
- Salesforce Merge Accounts in Bulk from One Reviewed List
- Salesforce Merge Contacts and Merge Leads From One Reviewed List
- HubSpot Merge Contacts and Companies From a Reviewed List
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.