Data quality

I watch the CRM data that every forecast, routing rule, and comp calc reads from, because a report is only as honest as the fields under it. The failure mode is a dashboard that looks clean while duplicates split pipeline, blank keys break routing, and reps quietly stop trusting the record.

Shape of it

Required-field completeness by object
Accounts 88% Contacts 74% Opportunities 91% Leads 62%
Illustrative, not a benchmark. Completeness falls off fast on the objects reps touch least.
01
Duplicate rate
Share of records that duplicate an existing entity on a match key (domain, email, account name).
duplicate records / total records
Example 120,000 accounts, 2,300 collapse to an existing entity on domain → 1.9%, under the gate. Cross 10% and routing sends two reps at the same buyer.
Benchmark Practitioner target under 2% on managed keys; anything past 10% means the dedupe rule or the intake path is broken
Duplicates split pipeline across records, misroute leads, and double-count ARR; they corrupt every rollup silently.
02
Required-field completeness
Share of records with all business-required fields populated (not just the platform-required ones).
records with all required fields / total records
Example 23,000 opps, 20,900 carry stage, amount, close date, and forecast category → 91%. The 2,100 blanks are the rows that break the commit rollup.
Benchmark Practitioner target 90%+ on core objects; leads and contacts run lower than opps because reps touch them less
Blank keys break routing, scoring, and forecasting; a field nobody fills is a field you cannot report on.
03
Validation pass rate
Share of record saves that clear validation rules on the first attempt.
saves passing validation / total save attempts
Example 5,000 opp saves in a week, 180 blocked by validation → 96.4% pass. If one rule causes 70% of the blocks, that rule needs a rethink, not the reps.
Benchmark Practitioner range 92-98%; a sustained drop below 90% means a rule is fighting the reps, not the data
Too few rules and garbage flows in; too many and reps route around them with junk values. The pass rate tells you which failure you have.
04
Field fill rate (by field)
Population rate of a specific field across the records that should carry it.
records with value / records in scope
Example Industry is 41% populated across 160,000 accounts. If territory routing keys off industry, 59% of accounts route on a guess.
Benchmark Judge per field against its use: a field feeding routing or comp needs 95%+, a nice-to-have can sit lower
Aggregate completeness hides the one field a downstream process depends on; you have to read fill rate field by field.
05
Stale record rate
Share of records not modified within a freshness window (job changes, closed accounts, dead contacts).
records past freshness window / total records
Example 464,000 contacts, 138,000 untouched in 18 months → 30% stale. At a ~25%/yr decay, roughly a third of those emails no longer reach a live person.
Benchmark B2B contact data decays ~22-30% per year; set a re-verify cadence against your own decay curve, not a fixed date
Stale data is worse than missing data because it looks trustworthy; a rep dials it before finding out it is dead.
06
Data quality score
Composite 0-100 score blending completeness, validity, uniqueness, and freshness per record or object.
Example An account scores 58: full firmographics but a duplicate parent, a stale primary contact, and no owner. The score surfaces it for cleanup before a rep works a broken record.
Benchmark Set your own weighting and threshold (e.g. flag anything under 70); the value is the trend, not the absolute number
A single number that lets you trend quality over time and target cleanup, instead of arguing field by field.