CRM data hygiene: decay rates, a checklist, and fixes

CRM data hygiene keeps up with contacts that go wrong at about 22.5% a year: a weekly and monthly checklist, and which fixes enrichment owns.

Photo of Utku Zihnioglu

By

ยท CEO & co-founder

Updated Oct 17, 2026

ยท 11 min read

HubSpot decay source linked; firmographic and phone ranges with no primary source removed.

Blog cover: About 22.5% of contacts go wrong a year, beside the HubSpot and Stripe logos

CRM data hygiene is the routine that keeps your records true after they go in: re-checking the fields that decay, filling the ones that are missing, and merging duplicates. It sounds like housekeeping, and 2.1% of contacts going wrong a month sounds like nothing. Compound it across a year and 22.5% of your records have gone wrong, the figure HubSpot's database decay simulation lands on, built on MarketingSherpa research.

CRM data decay never announces itself, so most cleanups start with a bounce report on a Tuesday morning. By then the damage is several months old.

The half of this topic nobody writes about is detection. Every CRM data hygiene checklist tells you to re-verify contacts before a send, which is correct and also late. An address that bounces today belongs to someone who left in March.

Your own systems knew before any verifier did: the card that failed in billing, the thread that stopped replying, the seat that quietly went dark. Oneprofile reads that evidence beside outside data sources, which is how CRM contact enrichment that keeps records current works.

If you would rather find the stale records in your own CRM first, connect it and re-check a sample free on the Free plan's 200 credits a month and 100 rows per table.

Why CRM data hygiene slips: decay rates

CRM data decay is the drift between what a record says and what is true. Nothing inside your CRM changes. The world outside it does.

Someone gets promoted, their employer gets acquired, an office extension is retired, and the record sits there looking as confident as the day you created it. Hygiene slips because nothing in the CRM tells you which records to re-check, and different fields rot at different speeds.

Field

Roughly how fast it goes wrong

Where the number comes from

The contact record as a whole

2.1% of contacts a month, 22.5% a year compounded

HubSpot's decay simulation, citing MarketingSherpa research

Job title and role

Wrong the day of a job change or promotion

The main cause of the rate above

Work email

Invalid the day the job changes, not gradually

The same event as the title change

Firmographics: HQ, headcount, company name

More slowly than contacts: headcount drifts, while moves and renames are rare

No current public study we could link

Direct dial and office phone

A direct dial breaks with the job change; an office line when the office moves

No primary study we could link

Whether the company still exists

Slowest of the set, most embarrassing to miss

No public figure we would stand behind

Notice that the title and email lines are one event. A title change and a dead work email arrive together because a person walked out of a building. Most of a B2B data decay problem is a job-change problem wearing different clothes, which is why re-verifying emails without re-checking titles catches the symptom and misses the cause.

One thing here is irritating. That 22.5% figure appears in every article in the category, including this one, and almost nobody says when it was measured. The research is old, and a decade of writers citing each other is not evidence.

So before trusting anyone's rate, including the one above, measure your own. Take 200 contacts last checked about a year ago, re-check each address, title, and company, and count the records where any of the three changed. Divide by 200 for your yearly rate, and by 12 for a rough monthly one.

What stale CRM data costs a small team

The enterprise way to measure the cost of data decay is a waste model: contacts bought a year, times the share invalid on arrival, times a rep's fully loaded hourly rate. Useful in a budget meeting, less so to a founder with 800 accounts in HubSpot free and no budget line to defend.

At 2.1% a month, an 800-contact CRM has about 17 wrong records after one month, 49 after three, 96 after six, and 180 after a year. The cost of those records shows up in three places:

  • Rep hours spent on people who left. Every dead record still gets researched, written to, and followed up twice before anyone gives up.

  • One domain, one reputation. A large company can burn a sending domain and rotate to another. You have the domain your product is named after.

  • Forecasts you cannot trust. Pipeline built on stale CRM data inherits the error. The deal is real, the contact on it left in April, and nobody finds out until the renewal.

