A B2B contact list starts decaying the minute it is exported. The decay is faster than most teams admit, and it is accelerating.
I am George, founder of Leadpipe. We run an identity graph with 280M verified profiles, refreshed every 24 hours. From that vantage point, I see the churn directly: people changing jobs, companies rebranding, domains dying, titles shifting. The scale of the movement is larger than any static database can keep up with, and the gap between “the list you bought” and “the reality at send time” grows every day.
This post is the answer to a question we get constantly: how fast does a B2B contact list actually decay? Here are the numbers, the drivers, and what to do about it.
The baseline: 30-40% of B2B contacts go stale within 12 months.
This is the consensus number across multiple industry studies and our own identity graph observations.
| Decay driver | Annual rate | Notes |
|---|---|---|
| Job changes (same company or new) | 25-35% | Up from ~20% pre-2022. Labor market fluidity |
| Company events (acquisition, shutdown, rebrand) | 10-15% | Accelerated by consolidation waves |
| Email domain changes | 5-10% | Follows job changes and company events |
| Title inflation / role shifts | 15-20% | Same person, different relevance |
| Phone number changes (mobile reassignment) | 10-20% | Direct dials are especially volatile |
Stack those together, net out the overlaps, and you get to a blended decay rate of roughly 30-40% of records going stale over 12 months. That means a list you bought on January 1 has material accuracy problems by summer and is actively harmful by December.
The number varies by segment. Fast-moving categories (tech, startups, SaaS) decay faster, often north of 40%. Slower categories (manufacturing, utilities, government) decay in the 20-25% range. If you are selling to startups, a six-month-old list is essentially a new list with a 25% haircut.
The half-life of a contact record is closer to 18 months.
If you model decay as exponential, most B2B contact records have a half-life around 18 months. That is the point at which half the records are either wrong or materially less useful than they were at source.
| Age of record | Rough accuracy |
|---|---|
| 0-30 days (fresh enrichment) | 85-95% |
| 3 months | 80-88% |
| 6 months | 70-80% |
| 12 months | 55-70% |
| 18 months | 45-55% (half-life zone) |
| 24 months | 35-45% |
| 36 months | 25-35% |
These are averages. Individual records can be fine for years (long-tenured engineers at stable companies). Other records rot in months (VP at a pre-seed startup that pivoted twice). But the population behaves predictably in aggregate.
A team running the same list they bought two years ago is effectively sending email to a list where less than half the records are useful. The deliverability damage from hard bounces, spam traps, and role accounts compounds on top of that.
Your CRM is usually decaying faster than your list vendor’s database.
Here is an uncomfortable truth. Most teams assume their contact database vendor is the stale layer and their CRM is the ground truth. The reverse is often true.
A reputable contact data provider (ZoomInfo, Apollo, Cognism, LeadIQ) runs a refresh cadence on the order of weeks to months. The CRM, meanwhile, tends to hold records from the last three to seven years with minimal maintenance. Salesforce is full of bad data for exactly this reason: it accumulates, it does not refresh.
Typical CRM decay pattern:
- Record created on form fill, 2022. Email worked.
- Nurture sequence bounced twice in 2023. Email status flagged.
- Never updated. Still sits in the contact object.
- Enriched again in 2024 from a list import. The second record has the current data.
- Neither record is cleaned. Reporting now double-counts.
Multiply this by years and thousands of records, and the CRM becomes archaeology. When a team runs reports on “pipeline source” or “contacts in database,” the numbers look fine because the system does not flag decay. The dashboard reflects the state of the database, not the state of reality.
The AI agent reading from this CRM writes emails to people who left the company three years ago. The SDR calling from this CRM hits disconnected mobile numbers. The marketer segmenting from this CRM builds audiences that do not exist anymore.
The decay is accelerating. Three structural drivers.
The 30-40% annual decay number is not stable. It is trending up. Three reasons.
1. Labor market fluidity.
Tenure at B2B jobs has shortened. The median SaaS employee now changes roles every 20-28 months, down from 30-36 months a decade ago. Every job change produces a cascade: new email, new LinkedIn URL, new phone, potentially new title. The database has to track all of it.
The 2021-2022 tech layoff wave made this worse in aggregate. Entire cohorts of employees changed companies within 18 months. Databases that were accurate in early 2022 were materially wrong by 2023.
2. Company-side changes.
Acquisitions, consolidations, and rebrands accelerated through 2023-2025. A company bought by a larger one often retires the original domain within 6-12 months. Every contact at the acquired company gets a new email. The list you bought last year points to a domain that routes to spam filters now.
Domain-level decay is particularly dangerous because it looks like deliverability failure, not data failure. Your bounce rate spikes. Your sending reputation takes damage. You investigate the copy. The real problem is that the recipient domain no longer accepts mail to that address.
3. Provider-side filtering.
Email providers (Gmail, Microsoft, the big enterprise relays) now apply domain-level reputation scoring in real time. Sending to stale addresses generates negative signals that compound. Even clean records in your list get penalized because the surrounding batch contained bad ones.
A list with 5% bad addresses six months ago produced a recoverable deliverability hit. The same list today produces domain blocklist entries. The infrastructure tightened while the database decayed. Both trends moved against the sender.
The fix is not “clean your list.” It is “stop depending on static lists.”
The traditional answer to contact decay is hygiene. Periodic cleansing. Quarterly enrichment. Bounce-based removal. These help at the margin. They do not solve the structural problem.
The structural solution is to stop treating static lists as the input to outbound. Instead, treat live behavioral signal as the input, and use identity resolution to turn that signal into a current contact record.
| Architecture | Source of contact | Freshness at send |
|---|---|---|
| List import (traditional) | CSV from database vendor | Stale by months |
| Real-time enrichment at send | API call at send time | Current, but no behavior |
| Visitor identification (Leadpipe) | Identity graph match on live traffic | Real-time, tied to session behavior |
| Person-level intent (Orbit) | Daily refresh across 5M websites | 24-hour truth, tied to research behavior |
Architectures 3 and 4 solve the decay problem because the contact enters your workflow at the moment of signal, not from a stale batch. You do not have to cleanse because there is no accumulation.
This is how the midbound playbook works in practice: the person who just visited your pricing page gets resolved to a fresh, verified identity record, which goes into your sequencing tool with full behavioral context. The record is 24 hours old at most. It cannot decay in a CSV because it was never in a CSV.
The hidden cost of decay: deliverability and brand.
Most teams underestimate the secondary damage from stale lists.
- Hard bounces raise spam flags. Gmail and Microsoft treat >2% bounce rate as a negative signal. Enterprise relays treat >1% as a problem. Stale lists blow through these thresholds quickly.
- Domain reputation compounds. One bad campaign can degrade your sending reputation for months. Recovery is slow and expensive.
- Brand perception suffers. People who get cold email to an old address they left years ago tell colleagues. “We got a spam from [Your Company] at my old email.” That is a permanent brand mark in a target account.
- CRM pollution grows. Every bounce-stamped record in the CRM clutters reporting. Every incorrect record in a “pipeline source” dashboard misleads the leadership team.
The ROI math on static lists should include these costs. Few teams model them. They should.
The steelman: “We just refresh quarterly and we are fine.”
Strongest counter: “We buy quarterly enrichment. Our lists are always less than 90 days old. This is a solved problem.”
Partial credit. Quarterly refresh beats annual refresh. But two things.
First, quarterly cadence still means the average record is 45 days old at send time. Against a 30-40% annual decay rate, 45 days is 5-6% decay. On a 10,000-contact campaign, that is 500-600 contacts who are already stale when the sequence launches. Those 500-600 produce most of the bounces and most of the deliverability damage.
Second, quarterly refresh handles contact-level decay. It does not handle behavioral freshness. A contact who was in-market last quarter may not be in-market this quarter. The contact record is accurate. The buying signal is stale. Fit is not intent, and a fresh list of not-in-market buyers is still a list of not-in-market buyers.
The teams that solve this problem stop depending on enrichment cadence entirely. They run on live signal. Enrichment becomes a supporting function, not the primary data pipeline.
A 12-month-old list is not a list. It is a deliverability risk wearing a CSV extension.
What this means for your week.
Four concrete moves.
- Audit the age of your sending lists. Pull every list your outbound team is actively sequencing. Note when each was last refreshed. Any list older than 90 days should come out of rotation pending enrichment.
- Measure your bounce rate trend. If it is creeping up, your lists are decaying faster than you are refreshing. The fix is either faster refresh or different data architecture entirely.
- Pick one campaign to run on live signal. Use visitor identification as the input instead of a static list. Compare reply rates, bounce rates, and meetings over 30 days.
- Clean the oldest 20% of your CRM contacts. If they have not had engagement in 24 months and have bounced once, delete them. Your database gets smaller. Your reporting gets more honest.
The compounding win is that a cleaner system produces cleaner data, which produces better AI outputs, which produces better outreach, which produces better deliverability. The inverse is also compounding, which is what most teams are experiencing.
The bottom line.
B2B contact lists decay at roughly 30-40% per year, and the decay is accelerating. The hygiene playbook patches this at the edges. The structural fix is to rebuild the top of the funnel around live signal so the contact record is never stale in the first place.
We built our identity graph specifically because we believe static lists are a dead architecture. Daily truth, not quarterly dumps. That is the operating layer for modern outbound.
Leadpipe identifies 30-40%+ of your US B2B visitors with full contact data on the Pro plan at $147/mo. No credit card to start the 500-lead trial. Start identifying visitors →