If you verified your list six months ago, ~10% of it has already decayed. Mailboxes get deleted, employees change jobs, domains expire, addresses get repurposed as spam traps. The question isn't whether to re-verify - it's how often, and which segments first.
This post gives you a concrete cadence based on send frequency, list source, and your deliverability risk tolerance. No fluff, just a calendar you can copy.
How Fast Email Lists Decay (the data)
From our analysis of 100,000 addresses we verified in November 2025 and re-verified in May 2026 (6 months later):
- 86.7% still verified
- 5.3% became invalid (mailbox deleted)
- 4.2% became catch-all / risky (mailbox infrastructure changed)
- 2.1% were reclassified as disposable (verifier taxonomy improved)
- 1.7% became role-based or had structural changes
Headline: ~22% list decay per year, or roughly 1.8% per month.
A list verified once and used for 12 months has lost a fifth of its quality. Half the decay is permanent (deleted mailboxes); the other half is structural (catch-all transitions, role-based reclassifications).
Decay Rate by List Source
Not all lists decay at the same rate. From our customer-source breakdown:
| Source | Annual decay rate | Re-verify cadence |
|---|---|---|
| Double opt-in newsletter | 8% | Quarterly |
| Newsletter sign-up (no DOI) | 18% | Monthly |
| CRM (engaged contacts) | 12% | Quarterly |
| CRM (stale - 12+ months no contact) | 35% | Monthly + heavy prune |
| LinkedIn / Sales Nav export | 28% | Monthly |
| Hunter / Apollo / ContactOut | 22% | Monthly |
| Purchased B2B list | 45% | Every send |
| Lead-magnet / gated content | 24% | Monthly |
The unifying pattern: lists where the subscriber actively confirmed interest (double opt-in, recent engagement) decay slowest. Lists where the address was scraped or one-time-collected decay fastest.
The Cadence Framework
Three variables determine your right cadence:
1. Send frequency - how often do you actually mail this segment?
2. Source decay rate - see table above
3. Risk tolerance - what bounce rate triggers concern?
The formula:
``
Verify cadence = min(
source_decay_rate_to_max_acceptable_bounce,
send_frequency × 4 (verify at least once per 4 sends)
)
``
In practice, three cadence buckets cover 95% of senders:
Bucket A - High velocity (cold outreach, cold email)
Verify EVERY send. Cold outreach has zero tolerance for bounces - your sender reputation depends on it. Even 2% bounce rate destroys deliverability.
Bucket B - Marketing newsletter (weekly/bi-weekly)
Verify every 30-45 days. Re-verify your active list at the start of each month. Anything bouncing in that month's send gets suppressed before the next.
Bucket C - Transactional + low-volume
Verify quarterly. Your active addresses are self-validating (every transactional send confirms the address still works). Run a quarterly cleanup pass to catch the rest.
Copy-Pasteable Calendars by Use Case
Cold outreach team (1K-10K sends/week):
``
Day 0: Verify the upcoming campaign list 24h before send
Day 0: Send - monitor real-time bounce rate, pause if >2%
Day +1: Pull bounce reports, suppress hard bounces from master list
Day +7: Re-verify any catch-all segments before next batch send
`
Frequency: every campaign. Hot lists get verified weekly.
SaaS newsletter (5K-50K subscribers, weekly send):
`
Week 1 of month: Full list re-verification
Week 1 of month: Remove invalids, flag catch-all for cautious send
Every Monday: Send to verified segment only
Month +1: Re-verify next month's send (any new signups since last verify)
Quarterly: Re-engagement campaign for subscribers inactive 90+ days
`
Frequency: monthly full re-verify + new-signup checks weekly.
E-commerce broadcast (50K-500K subscribers, 2-3 sends/week):
`
Quarterly: Full re-verification of active list
Weekly: Verify new signups before adding to broadcast segment
Per send: Monitor bounce rate, suppress hard bounces immediately
Quarterly: Re-engagement campaign for inactive 90+ day subscribers
`
Frequency: quarterly full + ongoing per-signup + per-send monitoring.
Transactional only (no marketing sends):
`
Quarterly: Run full active-user list through verification
Per signup: Real-time verify in the signup form
Annually: Audit historical bounce data; suppress chronic bouncers
``
Frequency: quarterly is enough - transactional sends self-validate.
The Re-Engagement Decision
Subscribers inactive for 90+ days are a special case. They're not bouncing (yet) but they're not engaging either. Two paths:
Path 1: Re-engagement campaign
Send a 'we miss you' email asking them to confirm they still want to hear from you. ~5-15% click yes. The rest get suppressed.
Pro: keeps some subscribers, signals to mailbox providers that you respect engagement.
Con: a re-engagement send to 10K inactive subscribers can spike your bounce/complaint rate temporarily.
Path 2: Silent suppression
Move inactive subscribers out of active sending lists without any send. Keep them in CRM for future re-engagement opportunities (purchase, support ticket, web visit).
Pro: zero risk to current sending reputation.
Con: lose the chance to recover some who were just busy.
Recommended hybrid: For B2C, run a re-engagement campaign once per quarter (path 1). For B2B, silent suppression (path 2) and re-engage only when you have something genuinely new to say.
What to Do With the Decay (the suppression list)
When you verify and find invalids, don't just delete them. Build a suppression list:
Why suppress, not delete:
- Same addresses can re-appear from different sources (CRM imports, form re-submissions)
- You need to permanently never-send to these to avoid re-triggering bounces
- Regulatory: some jurisdictions require keeping a 'do not contact' list for compliance audits
- Every send pipeline should cross-check sender list against suppression
- Re-imports from CRM should be auto-filtered against suppression
- Allow manual override for special cases (e.g., a customer who replied 'unsubscribe' but later signed up again with explicit consent)
How to structure:
``
Suppression table columns:
email | the address
reason | invalid_syntax / hard_bounce / spam_complaint / unsubscribed
date_added | when it landed on suppression
source_campaign | which campaign first triggered
permanent | true/false (manual review can flip back)
``
Integration:
Most ESPs support suppression lists natively (Mailchimp, SendGrid, Mailgun all have this). Use it.
The Hidden Decay - Catch-All Transitions
Beyond mailbox deletions and role changes, there's a quieter form of decay: catch-all transitions.
A domain that was non-catch-all (clean verifiable mail) can flip to catch-all at any time. Reasons:
- Domain admin enabled catch-all to fight spam scrapers
- Company migrated from Google Workspace to a self-hosted catch-all setup
- Domain was sold and new owner runs catch-all by default
From our data, ~2% of previously-verified domains transition to catch-all per quarter. Your 'verified' addresses on those domains are no longer confidently verified - they're now catch-all-risky.
Detection: re-verify domains, not just individual addresses. A domain-level audit catches catch-all transitions earlier than per-address verification.
Cost-Benefit of Different Cadences
Verification has a cost (credits) but ignoring decay also has a cost (deliverability damage). The math:
Scenario: 50,000-subscriber newsletter, monthly send.
Cadence A - Verify every send:
- Cost: 12 × 50K credits/year = 600K credits/year
- At BounceZero $1/1K rate, $600/year
- Bounce rate: <0.5% sustained
- Deliverability: high reputation, easy inbox placement
- Cost: 4 × 50K = 200K credits/year, $200/year
- Bounce rate: drifts from 0.5% to ~3-4% by end of quarter
- Deliverability: medium reputation, occasional throttling on send 3
- Cost: 50K credits, $50/year
- Bounce rate: hits 5-8% by month 12 - Spamhaus listing risk
- Deliverability: catastrophic recovery in the middle
Cadence B - Verify quarterly:
Cadence C - Verify annually:
The difference between A and B is $400/year. The difference between B and C is a 30-day deliverability recovery + potential blacklist removal fees + lost revenue from missed campaigns. Cadence A is overwhelmingly the better economic decision once you can quantify the deliverability cost.
Common Cadence Mistakes
1. Verifying right after sending instead of right before.
Verifying post-send is a hygiene action; verifying pre-send is a prevention action. Always verify within 24h BEFORE the send.
2. Only verifying invalids without re-checking valids.
Valids decay too. Mailboxes get deleted. Companies migrate to catch-all. Re-verify the entire list, not just the ones that bounced.
3. Treating catch-all the same as verified.
Catch-all addresses re-verify as catch-all because that's a domain property. They didn't 'decay' - they were always uncertain. Treat them as a separate segment.
4. Letting suppression lists grow without quarterly review.
Some addresses on suppression were temporarily over-quota (mailbox full) - they may now be deliverable again. Re-verify aged suppression entries quarterly; un-suppress if newly clean.
5. Not verifying after CRM imports.
Importing from Salesforce / HubSpot / external sources reintroduces stale data. Verify all imports before merging into active sending lists.
Frequently Asked Questions
Is monthly verification overkill for a small newsletter?
For a small newsletter (<5,000 subscribers) sending weekly, quarterly verification is usually enough - list decay is slower than your verification cost. Monthly becomes worthwhile around 10K+ subscribers or any cold-outreach use case. The economic break-even is: does the cost of one ruined campaign exceed the cost of monthly verification? At >$500 of expected revenue per campaign, yes.
How do I verify only new signups efficiently?
Two approaches: (1) Real-time verification in the signup form - verifies every new address as it enters your system. Best UX, slightly slower form submission. (2) Daily batch - collect new signups, verify in a batch overnight. Faster signup, but invalids enter your CRM temporarily. Most teams do real-time at signup + monthly full re-verify.
Should I verify before or after sending a campaign?
Before. Verifying after lets bounces happen, damaging reputation. Verify within 24h of send. The exception: post-send analytics - pull bounce reports after sending and update suppression list for future sends.
Does Google Postmaster reputation help me know when to re-verify?
Yes - it's a leading indicator. When Gmail Postmaster shows your sender reputation dropping from High > Medium, that's a sign list quality is degrading. Re-verify immediately. Don't wait for it to drop to Low - recovery takes 30-90 days from there.
Set Up Your Verification Cadence
100 free credits per month covers small lists indefinitely. Larger lists from $1/1K with no expiration. Real-time API + bulk + webhook on the same key.
Start Free