Why your B2B data decays about 30% a year
B2B contact data decays about 30% a year. The biggest driver is job change: 65.8% of contacts change title or function within 12 months, and 42.9% change phone number in a year. That's why a list is only as good as the day you pulled it, and why a CRM left to drift becomes actively misleading rather than merely incomplete — a wrong field is worse than an empty one, because nobody checks it. Fighting decay means re-running enrichment and verification on a schedule, not buying a static file once.
The numbers, and what they mean
Standard B2B contact databases lose roughly 30% of their accuracy per year. In high-churn segments the figure runs higher, and in stable industries with long tenures it runs lower — the headline is an average across a very uneven distribution, and knowing where your market sits in that distribution matters more than the average does.
The single largest driver is people changing jobs: 65.8% of business contacts change title or function within 12 months. Phone numbers change for 42.9% in the same window. Notice that title change is the bigger number, and it's the one teams track least, because a wrong title doesn't bounce — it just quietly means you're pitching a person who no longer makes that decision.
It's worth being precise about what decays and what doesn't, because the two need different treatment. Person-level fields — title, function, employer, direct phone, email — decay fastest, because they follow individual career movement. Account-level fields — the company exists, its locations, its licences, its industry — are far more stable and move on a scale of years rather than months. A refresh strategy that treats both the same either over-spends on the stable half or under-refreshes the volatile half.
- ~30% of records wrong within a year, on average
- 65.8% job or title changes within 12 months — the biggest driver
- 42.9% phone-number changes within 12 months
- Person-level fields decay fast; account-level fields are far more stable
Wrong is more expensive than missing
The intuitive view of decay is that data becomes less useful. The accurate view is that it becomes actively misleading, and that's a categorically different problem. A blank field announces itself — someone sees it and either fills it or works around it. A confidently wrong field looks exactly like a right one and gets used.
That distinction propagates through everything built on top. Routing sends an account to the wrong territory because the record says the wrong location. Scoring reads a stale title as evidence and ranks accordingly. Segmentation includes a company in a cohort it left two years ago. Reporting aggregates all of it and produces a number nobody can identify as wrong, because nothing looks broken.
The compounding version is worse. A rep who works a stale list stops believing the list, and starts maintaining a private spreadsheet — which is rational for the individual and corrosive for the organisation, because now the system of record is definitively wrong and nobody is even feeding it corrections. Once that has happened, no amount of data spend fixes it until the trust is rebuilt.
The job-change signal cuts both ways
Job changes are framed as the decay problem, and they're also one of the most useful timing signals available — the same event, read as an opportunity rather than as damage.
When a contact leaves, you've lost a relationship in that account, and someone new now owns the decision. When they arrive somewhere else, a person who already knows your product is now inside an account that may not be a customer, at exactly the moment they have latitude to change tooling. Both are worth acting on, and neither is visible if you're refreshing records by overwriting them.
Which is a design point rather than a philosophical one. A system that overwrites a contact's employer on refresh has destroyed the signal. A system that records the change — old value, new value, date — has created two pieces of pipeline intelligence. Keeping field history is cheap, and it's the difference between treating decay as loss and treating it as information.
Building a refresh cadence that isn't wasteful
The instinct is to re-enrich everything on a fixed schedule. It works and it's expensive, because it spends the same amount on the fields that barely move as on the ones that churn. A better cadence is tiered by volatility and by value.
Tier by field: verify person-level fields — title, employer, direct phone, email — most often, since that's where the 65.8% and 42.9% figures land. Re-check account-level attributes far less often, because a company's locations and licences move on a scale of years.
Tier by importance: records in an active opportunity or a named-account list justify a much tighter cycle than the long tail of a market map that nobody is working this quarter. Spending equally across both is the most common way enrichment budgets get consumed without improving anything a rep touches.
And prefer verification to re-purchase where you can. Confirming that an existing value is still correct is generally cheaper than buying the record again, and it produces something re-purchase doesn't: a last-verified date per field. That timestamp is what lets you reason about your own data — which records are trustworthy, which are overdue, and how much of the CRM is currently running on values nobody has checked this year.
- Refresh person-level fields far more often than account-level ones
- Tighter cycles for active opportunities and named accounts
- Verify rather than re-purchase where the provider supports it
- Store a last-verified date per field, not per record
Measuring your own decay rate
The 30% figure is an industry average, and your market is not the average. It's measurable directly, and doing so turns refresh from a guess into a budget decision.
Take a random sample of a few hundred records — random, not the ones reps flagged, which are biased toward the obviously broken — and verify them properly. The share that turn out wrong is your decay rate against whatever interval has passed since they were last verified. Repeat quarterly on a fresh sample and you have a trend rather than an anecdote.
Break the result down by field and by segment, because that's what changes decisions. If title decay in one vertical is running at twice the rate of another, the refresh cadence should differ between them. And if your measured rate comes in well under the industry figure, that's a legitimate reason to spend less on refresh and put the money somewhere else — which is a conclusion worth being able to defend with a number.
Treat data as a pipeline, not a file
The single most useful shift is conceptual: stop thinking of your database as an asset you bought and start thinking of it as a process that runs. Assets depreciate quietly and are accounted for once. Processes have owners, schedules, monitoring, and failure alerts.
Concretely that means enrichment writes on a schedule rather than at import, verification runs continuously rather than as an annual cleanup, and every field carries provenance — where it came from and when it was last confirmed. It means someone owns the freshness metric and reports it, the way someone owns uptime. And it means the refresh cadence is a live decision informed by your measured decay rate, not a setting configured once during onboarding and never revisited.
A CRM you populated six months ago and never refreshed isn't neutral. It's a liability that everything downstream is currently trusting.
Common questions
Tier it rather than picking one interval. Person-level fields — title, employer, direct phone — carry nearly all the decay, so verify those most often; account-level attributes move on a scale of years and don't need the same cycle. Active opportunities and named accounts warrant a tighter cadence than a long-tail market map nobody is working.
Yes, and you should. Verify a random sample of a few hundred records — random, not the ones reps flagged — and the share that come back wrong is your rate for that interval. Repeat quarterly, break it down by field and segment, and you can set refresh spend from evidence rather than from an industry average.
Usually, yes. A blank prompts someone to check; a plausible wrong value gets used — dialled by a rep, read by a scoring model, aggregated into a report — and nothing looks broken. That's why verification and a last-verified date matter more than raw fill rate.
Re-purchasing works but is often the expensive route. Verification — confirming an existing value is still correct — is generally cheaper and produces a last-verified timestamp per field, which re-purchase doesn't. That timestamp is what lets you reason about which parts of your CRM are currently trustworthy.