In short
Data freshness in B2B enrichment is not “the record was updated recently”. It is evidence that each field is current enough for the decision it will drive. Measure age from the event or source observation, not only from the retrieval date; set separate warning and blocking thresholds for company identity, employment, email and phone fields; and refresh again at the point of consequential use.
A useful freshness programme reports current usable coverage and cost per current usable result. A high match rate can coexist with stale employment, an old mailbox check or duplicate CRM records.
A person can be found today with a title last observed months ago. A work email can pass a technical check while the employment relationship is wrong. A provider can return a recent retrieval timestamp for a value whose source date is unknown. All three records look “fresh” if the CRM stores only last_enriched_at.
This guide is for enterprise RevOps and data leaders deciding whether enriched company and contact data is safe to route, score, write or activate. It turns data freshness, stale data, data timeliness, data quality metrics and data quality monitoring into a field-level operating method. The goal is not to promise permanence. It is to expose age, evidence and uncertainty before automation acts.
What data freshness means for B2B records
Data freshness is the elapsed time between a relevant real-world state and the point at which your system can use evidence of that state. In B2B enrichment, “relevant state” varies by field. A registered company identifier may be stable for years. Headcount, role, employer, phone reachability and mailbox status can change much faster.
That makes freshness a fitness-for-purpose decision, not a universal score. The same 120-day-old employment observation might be acceptable for exploratory territory research and unacceptable for automatically reassigning a high-value opportunity. A field is fresh enough only when its age, source, verification state and intended action fit an approved policy.
| Clock | What it records | What it can support | What it cannot prove |
|---|---|---|---|
| Event time | When the real-world change took effect, if known | Ordering employment or company events | That your source observed the event immediately |
| Source-observed time | When a source recorded or confirmed the value | Age of the underlying evidence | That the source was complete or correct |
| Retrieved time | When your workflow received the value | Audit of API and CRM activity | That the value itself was newly observed |
| Verified time | When a specific verification test ran | Age of that test result | Employment, identity, permission or guaranteed delivery |
Illustrative sequence for a job change. Dates show why a 10 October retrieval does not make the underlying employment evidence one day old.
At retrieval, the event is 70 days old and the source observation is 53 days old. The mailbox check is newer, but it does not independently establish current employment.
Use a small set of decision-grade data quality metrics
Freshness becomes manageable when the metrics follow the decision path. Do not average every field into one quality score: a fresh company domain should not cancel an expired phone, and a current phone should not conceal an ambiguous person match.
Start with five measures. Age is the elapsed time from the best available source observation or verification. Threshold compliance is the share of records within the approved age limit for a field and use. Current usable coverage is the share of attempted records that pass identity, employment, field and freshness rules. Conflict rate is the share with unresolved disagreement between credible sources. Cost per current usable result divides all relevant acquisition and review cost by the final accepted, unique and sufficiently current results.
Keep denominators visible. “82% fresh” is not useful unless readers know whether that means 820 of 1,000 attempted contacts, 820 of 900 returned contacts or 820 non-null fields. These answer different questions. Use attempted records for operational coverage and returned records for diagnosing a supplier or stage.
Illustrative sequential cohort of 1,000 CRM contacts. The values are planning assumptions, not TargetWise, customer or competitor results.
Current usable coverage is 560 ÷ 1,000 = 56%. A nominal 82% threshold-compliance figure would overstate the records safe for this illustrative action.
Set warning and blocking thresholds by field and action
A freshness service-level objective should state a field, a clock, a threshold, an action and an owner. “Refresh contacts quarterly” is a schedule, not an acceptance rule. A better policy says: warn when employment evidence is more than 60 days old before routine sequencing; block automatic opportunity reassignment after 120 days; and require human review when credible sources disagree.
| Field or relationship | Age clock | Illustrative warning | Illustrative block | Required response |
|---|---|---|---|---|
| Company identity | Source-observed date | 365 days | Conflict on legal identity | Resolve entity before merging or contracting |
| Person–company employment | Latest supporting observation | 60 days | 120 days for consequential automation | Re-check; preserve prior relationship |
| Work email status | Mailbox verification time | 30 days | Rejected, invalid or policy-excluded state | Do not equate acceptance with delivery |
| Business phone | Verification or source observation | 90 days | Unverified type or conflicting owner | Review before high-impact use |
| Company size band | Source-observed date | 180 days | Material conflict near routing boundary | Use a range or review queue |
These numbers are examples, not universal standards. Calibrate them against the cost of a wrong decision, how quickly the field changes, the availability of newer evidence and review capacity. A procurement segmentation model can often tolerate more age than a job-change trigger that will write directly to CRM.
Move the threshold to examine an illustrative 1,000-record cohort. Ages are fixed planning assumptions; the control demonstrates a policy trade-off, not measured performance.
At 90 days, 700 of 1,000 illustrative records remain eligible.
The graph is why data timeliness cannot be optimised in isolation. A 30-day limit can reduce stale-data risk while pushing more records into refresh and review. A 180-day limit preserves coverage but accepts older evidence. The right threshold is the lowest age that the decision needs and the operation can support—not the number that makes a dashboard look green.
Build a freshness ledger before writing to CRM
Store freshness at field or relationship level. At minimum, retain the value, normalised value, source or provider identifier, source-observed time when supplied, retrieval time, verification time and method, confidence or status, policy version and write decision. Keep raw supplier payloads only where security, contract and retention policy permit.
Separate candidate data from accepted CRM data. Enrichment can first create a proposal containing the returned value and evidence. A deterministic policy then accepts, rejects or queues it. This prevents a new but weaker value from overwriting a trusted one simply because it arrived later.
Make writes idempotent. Use a stable request or batch identifier, person and company keys, and a write ledger. If a timeout makes the outcome uncertain, check the ledger before retrying. A transport failure is not a “not found” result; a partial result is not a complete person record; and the absence of a paid field should not silently erase an existing value.
Handle stale data, conflicts and job changes explicitly
When sources disagree, “latest retrieved” is a poor survivor rule. Compare what each source actually observed, its scope and its specificity. One source may list a person’s latest public role while another reflects an older internal CRM confirmation. The system should preserve both candidates, calculate their evidence ages and route material conflicts for review.
A job change is not a command to replace a contact. End-date the prior employment relationship when supported, create or update the new relationship, and reassess account ownership, opportunity roles and open tasks. Do not erase the historical link that explains earlier activity. If the person is ambiguous, keep the event as a candidate until identity resolution passes.
Catch-all email domains require similar restraint. A catch-all response may show that the domain accepts mail broadly; it does not confirm the named mailbox or guarantee delivery. A technically acceptable email may still be inappropriate under your policy. Business phones should preserve type and verification evidence; an untyped or unverified number should not be promoted to “direct dial” merely to increase completeness.
Run data quality monitoring as a control loop
Monitoring should identify which records are approaching a decision threshold, not merely count rows updated this week. Build cohorts by field, action and source. Report age percentiles, missing source dates, unresolved conflicts, job-change events, duplicates, API error states and current usable coverage. Break the results down by business unit or workflow so one healthy cohort cannot hide another’s risk.
Track the transition between states. A rising number of recently retrieved records alongside flat current usable coverage can indicate that refreshes are returning partial, ambiguous or duplicate results. A falling verification-age metric alongside a rising conflict rate may mean the system is checking channels without resolving identity or employment.
Give every alert an owner and a response. Warning thresholds can schedule a refresh. Blocking thresholds can pause a sequence, routing decision or overwrite. Conflicts can enter a bounded review queue. Operational errors can retry with back-off, while a genuine not-found result can be recorded without repeated paid attempts until a new event justifies them.
Calculate cost per current usable result
Credit or lookup price is only the numerator’s first component. Include paid field attempts, platform fees attributable to the cohort, engineering or integration effort, review labour and duplicate-resolution work. In the denominator, count unique results that pass the identity, employment, field, freshness and policy rules for the intended action.
Suppose an illustrative pilot attempts 1,000 contacts. Lookup charges total $220, allocated platform and integration cost is $380, and human review costs $240. If 560 unique records have a current usable channel, total pilot cost is $840 and cost per current usable result is $1.50. Dividing $220 by 820 recently observed records would produce $0.27, but it would omit costs and use the wrong denominator.
Choose a cadence for an illustrative cohort of 10,000 records. The model assumes $0.08 per attempted refresh, 60% current usable yield and evenly distributed refreshes. It is not TargetWise pricing or measured performance.
Quarterly refresh creates 40,000 annual attempts; at the illustrative assumptions, average scheduled age is 45 days and lookup-only cost per current usable result is $0.13.
The lookup-only unit cost remains constant in this simplified chart because yield and rate are fixed. Total annual spend and average scheduled age change materially. A real model should vary yield, review rate and duplicate rate by cohort, then add event-triggered refreshes for records whose risk justifies them.
A 30-day implementation checklist
- Choose five consequential fields or relationships. Start where stale values can misroute, overwrite or trigger unwanted contact. Document the decision each one affects.
- Define the clocks. Map event, source-observed, retrieved and verified timestamps. Mark unknown source dates as unknown rather than substituting retrieval time.
- Set warn and block rules. Attach thresholds to a field, use case, owner and permitted response. Version the policy.
- Create a proposal ledger. Record candidates and evidence separately from accepted CRM values. Include request IDs and deduplication keys.
- Run a stratified pilot. Sample active accounts, inactive accounts, recent enrichments, older records and hard-to-match segments. Report every denominator.
- Measure current usable coverage. Require identity, current employment where relevant, accepted field state, freshness and uniqueness. Separate found from verified and verified from guaranteed delivery.
- Test failure paths. Simulate timeouts, partial and not-found results, ambiguous people, catch-all domains, unverified phones, duplicate contacts and conflicting sources.
- Reconcile and roll back. Confirm what was written, retain the previous value and evidence, and make reversals auditable.
After the pilot, compare cohorts rather than declaring one universal match rate. If one segment has low current usable coverage, determine whether the constraint is discovery, identity, employment, field verification, freshness, duplicates or review capacity. That diagnosis tells you whether to add another source, change thresholds, improve matching or stop spending on repeated attempts.
Limitations and buyer objections
No freshness architecture makes external data permanently correct. Source coverage differs, observation can lag an event, and some fields have no reliable dated observation. A supplier’s “updated daily” statement can describe pipeline cadence without showing that every underlying record changed or was re-observed daily. Ask for field-level timestamps, status definitions, source handling, retry semantics and sample evidence.
Nor should freshness be used as a proxy for lawful or appropriate use. A newly retrieved contact field does not establish consent, permission, outreach suitability or contractual rights. Apply your own legal basis, suppression, security, retention and regional policies before activation.
Finally, do not compare vendors only through credit prices. Run the same authorised, time-bounded sample, normalise outputs, preserve raw statuses and calculate incremental current usable results after deduplication. Report unknowns. A provider that returns fewer values with clearer evidence may be more useful for a consequential workflow than one that returns more undated candidates—but that decision belongs to the measured pilot, not marketing language.
Frequently asked questions
What is data freshness in B2B enrichment?
It is the degree to which evidence for a contact or company field is current enough for its intended use. Measure from the most relevant source observation or verification, then apply a field- and action-specific threshold. Retrieval time alone is insufficient.
How is data freshness different from data timeliness?
Freshness describes how old the available evidence is when used. Timeliness asks whether it arrived within the deadline required by a workflow. A record can be relatively fresh but too late for lead routing, or delivered quickly while based on old evidence.
What makes B2B data stale?
Employment changes, company restructuring, mailbox and phone changes, delayed source observations, infrequent processing and unreviewed CRM copies all create stale data. Staleness is field-specific: legal identity and job title do not usually change at the same pace.
How often should CRM contact data be refreshed?
Use risk-based cadences rather than one schedule. Combine periodic checks with event-triggered and point-of-use refreshes. High-impact employment or channel decisions may need shorter limits; stable company fields may tolerate longer intervals. Validate cadence with measured current usable coverage and cost.
Does a recent enrichment timestamp prove that a record is current?
No. It proves when your workflow retrieved or wrote the data. Ask when the source observed the value and when any field-specific verification ran. If those dates are missing, record the freshness as unknown rather than assuming it is recent.
Does email verification guarantee delivery?
No. Verification is a dated technical assessment with method-specific outcomes. Catch-all behaviour, later mailbox changes, throttling, reputation, content and recipient policy can still affect delivery. It also does not establish identity, employment or permission.
How should job changes be handled in CRM?
Preserve the old employment relationship, add the new candidate relationship and reassess account and opportunity roles. Do not automatically transfer ownership or overwrite history until identity and evidence pass the workflow’s acceptance rules.
What should happen when enrichment providers disagree?
Preserve the competing values, their source-observed dates, retrieval dates and statuses. Apply a documented survivor rule only when evidence is sufficient. Material conflicts near a routing, scoring or outreach boundary should enter a human review queue.
What is the best metric for an enrichment pilot?
Use current usable coverage: unique results that pass identity, employment where needed, field, freshness and policy rules divided by all attempted records. Pair it with cost per current usable result and a breakdown of failure reasons. Do not substitute returned-value rate.
Can missing or failed API results be treated as stale records?
Not automatically. Missing means a field was not supplied; not found means the provider did not resolve a result under that request; an operational failure means the request may not have completed. Preserve these states separately so retries and CRM writes behave safely.
