How DedupeCSV works
Four steps, no black box. At every step you can see what the tool decided and change it.
Step 1 — Upload and profiling
Drop in a CSV, TSV or XLSX file, or paste CSV text. The parser detects the delimiter (comma, semicolon, tab or pipe), the text encoding, and quoted fields with embedded commas or line breaks. Rows that do not have the same number of fields as the header are reported with their line number instead of being silently skipped, so you can fix them at the source.
You then see a profile: row and column counts, how full each column is, how many distinct values it has, and what it looks like (email, phone, number, date or text). Columns that look like identifiers are pre-selected as match keys.
Step 2 — Matching
Normalization runs first: trimming spaces, folding case, and format-aware cleanup for emails (case, +tags, Gmail dots), phone numbers (digits, US country code) and company names (Inc / LLC / Ltd suffixes). Identifier columns are always treated as text — a code like 00127 never loses its leading zeros.
Exact matching groups rows whose normalized key columns are identical. Fuzzy matching then compares likely candidates — grouped by blocking keys such as email, phone, name prefix and name sound — and scores each pair with name-aware similarity (Jaro-Winkler, edit distance and token overlap). Pairs at or above your threshold join a cluster. Blocking keeps even a 200,000-row file fast, because rows are only compared with plausible partners.
Step 3 — Review and merge
Each cluster shows its similarity score, whether it matched exactly or fuzzily, and the reasons (“Email matches exactly”, “Last Name is similar (93%)”). High-confidence clusters can be merged as-is; the rest wait for your call. You can change the surviving row, split a row out of a cluster, or mark a whole cluster “not duplicates”.
Merging keeps one survivor row — first, last, or most complete — and can fill its empty fields from the other rows in the cluster, so a phone number that exists only on a duplicate is not lost.
Step 4 — Download, audit, repeat
You get three files: the clean CSV (in your original delimiter), a duplicates audit CSV that lists every removed or merged row with its cluster ID and the reason, and a summary JSON with counts and the exact settings used. Clean rows plus audited removals always equal your original row count.
On paid plans you can save the whole configuration — key columns, normalization, threshold, merge rule — as a recipe and rerun it on next month’s export in one click. You can also reconcile a new list against a master list to get just the added, missing and changed records.