On the second one, Google's email sender guidelines set a spam complaint ceiling of 0.30% for bulk senders, with a recommended operating target below 0.10%. Those are complaint thresholds, not bounce thresholds, and plenty of articles blur the two. A list full of dead addresses still pushes both the wrong way.

"Low reply rates drag your deliverability down, and poor targeting is what causes low reply rates."

Utku Zihnioglu, CEO of Oneprofile

Detecting CRM data decay from systems you already own

A bounce is a lagging indicator. A verifier is a slightly less lagging one: it can tell you an address no longer accepts mail, but not that your champion left in February and their replacement has been reading your emails since.

The systems you already run produce that signal for free. Most teams never connect them to the CRM.

Signal

Where it already exists

What it says about the record

Two failed charges, then an unpaid subscription

Billing

The billing contact may be gone, not just the card

An auto-reply naming a replacement

Your mailbox

Direct confirmation, the cleanest signal

A thread that replied for months, then 90 days of silence

Your mailbox

Contact moved, changed role, or stopped owning the account

A ticket from an unfamiliar address on a known domain

Support desk

New owner arrived, old contact is stale

A named seat with no login in 60 days

Product analytics

Champion left or disengaged

Domain-wide drop from nine active seats to four

Product analytics

Restructure, layoffs, or a migration away from you

Billing is the strongest of these for any account that pays you. A subscription usually reaches unpaid only after its payment retries run out, so that status is not a fresh event when you see it.

The CRM, meanwhile, still says "Customer, healthy" and the renewal task is still scheduled for a person who may not work there.

None of these signals is proof on its own. A quiet seat in the second week of August is a holiday. A single failed charge is an expired card. Detection in practice means ranking suspicion rather than flipping a flag: one signal moves a record up the re-check queue, two signals together and you stop guessing.

These signals only exist for accounts that already know you. For a cold prospect, you are back to third-party data sources and a verifier. Cold records have the shortest useful life, so re-enrich them closest to the send.

Anyway.

A CRM data hygiene checklist, weekly and monthly

Lists of CRM data hygiene best practices tend to treat the job as a cleanup you book once a quarter. Decay does not keep that calendar. A contact can change jobs in any week, so the checks that catch it run weekly, and only the slow work waits for the month.

Check

When

Who does it

Re-verify any address untouched for six months before it enters a sequence

Weekly, before each send

Oneprofile: Verify email, up to 0.8 credits an address

Re-enrich accounts showing a decay signal from the table above

Weekly

Oneprofile, reading billing, support, and product data

Fill blank work emails and titles on contacts added since the last pass

Weekly, on each scheduled refresh

Oneprofile: Find work email, up to 10 credits a contact

Merge duplicate contacts and companies

Monthly

Your CRM's own merge tools

Check which fields each export may write, and who owns each one

Monthly

You: owners in the CRM, mappings in each export

Full pass on titles, companies, and work emails

Quarterly

Oneprofile, on a scheduled re-run

Firmographics: headcount, HQ, industry

Yearly

Oneprofile: Enrich company from domain

Two different jobs hide inside the word hygiene, and they belong to different owners.

Data enrichment vs data cleansing: who does what

The difference is whether the right value is already in your database. Merging duplicate contacts, fixing a misspelled company name, and standardizing country values are cleansing. Your CRM's own tools do that best, because the rules belong to whoever owns the CRM.

Decay needs the other half. No amount of cleansing produces a contact's new title or the work email at their new employer, because neither is anywhere you can see. Bringing it in from outside is enrichment, and that half is the one Oneprofile runs.

Two export settings keep the halves apart. Change mapped fields only leaves every field you have not mapped as it is, and Skip empty values stops a lookup that found nothing from blanking a field your team filled by hand.

CRM data hygiene fixes that run on a schedule

Re-enriching what you already hold keeps the history attached: the notes, the closed-lost reason, the evaluation eighteen months ago that went to someone else. A freshly bought list arrives with none of that, and with the same decay clock already running. The contact details are the perishable part.

