Clean a file

Why You Should Keep an Audit File of the Duplicates You Remove

Deleting duplicates feels great — until someone asks a question you cannot answer. “Why did Mrs. Chen stop getting our mail?” “This client had two accounts last spring. Where did the other one go?” If the rows you removed are simply gone, you have no answer. You have a cleaner list and a hole in your memory.

An audit file closes that hole. It is a simple list: each row you removed, the group it belonged to, the row that survived, and the reason it was merged. It turns a delete into a decision on record. This guide explains what an audit file holds, the four jobs it does for you, and how long to keep it.

Think of it as the difference between shredding a document and filing it. Filing takes a shelf. Shredding takes your proof. Records rules in many fields exist for just this reason — a point the IRS and the FTC both make, in their own ways, in the sources at the end of this guide.

The audit file costs you nothing but a download. It is small. It writes itself when you use a tool that makes one. The cost sits on the other side: the first time you need a fact that a past cleanup threw away, the bill comes due at once. This guide is here so you never have to pay it.

What an audit file holds

A good audit file is plain and complete. For every removed row it holds: the full row as it was, the ID of its group, the row that survived the merge, and the reason — “same email,” “name and phone match,” “exact copy.” It also holds the date of the cleanup and the settings used: which columns were matched, and how close a pair had to be to count.

PieceWhy it matters
The removed row, in fullNothing is lost; any fact can be recovered
Group ID and survivor rowYou can rebuild the group and undo the merge
The reason for the matchYou can judge the call later, with fresh eyes
Date and settingsYou can repeat the same cleanup next time

DedupeCSV writes this file for you on every run: a duplicates audit CSV next to the clean CSV and a short summary. Clean rows plus audited removals always equal your starting count. That one line of math is the fastest honesty check in data work — if it ever fails, you stop and find out why before the clean file goes anywhere.

Job one: it makes merges undoable

Every cleanup has at least one call you would take back. A pair that looked like one person turns out to be two. A phone you parked turns out to be the live one. With no audit file, the fix is a plea: ask the client, rebuild from old mail, guess. With an audit file, the fix is a lookup: find the group, pull the removed row, restore its facts.

Diagram of an audit file: rows listing each removed record, the reason it was removed, and the row that was kept.AUDIT FILE — WHAT WAS REMOVED, AND WHYrow 18 · same email · kept row 4row 51 · name + phone match · kept row 9row 77 · exact copy · kept row 30every changecan be checked
An audit file: every removal, its reason, and the row that was kept — all on record.

Undoable work is calmer work. Teams that keep an audit file dedupe more boldly and more often, because a wrong call costs minutes, not a client. Teams that delete in the dark dedupe rarely and timidly, because each run feels like a cliff edge. The audit file is what turns dedupe from a rare, scary event into a plain routine.

Job two: it answers hard questions

Questions come from all sides. A client asks why their mail stopped. A partner asks why their list shrank in your hands. A boss asks how the list got 12% smaller and whether the number is real. Your future self asks what on earth you were thinking last March. The audit file answers all of them with facts: this row, this group, this reason, this date.

It also answers the mail questions. When someone says they never got an offer, you can check whether their row merged, which address survived, and whether the other address is the one they check. Our guide on how duplicates hurt email campaigns shows why those answers matter for trust as much as for data.

Keep the audit file with the clean file and the source file, in one folder, named with the cleanup date. An audit file you cannot find is no better than none. Folder discipline sounds dull. It is also the whole trick — three files, one folder, one date, every time.

Job three: it keeps you honest about the method

An audit file shows your method, not just your results. Anyone can read the reasons and see whether the matches were sound. Weak calls stand out: a group merged on a lone name match, a huge group swallowing a whole street. That visibility keeps the next cleanup honest too, because you know the reasons will be read — if only by you, next quarter, with fresh eyes.

The summary half of the audit — counts and settings — matters as much as the rows. It is what lets you repeat a good cleanup and compare two runs fairly. In DedupeCSV the summary is a small file with the row counts and the exact settings used, and a saved recipe holds those settings for next time. The plans set how many recipes you can keep; see the pricing page for the tiers.

