Agencies love a big enriched list. The list starts dying the day it is saved. Titles change, people leave, domains redirect, and catch-all addresses that looked fine last month bounce hard this week. Freshness is a pre-send control, not a vendor slogan.
GTM treats data as credit-priced work and expects provenance on fields. That only helps if operators also respect age. A perfect ICP match with a 120-day-old email is still a bounce risk.
Decay is normal
Contact data ages in weeks, not years. A list verified 30 to 90 days ago can already be soft. Active pipeline contacts need tighter refresh than a cold nurture pool. You need a rule your team can follow without a debate every Monday.
Practical freshness rules
- At campaign entry: require a recent verification timestamp on the email you will send
- Before first send on a held row: re-verify if the last check is older than your campaign freshness SLA
- Active opportunity contacts: refresh email and role on a short cycle (many teams land around 14 to 30 days)
- Broader nurture pools: a longer cycle (often 60 to 90 days) is fine if those rows cannot enter send without a fresh check
- Immediate re-verify triggers: hard bounce, job-change signal, domain change, suppression event
Store last_verified_date, flag stale rows, and block invalid, risky, catch-all, and unknown statuses from send.
How stale is too stale?
For cold first-touch email, treat verified sometime this quarter as too soft. Prefer verification close to send time. Title and company freshness matter for copy quality even when the email still accepts mail. Provenance on each field should include when it was collected or last confirmed.
Agency failure modes
- Enriching once at kickoff, then sending for six weeks with no re-check
- Mixing clients' enrichment caches across workspaces to save credits
- Counting catch-all as verified because the API did not say invalid
- Re-using a bounced address after a cosmetic list clean
- Blaming copy when the bounce chart is really a freshness chart
Data credits exist so you can refresh what you send. Skipping refresh to save pennies spends domain reputation instead.
Checklist before a send window
- Filter to rows inside the freshness SLA
- Drop invalid, risky, and unresolved catch-all per policy
- Confirm suppression sync still applied after the refresh
- Spot-check titles against the evidence you will write from
- Log verification age distribution when bounce rates move
Fresh data does not guarantee a booked conversation. Stale data reliably taxes deliverability and trust. Join the waitlist at https://trygtm.com/waitlist.
Sources
- https://instantly.ai/blog/b2b-contact-data-staleness-refresh-rates/
- https://www.octavehq.com/post/gtm-engineers-guide-to-data-freshness
- https://www.apollo.io/insights/how-do-i-evaluate-a-sales-intelligence-platform-based-on-data-freshness-and-update-frequency
- https://www.apollo.io/insights/how-to-automatically-flag-outdated-contacts-for-review
- /workspace/trygtm/knowledge/product.md
