The Data Hygiene Playbook
Data hygiene is the set of recurring jobs that keep a revenue database usable: deduplication, normalisation, validation, enrichment refresh, suppression maintenance, decay management, and reconciliation. Each needs a schedule and a named owner, because hygiene is maintenance rather than a project.
- Seven jobs, each with a schedule and an owner. Anything without both will not happen.
- Deduplicate at creation, not nightly. Preventing a duplicate is trivial; merging one with history is not.
- Suppression lists are hygiene, and neglecting them is what causes visible embarrassment.
- If the database is already bad, triage by what is blocking a decision this quarter.
- Archive rather than delete. You will want the record of what you removed.
Hygiene is maintenance, not a project
The distinction matters because it determines how the work gets funded and staffed. A project has an end date, a budget, and a completion criterion. Data hygiene has none of those — it is closer to server maintenance, and treating it as a project is why the same cleanup gets commissioned every eighteen months.
The framing that works: seven recurring jobs, each with a schedule, a named owner, and an alert when it fails. The data quality standard defines what good looks like; this is the operational work that holds it.
The seven jobs
| Job | Frequency | Runs on | Fails when |
|---|---|---|---|
| Deduplication | At creation, plus weekly sweep | Match rules across email, domain, and name | Merged records lose activity history |
| Normalisation | Weekly | Titles, industries, company names, country codes | Free-text fields have no target vocabulary |
| Validation | At every entry point | Format, plausibility, domain existence | Only the web form is validated |
| Enrichment refresh | Per field TTL | Fields past their staleness window | One schedule applied to all fields |
| Suppression maintenance | Daily | Customers, open opps, bounces, unsubscribes, competitors | Lists are built once and never updated |
| Decay management | Quarterly | Records with no engagement and stale data | Records are deleted rather than archived |
| Reconciliation | Daily | Counts and key fields across systems | Nobody is alerted on divergence |
Deduplication done properly
The order of operations matters more than the matching algorithm.
- 01Match at creation, before the record exists
Preventing a duplicate costs nothing. Merging one that has three months of activity, two tasks, and an opportunity attached is slow, lossy, and occasionally destructive. Most systems support creation-time matching and most teams leave it off.
- 02Use layered match rules
Exact email, then normalised email ignoring plus-addressing and dots, then domain plus normalised name, then fuzzy name within a domain. Each layer catches what the previous one misses.
- 03Auto-merge only on high confidence
Exact email matches can merge automatically. Fuzzy matches go to a review queue. Auto-merging fuzzy matches is how two genuinely different people at the same company become one record.
- 04Preserve the merge trail
Record which records were merged, when, and on what rule. When someone asks why an activity is attached to an unexpected contact, this is the only way to answer.
Suppression is hygiene
Suppression lists are the least glamorous hygiene job and the one whose failure is most visible externally. Emailing an existing customer a cold pitch, or contacting an account with an open opportunity through an unrelated sequence, costs credibility in a way no internal data problem does.
- Existing customers and their whole domain, not just the contacts you know about.
- Open opportunities — the account, and every contact at it.
- Recent touches within a defined window, across all channels rather than per tool.
- Hard bounces, unsubscribes, and complaints, permanently, and enforced at the pipeline level.
- Competitors and partners, maintained as a named list somebody actually owns.
- Explicit do-not-contact requests, which are frequently a legal obligation rather than a courtesy.
The critical design point: suppression must be enforced in the pipeline before the send, not configured separately inside each engagement tool. Per-tool suppression means the list is only as good as the tool you happened to use, and that is how the embarrassing send happens.
Fixing a database that is already bad
The instinct is to fix everything at once, which takes months and blocks all other work. Triage instead by what is blocking a decision this quarter.
- 01Stop the inflow first
Validation at every entry point and creation-time deduplication. There is no point cleaning a database that is still filling with the same problems, and this step takes days rather than weeks.
- 02Fix the active segment only
The accounts you will contact this quarter. Not the whole database. This gets you a usable dataset in about a week instead of an unusable one in three months.
- 03Rebuild the suppression lists
Highest external risk, lowest effort, and it can be done in an afternoon. Do it before the next campaign, not after.
- 04Archive the long tail
Records with no engagement in 24 months, archived rather than deleted. This shrinks the working set dramatically and makes every subsequent job faster and cheaper.
- 05Then start the recurring jobs
Once inflow is controlled and the active segment is clean, the seven jobs above keep it that way. Starting them before the first two steps means running maintenance against a moving target.
Archive, do not delete
Deleting records feels like progress and removes information you will want. Archive to a separate table or a cold store instead, keeping the identifier, the reason for archiving, and the date.
Two situations make this worthwhile. A previously dormant company shows a buying signal and you want its history rather than a blank record. And someone asks why the database shrank by 40,000 records last quarter, which is a question you want a precise answer to. Archiving costs almost nothing and preserves both — and it keeps the pipelines that read from the database operating on a smaller, faster working set.
Want this diagnosed on your own numbers?
The RADAR™ Scan scores your revenue engine in 2 minutes — 12 questions, a 0–100 score, and your gate verdict. No email required.
Run your RADAR™ Scan→Questions this raises.
What is data hygiene?
How do you deduplicate CRM records properly?
What should be on a suppression list?
How do you fix a CRM database that is already bad?
Should you delete old CRM records?
Related guides.
Six dimensions, realistic thresholds, the recurring jobs that hold them — and why one-off cleanups always fail.
RevOps AgencyIdempotency, retries, reconciliation, and alerting on absence — the engineering practices that separate a demo from infrastructure.
GTM EngineeringThe four data types and what each is actually worth, how to pick providers on your own data, and the governance that stops enrichment becoming a cost centre.
GTM EngineeringFirst we build your pipeline. Then we build the machine that scales it.
Every engagement starts with the RADAR™ Reveal — a 2-week audit with a scored report, gate verdict, and roadmap. Yours to keep, whatever you do next.