Coverage matters more on a re-enrichment run than on a first pass, because the easy records resolved the first time. What is left is the awkward tail, where a waterfall earns its place: data sources are tried in order until one answers.

The pricing model matters as much as the coverage. A re-enrichment run has a high miss rate by definition, so if misses are billed, you pay most for the runs that find least.

Manual cleanup plans fail when somebody forgets. Here is how Oneprofile handles it:

  • Your CRM, refreshed on a schedule you pick. Anything from hourly to quarterly, and a refresh updates the records already there instead of duplicating them.

  • Billing, support desk, product analytics, and your application database, read in so the decay signals sit next to the contact they describe.

  • Enrichments on their own schedule. Scheduled re-enrichment re-checks titles, companies, and work emails through a waterfall ordered by accuracy, and a lookup that finds nothing costs nothing. The editor projects the monthly credit cost before you save.

  • A score with its reason. An AI agent reads each account's billing, support, and usage and writes a customer health score with the reason behind it, so a failed payment and a dead seat surface without anyone building a rule.

The results go back to the CRM when you push the export, onto the properties you map them to. Whether any of this scales into a formal data governance program at 500 people, we genuinely do not know: that is a different discipline with stewards, change control, and its own literature.

The goal is not a tidy database. It is that when a rep opens an account on Tuesday morning, what they read is true on Tuesday morning. Put your CRM on a re-check schedule free and see which records were already wrong. The Free plan gives you 200 credits a month, up to 3 integrations, 3 tables, and 100 rows per table, enough to re-check a sample.

Do this in Oneprofile

Re-checks that run on a schedule

An enrichment can re-run on a schedule you set, and its editor projects the monthly credit cost before you save. A lookup that finds nothing costs nothing.

  • HubSpot logo
  • Salesforce logo
  • Stripe logo

CRM data hygiene: common questions

What is CRM data hygiene?

CRM data hygiene is the routine that keeps CRM records true after they go in: re-checking fields that decay, filling the ones that are missing, and merging duplicates. It is ongoing work, because about 2.1% of B2B contacts go wrong every month.

How fast does CRM data decay?

Around 2.1% of B2B contact records go wrong each month, compounding to roughly 22.5% a year in HubSpot's database decay simulation. Most of it is job changes: the title, work email, and direct dial all break on the day someone moves company.

Why does CRM data hygiene matter?

Because stale records cost you in three places. Reps research and write to people who left, dead addresses push your bounce and complaint rates the wrong way on the one domain you send from, and forecasts built on departed contacts inherit the error.

How can I detect stale CRM data before an email bounces?

Watch the systems that already track those accounts. Failed charges in billing, a support ticket from an unfamiliar address on a known domain, a named seat that stopped logging in, and a thread that went quiet all flag a decayed record earlier than a verifier does.

What are CRM data hygiene best practices?

Re-verify anything untouched for six months before it enters a sequence, re-enrich accounts showing a decay signal each week, merge duplicates monthly, and run a full pass on titles, companies, and emails each quarter. Firmographics can usually wait a year.

Is data enrichment the same as data cleansing?

No. Cleansing fixes what a record already holds: duplicates, typos, inconsistent formats. Decay needs new facts from outside the CRM, such as a contact's new title or the work email at their new employer, and bringing those in is enrichment.

About this article

Photo of Utku Zihnioglu

Utku Zihnioglu

CEO & co-founder

Serial entrepreneur who built infrastructure companies handling billions of requests. Now leads engineering at Oneprofile, which finds the people worth talking to, researches each one, and follows up until they reply.

Drafted with AI from our product docs and code. Utku Zihnioglu answers for what it says.

Put your CRM data hygiene on a schedule

Re-enrich on a schedule and write back only the fields you map.

Free plan: 200 credits a month, 3 integrations, no card

Read next

CRM contact enrichment that keeps records current

Put your CRM data hygiene on a schedule

Re-enrich on a schedule and write back only the fields you map.

Free plan: 200 credits a month, 3 integrations, no card

Read next

CRM contact enrichment that keeps records current