The Account-Base Refresh Cycle: Keeping Company Records Current
You can stand up and run a recurring account-refresh cycle that tiers a due queue, updates firmographics without clobbering verified fields, and reports data-health KPIs.
Key takeaways
- The most-cited B2B decay benchmark of 22.5% a year is a blended average that systematically understates company-field risk; never quote it as the firmographic rate.
- Run the cycle in this order: deduplicate, standardize, then enrich - enriching first pays to append duplicates and leaves three enriched records for one company.
- Single-source enrichment delivers only 30-60% match rates; a clean, waterfall-fed refresh pushes that to 80-95%.
- The native Salesforce Parent Account field holds only one level up and Ultimate Parent is not auto-maintained, so every acquisition mechanically produces a stale hierarchy unless an external sync writes it.
- Report per-field health dimensions and exception counts by owner, not a composite score, because a single number moves for reasons nobody can trace and gets ignored.
- In Refolk's index, US data-quality specialists outnumber RevOps managers roughly 1.9x, so the usual constraint on running this cycle is process ownership, not hands to execute.
Keeping company records current is its own job, distinct from keeping contacts current. This guide is for revenue operations, recruiting operations, and anyone answerable for how the account base was gathered and maintained. It gives you a recurring cycle you can stand up and run: build a due queue by tier, refresh firmographics without clobbering verified fields, reconcile corporate events into the hierarchy, and report data-health KPIs against the prior cycle.
Most public advice on CRM freshness is contact-centric - titles, emails, job changes - or a pitch for an enrichment vendor. This one is scoped to company-level decay: acquisitions, rebrands, headcount swings, domain and status changes, and hierarchy drift. Those move slower than contact fields but are harder to catch, and they rarely get their own procedure.
What company-level decay actually is
Company-level decay is the drift of firmographic fields - headcount, funding stage, domain, legal name, status, and corporate parentage - away from reality over time. It behaves differently from contact decay, and treating them as one number will mislead you.
The most-cited aggregate benchmark is that B2B data decays at about 2.1% a month, or 22.5% a year, from MarketingSherpa research that HubSpot uses as its benchmark. Dun & Bradstreet puts overall B2B decay higher, at roughly 30% to 40% per year. Field-level analysis is starker still: email address decay compounds above 70% across a full year. But here is the trap. That 22.5% headline is a blended average. It reflects how differently decay behaves across field types, which is exactly why a single aggregate figure understates the problem for fast-moving sectors like SaaS. Behavioral signals expire in weeks, contact fields follow the monthly rate, and firmographics drift more slowly - so quoting the blend as if it were the firmographic rate is wrong in both directions.
| Scope | Rate | Source |
|---|---|---|
| Aggregate B2B, annual | 22.5%/yr | MarketingSherpa/HubSpot |
| Email, annual compounded | 70%+/yr | Landbase |
| Overall D&B estimate | 30-40%/yr | Dun & Bradstreet |
| Firmographics (relative) | slower than monthly contact rate | Derrick |
Be honest about the limit here: a company-field-specific decay rate for headcount, domain, and hierarchy is not established publicly as an isolated measured figure. Treat any single number you see as load-bearing but unverified. What you can measure locally is your own freshness age and how often a refresh actually changes a field - that is the rate that matters for your base, and this cycle is built to produce it.
Set the cadence by tier, not by calendar
Refresh cadence should be driven by account tier and field velocity, not a single interval applied to everyone. Companies change size, leadership, and stack frequently, so the base should be refreshed quarterly at minimum, with real-time updates for high-priority accounts.
A workable tiered model runs monthly refreshes for high-velocity fields, event-triggered updates for job changes and bounces, and quarterly audits for firmographic data. That gives most B2B teams the coverage they need without over-spending on enrichment credits. Inside any tier, a record earns a refresh when it crosses a threshold rather than only on the calendar.
| Tier | Fields | Recommended cadence |
|---|---|---|
| Active-deal / high-priority | firmographics + signals | real-time / monthly |
| Strategic | firmographics | monthly to quarterly |
| Broad base / cold | firmographics | quarterly audit |
The threshold that gates all of this: if bounce rates exceed 2% or records average more than 90 days since last enrichment, begin with a full database refresh before setting your ongoing cadence. Do not try to set steady-state cadence on top of a base that is already stale - you will spend the first several cycles just catching up and never see a clean trend line.
Run the cycle in the right order
The single most consequential decision in this cycle is order of operations: deduplicate and standardize first, then enrich. The recommended sequence is cleanse first, normalize second, enrich third, and skipping or reordering these steps typically multiplies errors downstream.
The reason is both cost and correctness. Deduplicating and standardizing before enrichment stops you paying to append data to duplicate records, and it makes the input for enrichment matching as clean as possible, which improves match rates. Reverse it and the arithmetic turns against you: if you enrich all three copies before you standardize and deduplicate, you now have three enriched records that still represent one company. More data, same problem, three times the credits.
The refresh cycle, in order
- Queue by tierFlag accounts past their tier threshold or showing bounce signals
- BaselineMeasure completeness, duplicates, validity, freshness before touching data
- DeduplicateMerge copies so no credit is spent enriching the same company twice
- StandardizeNormalize name, domain, industry, country to one format per field
- EnrichRefresh firmographics add-not-replace, skipping frozen fields
- Reconcile & reportFix hierarchy, log every change, publish KPIs by owner
Match rate is where clean inputs pay off. One vendor typically delivers 30-60% match rates on its own; a waterfall that cascades across multiple sources pushes that to 80-95%. Order your providers so a field only escalates to a pricier source when the cheaper one is empty or low-confidence. That escalation logic is the same add-not-replace rule that protects verified fields, applied to cost.
Enriching before you deduplicate does not clean your data. It pays full price to make the mess bigger.
The step-by-step cycle
This is the procedure end to end. Setup is roughly half a day for the queue and one day for the first baseline; each recurring run is hours per segment once the tiers and rules are in place. Roles are noted so you can assign ownership rather than leaving it to whoever notices the drift.
The account-base refresh cycle
- Build the due queue by tierPull all accounts and flag any where last-enrichment date exceeds the tier threshold or bounce signals appear. Done is a dated, tier-labelled queue. If bounce exceeds 2% or records average over 90 days since enrichment, run a full refresh first.
- Profile and baselineMeasure completeness, duplicate rate, validity and freshness age before touching data. Done is a dashboard with per-field scores you can trend against next cycle.
- DeduplicateMerge duplicate accounts first so credits and matches are not wasted. Standardize name and domain just enough to detect duplicates, then merge until the rate is at or below 2%.
- Standardize and normalizeNormalize company names, domains, industry codes and country formats to one format per field across the base. Done is consistent inputs that match and enrich correctly.
- Enrich firmographics with add-not-replaceRefresh headcount, funding, domain and status, overwriting only empty or low-confidence fields and skipping frozen fields. Done is higher fill rate with verified fields untouched.
- Detect and reconcile corporate eventsCompare provider parent and ultimate-parent keys against the CRM, reparent acquired accounts, and flag rebrands and domain changes. Done is a hierarchy that matches current corporate structure.
- Validate and write the audit trailConfirm formats and rules, then log every field change with source and timestamp before syncing to any live workflow. Done is a clean validation pass plus a complete change log.
- Report KPIs and close the loopPublish completeness, duplicate rate, freshness age, match rate and exceptions by owner, trended against the prior cycle. Done is a dashboard owners actually read.
Keep manual effort under about 5% of total records for well-defined cases. If a stage needs a human on more than that, either the rules are wrong or the data is worse than the baseline suggested. Automation is the goal, but the audit trail and frozen-field flags are what make automation safe.
Protect verified fields with frozen flags and an audit trail
A refresh that overwrites a manually corrected value is worse than no refresh, because it launders a bad write behind an improved fill rate. Protecting verified fields relies on three documented mechanisms: frozen-field flags, add-not-replace waterfall logic, and an audit trail.
The frozen flag is the load-bearing piece, and it must be explicit. One hierarchy tool exposes it as a checkbox: when the box is ticked, the policy will not change the current parent, including scenarios where the parent field is meant to remain null. Without such a flag the refresh policy will re-parent or overwrite by default, which is why add-not-replace has to be encoded, not assumed. A field should only update when it is empty or low-confidence.
The audit trail is your record of what changed and where it came from. In Salesforce, Field Audit Trail extends Field History Tracking so you can keep field history indefinitely and maintain a comprehensive record of changes, up to 200 tracked fields per object, compared with 20 for standard field history tracking. By default it archives data after 18 months in production and after one month in sandboxes, and it is part of a paid Shield component priced at roughly 10% of your total Salesforce spend, so scope it to the fields that matter.
Refolk is where I close the ownership gap this section exposes. Frozen flags and audit trails are process, and process needs a named owner. When you need to find the people who have actually built this - RevOps leaders who have run enrichment projects, or data stewards with hierarchy experience - you can ask for them in plain English and get them back.
Detect corporate events and reconcile the hierarchy
Hierarchy drift is the company-level decay that native CRMs are worst at catching. An acquisition changes the corporate structure of both companies: in your CRM, the acquired company's accounts need to be reparented to the acquiring company's ultimate parent, and the Ultimate Parent fields for all affected accounts need to update.
The problem is structural, not lazy. The native Salesforce Parent Account field is a lookup that captures only the direct, one-level-up parent. The Ultimate Parent field is optional and is not maintained automatically, so it goes stale whenever an acquisition or reorganization shifts the chain. Every acquisition mechanically produces a stale field unless an external sync writes the new structure.
To reconcile, key the hierarchy on something stable. Choose a consistent primary key - a DUNS number, website domain, primary address, or product line - and identify the Global Ultimate Parent, the top-level legal entity overseeing all subsidiaries. Then audit for gaps where a missing parent account would break the tree. Run this as a monthly sweep: compare the provider's parent and ultimate-parent keys against the CRM, reparent what has moved, and flag rebrands and domain changes for review. Regular hierarchy audits and automated error-flagging catch these situations before routing and roll-ups run on a structure that no longer exists.
How a company record is keyed and parented
- Global Ultimate ParentThe top legal entity; the anchor that routing and roll-ups sum to
- Direct parentOne level up; the only relationship the native field holds
- Account recordThe subsidiary or division you are refreshing
- Primary keyDUNS, domain, address or product line that resolves the record to reality
How this cycle goes wrong
The failure modes below are where refresh cycles quietly produce worse data while the dashboard says things improved. Each has a false positive that looks like success, so watch the check, not the headline number.
- Enrich before dedup. Three records for one company all get enriched, inflating counts and burning credits. It looks like a higher record count. Check: run duplicate detection after enrichment and compare to the pre-run count.
- Silent overwrite of verified fields. An automated refresh clobbers a manually corrected headcount. It looks like an improved fill rate. Check: field history shows an integration user as the last editor on a frozen field.
- Stale ultimate parent read as current. Routing and roll-ups run on a corporate structure that no longer exists because nobody reparented promptly. It looks fine until a deal routes to the wrong owner. Check: reconcile parent keys against the provider monthly.
- Composite health score masks a broken field. A single number moves for reasons nobody can trace, so it gets ignored. Check: report per-field dimensions instead of one blended score.
- Single-source enrichment mistaken for coverage. A 30-60% match rate leaves gaps that get read as "no data exists." Check: measure match rate per source; a waterfall raises it to 80-95%.
- Audit trail assumed to be a backup. It records the change but cannot undo a bad write. Check: pair it with a real backup.
- Wrong-company enrichment on a name match. A firmographic API called with a misspelled company name returns no match or a wrong match. Check: standardize and validate the domain before the append.
Report on account data health
Report the health dimensions that drive decisions on the fields that drive decisions, plus exception counts by owner. The standard dimensions are accuracy, completeness, consistency, timeliness, validity, and uniqueness. Do not collapse them into one number - a composite score moves for reasons nobody can trace and gets ignored.
Completeness is populated required fields divided by total required fields across all records; anything below 90% means reps are working with incomplete information. For accuracy, most B2B operations should target 95% or higher, with 90-94% acceptable but flagged for improvement and below 90% treated as critical. Duplicate rate is straightforward - 20 duplicates in 1,000 records is a 2% duplicate rate - and the target is under 2%. Expect the starting point to be rough: typical CRMs carry 10-25% duplicates.
The most useful reporting choice is to report exception counts by owner rather than percentages. A percentage tells leadership the base is 93% complete; an exception count tells an account owner they have 41 records to fix. The second one gets fixed.
Before you call a cycle done
- Every account has a tier and a cadence assigned
- The baseline dashboard was captured before any data was changed
- Duplicate rate is at or below 2% after merging
- Company names, domains, industry codes and country formats use one format each
- Enrichment ran add-not-replace and no frozen field was overwritten
- Parent and ultimate-parent keys were reconciled against the provider this cycle
- Every field change is logged with source and timestamp
- KPIs are reported per-field with exceptions by owner, trended against last cycle
Staffing the cycle and keeping it current
The constraint on running this cycle is usually process ownership, not hands to execute. In Refolk's index of professional profiles, US data-quality analysts and data stewards number 2,044 against 1,072 revenue operations managers - the maintenance labor pool is roughly 1.9x the ops-owner pool. The people who can do the work outnumber the people who own the process, so name an owner before you hire executors.
| Role group | US | UK | US:UK ratio |
|---|---|---|---|
| Revenue Operations Manager | 1,072 | 214 | 5.0x |
| Data Quality Analyst / Data Steward | 2,044 | 494 | 4.1x |
Geography matters if you are building this outside the US. Refolk's index shows US:UK ratios of 5.0x for RevOps managers and 4.1x for data-quality specialists, so a UK or EU team is competing in a far smaller pool and should plan for longer hires. When you do hire, ask for the specific experience this cycle needs rather than a generic title - people who have implemented reparenting automation after an acquisition, or who have run tiered firmographic refresh cadences.
To keep the cycle itself current, re-check three things each quarter. First, the decay assumption: measure how often your refresh actually changes each field and let that observed rate reset your tier thresholds, since the published 22.5% is a blend you should not trust for firmographics. Second, the hierarchy source: confirm your provider's parent keys still reconcile cleanly, because a source that drifts silently is worse than no source. Third, the frozen-field list: as reps correct data by hand, the set of fields that need protection grows, and an add-not-replace policy is only as good as the flags behind it.
Field | Completeness % | Accuracy % | Duplicate % | Freshness age (days) | Match rate % Headcount | | | | | Funding stage | | | | | Domain | | | | | Status | | | | | Ultimate parent | | | | | Targets: accuracy >=95% (critical below 90%), completeness >=90%, duplicates <2% Exceptions by owner: Owner name :: count of records failing any target :: oldest freshness age
Fill one row per driving field; add an exceptions-by-owner block below. Trend each column against the prior cycle.
Run it, trend it, and let the numbers set next quarter's queue. A refresh cycle that produces its own health metrics stops being a periodic cleanup and becomes the thing that keeps the account base honest.
Questions practitioners ask
How often should I refresh company firmographics?
Tier the cadence rather than picking one interval. Refresh high-priority and active-deal accounts in real time or monthly, strategic accounts monthly to quarterly, and the broad cold base on a quarterly audit. As a trigger inside any tier, refresh a record when it exceeds 90 days since last enrichment or shows a bounce rate above 2%. Attribute-and-tier cadence gives most B2B teams coverage without over-spending on enrichment credits.
Should I deduplicate or enrich first?
Deduplicate and standardize first, then enrich. Enriching before deduplication means you pay to append data to duplicate records, and you end up with three enriched records that still represent one company. Clean inputs also raise match rates, moving you from the 30-60% single-source floor toward 80-95% with a waterfall. The recommended sequence is cleanse first, normalize second, enrich third.
How do I stop an automated refresh from overwriting fields a rep corrected by hand?
Encode frozen-field protection explicitly. Set an override flag, such as a checkbox, that tells the refresh policy not to change a field or a parent, and use add-not-replace logic so a field only updates when it is empty or low-confidence. Do not assume the default behavior protects verified data; without an explicit flag most policies overwrite. Pair this with an audit trail so you can see when an integration user last touched a protected field.
Why does account hierarchy go stale after an acquisition?
It is structural, not laziness. The native Salesforce Parent Account field captures only the direct, one-level-up parent, and the Ultimate Parent field is optional and not maintained automatically. So whenever an acquisition or reorganization shifts the chain, the field goes stale unless an external sync writes it. Reconcile provider parent and ultimate-parent keys against the CRM on a monthly sweep and reparent affected accounts.
What KPIs prove account data is healthy?
Report the standard dimensions - accuracy, completeness, consistency, timeliness, validity, and uniqueness - on the fields that drive decisions, plus exception counts by owner. Target 95% accuracy or higher; 90-94% is acceptable but flags room to improve, and below 90% is critical. Completeness below 90% means reps are working with incomplete information. Avoid a single composite score, which moves for untraceable reasons and gets ignored.
Try it on the search you came here for
Stop building boolean strings. Just describe the person.
Type one sentence. I plan the search, read GitHub, public LinkedIn and Crunchbase records, and the open web as it is right now, and hand back a ranked list with the reason next to every name.
01Describe them
One plain sentence. Role, city, stack, stage, whatever matters to you.
02I read the web live
GitHub, public LinkedIn and Crunchbase records, the open web. Not a database that went stale last quarter.
03You read the shortlist
Ranked, with the reasoning under every name. Open a profile, ask a follow-up, narrow it down.
- Staff backend engineers in NYC who shipped Rust in production
- Series A fintechs in SF under 50 people, growing headcount this year
- Maintainers of fast-growing Rust web frameworks on GitHub
- No boolean, no filters, no seat to buy. One box.
- Read at search time, so a profile updated yesterday counts today.
- Every step visible as it runs, every name with its reason.
500 free credits on sign-up. No card, no demo call. See real searches.