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. Tom OBrien and Thomas O Brien. 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 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
Showing the first 400 changes. 0 more are in the audit log download.
Duplicate clusters
Merge or keep both
Want this on bigger files, on a schedule, with your team?
Saved recipes, scheduled cleans and shared seats are part of the paid plans. Start with your email and we will send you a code.
3. Take the result
The downloads work without an email. The cleaned CSV contains only the changes you approved.
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.
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 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 is two months free. There is no free plan, and no card is needed to use the browser demo above.
Yearly billing is two months free.
Switch to yearly and two months are free.
Analyst
One ops person or analyst with files to clean.
$49$59/mo
Billed $590 a year Billed monthly
- 50,000 rows a month
- Files up to 25MB
- 1 seat
- Fuzzy matching and entity resolution
- Reviewable diff and audit log export
- 3 saved cleaning recipes
- Email support
Team
RecommendedA RevOps or marketing ops team sharing the work.
$166$199/mo
Billed $1,990 a year Billed monthly
- 250,000 rows a month
- Files up to 100MB
- 5 seats
- Everything in Analyst
- Unlimited saved recipes
- Scheduled recurring cleans
- CRM connectors (Salesforce, HubSpot)
- Priority email support
Business
A data team cleaning for several departments.
$499$599/mo
Billed $5,990 a year Billed monthly
- 1,500,000 rows a month
- Files up to 500MB
- 20 seats
- Everything in Team
- API access
- Roles and permissions
- Priority email support
Enterprise
A head of data who needs it defensible across the company.
Talk to sales
Custom terms, invoicing and PO
- Unlimited rows and custom file sizes
- Unlimited seats
- Everything in Business
- SSO (SAML / Okta)
- Custom data retention
- DPA on request
- Named support contact
- Invoicing and PO
- Named onboarding
A row is one data line in a file you process, not counting the header. The browser demo is free to use and is not a plan: it reads CSV and TSV files up to 5MB on your own machine.
Related pages
- Entity Resolution for Customer and Company Records
- Data Deduplication Tools That Match More Than Exact Values
- CRM Data Cleansing Before a Migration or an Import
- Data Quality Tools: How to Compare Them Before You Buy
- Data Cleaning Software for CSV and Spreadsheet Files
- Data Hygiene for Contact Lists and CRM Records
- Excel Data Cleaning Without Formulas or Macros
- Data Cleaning Services vs Doing It In House
- Address Standardization for Shipping and Billing Files
- Salesforce Deduplication on the Export, Before It Goes Back
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.