Honesty about method also protects you when numbers get quoted. If you tell your team the list shrank by 800 true duplicates, the audit file is the proof. If a vendor or a tool claims a big cleanup, ask for their audit file. No audit file, no proof. That one question sorts careful tools from blunt ones faster than any feature list.

The audit file also guards your own past calls from drift. Six months on, no one recalls why the bar for a merge was set where it was. The file's settings line says. When a new hand wants to loosen the rules “to catch more,” the old file shows what the old rules caught — and what a looser run would risk. Method choices stop being taste and start being record.

Job four: it supports your record duties

Many teams must keep records of what they held and what they changed. Tax records must support what you file. Client records may need to show consent and its changes. Even without a formal rule, “we deleted it and kept no note” is a weak place to stand when a dispute comes. An audit file is a small, steady habit that covers a lot of ground: it shows what you had, what you did, and why.

How long should you keep it? A fair rule: at least as long as you keep the clean list it came from, and longer if your field has record rules — the IRS note in the sources below gives the flavor for tax records. Audit files are small. Storage is cheap. Regret is not. When in doubt, keep it. Deleting an audit file is the one delete that should always wait.

One caution: the audit file holds the same personal data as your list — emails, phones, names. Guard it like the list itself. Keep it in the same safe place, share it with the same care, and do not mail it around. An audit file is a record for you and your team, not a report for the world.

Access is worth one rule of its own: the audit file lives where the list lives, with the same locks. Not on a shared drive the whole firm can open. Not in a chat thread. When a cleanup ends, the folder is closed and put away like any file that holds client data. The record habit and the safety habit are the same habit seen from two sides.

What a good audit habit looks like, week to week

The habit is small. Each cleanup, save three files in one folder: the source, the clean list, and the audit file. Name the folder with the date and the list name. Add one line to a log: date, rows in, rows out, rows removed, who ran it. That is all. Five minutes, tops. The habit pays out the first time a hard question lands.

Make the log a shared one, where the team can find it. A log in one person's mail is a log that leaves when they do. The log is also your proof that the routine runs: when a boss asks if the list is kept clean, you do not argue. You open the log. Dates and counts beat claims, in data work as in the rest of life.

The audit file also makes the cleanup itself better. When you know each merge will sit on record with its reason, you pick match columns with more care. You set the bar for a merge a touch higher. That care is the same care the safe dedupe method is built on: review first, delete on record, keep the counts honest.

Once a year, spot-check an old audit file. Pick five groups at random. Do the merges still look right? Did any “removed” fact turn out to be one you needed? The answers tune your rules for next year. An audit file is not just a shield for the past. It is a teacher for the next run — if you open it now and then.

And when you switch tools, take the audit files with you. They belong to your records, not to the tool. A new tool should start from your clean list and your past audit files, so the chain of “what changed, and why” never breaks. A break in that chain is where bad data stories start: no one can say when a fact changed, so no one trusts any of them.

Small habits, kept, beat grand plans. You do not need a data team to run this one. You need a folder, a log, and the rule that no cleanup runs without its audit file. Start with the next run. Every run before it is the past. Every run after it is on record.

When a tool gives you no audit file, be wary

Many quick dedupe tools delete rows and show you a smaller file. Some cannot even say how many rows they removed. That silence should worry you. It means the work cannot be checked, repeated, or undone. For a throwaway list, fine. For a client list, a member list, or anything tied to money or consent, it is not fine. The audit file is the line between cleaning and gambling.

So make it a rule for any tool you use, ours included: no audit file, no run. DedupeCSV's three-file output — clean list, audit file, summary — exists for this reason, and you can see the three files on a free run with the sample data before you trust it with yours.

Delete the rows, keep the story

A clean list tells you who is in it. An audit file tells you what happened to everyone who left, and why. Keep both, and your cleanup is a record you can defend — to a client, to a boss, to an auditor, and to yourself. Delete without one, and every question about the past becomes a guess.

The audit habit pairs with the merge habit: choosing which record to keep when duplicates disagree shows how the losing facts end up parked in the audit file instead of being lost.

Keep the three files together — source, clean, audit — and your list gains a past you can trust. That trust is worth more than the few rows any single cleanup removes.

Sources and further reading


← All guides