Data Quality Score
Data quality score measures how complete, valid, unique, and fresh your CRM records are — per object and org-wide. Open the Quality tab to see scores, distribution, and a 30-day trend, then run scoring on demand or configure checks under Settings → Quality.
Read this before you run scoring. Scoring is not read-only. It writes hidden score fields onto your Account, Contact, and Lead records, and Salesforce advances each record's Last Modified Date on every write. If any of your reports, list views, automations, or integrations depend on Last Modified Date, that logic will become inaccurate after a scoring run. See Before you run scoring — what you must know below. This is the single most important thing to understand about the feature.
Before you run scoring — what you must know
Data quality scoring is powerful, but it changes data in your org and depends on a few things being in place. Work through this list before your first run — especially in a production org.
1. Scoring writes to your records
Every scoring run updates the records it evaluates. Data
Cleanser stores each record's score and per-dimension results in hidden
DCM_Quality_* fields directly on the Account, Contact, and Lead.
This is a genuine DML update on potentially
every record in the object — not a read-only calculation.
Because these are real record updates, expect the following knock-on effects:
- Last Modified Date moves on every scored record (see below).
- Update automations fire. Any before/after update Flow, Process Builder, Apex trigger, or validation rule on Account/Contact/Lead can run when scoring writes back. Confirm your automations tolerate a system-driven field update, and watch your org limits on large objects.
- Storage and sharing recalculation. A full scan touches large record volumes; schedule big runs outside peak hours.
2. Last Modified Date pollution — the big one
Scoring changes what Last Modified Date means. After a run, a record's Last Modified Date reflects when Data Cleanser last scored it — not when a person last changed real business data.
Anything that treats Last Modified Date as "last real change" will silently break, including:
- Reports & dashboards filtered or sorted on Last Modified Date (e.g. "stale records").
- List views such as "Recently modified" or "Not touched in 90 days".
- Time-based automation — scheduled Flows, workflow time triggers, and Apex that keys off Last Modified Date.
-
Integrations & ETL — middleware, data-warehouse
incremental loads, and sync tools that pull "records changed since X" using
SystemModstamp/ Last Modified Date will re-pull every scored record.
The fix: Data Cleanser adds a
Business Last Touched field
(DCM_Business_Last_Touched__c) on Account, Contact, and Lead. It
tracks genuine business-data changes and logged activity and is
never bumped by scoring runs. Point your reports, list views,
automations, and integrations at
Business Last Touched instead of Last Modified Date. Grant
read access to this field in your permission sets and add it to the layouts or
list views that need it.
The Quality tab shows this same warning as a dismissible banner ("Scoring changes what Last Modified Date means"). It is remembered per user — dismissing it only hides it for you, not for your teammates.
3. Prerequisites checklist
- Data Quality license. The Quality tab requires it. Without the license the tab is hidden and record score cards show an upgrade prompt — scoring cannot run.
-
Field-level security. The running user needs
edit access to the hidden
DCM_Quality_*fields (scoring writes them) and at least read access to Business Last Touched. The Data Cleanser User permission set grants these — assign it before running. - Record access. Scoring only writes records the running user can edit. Records the user cannot edit are skipped, which can leave them Unscored.
- An active scenario (for Uniqueness). The Uniqueness dimension is only scored when a matching scenario is active for that object — see below. Completeness, Validity, and Freshness score without one.
- Configured checks. If no checks are configured for an object, a run can finish without producing scores ("Scoring finished but no scores were produced"). Configure checks under Settings → Quality first.
Wherever possible, run scoring in a sandbox or full-copy org first to see the Last Modified Date impact and confirm your automations behave before you score production data.
Open the Quality dashboard
The Quality tab sits between Review and Settings in the app navigation. The dashboard has two main actions:
- Configure scoring — opens Settings → Quality for the selected object.
- Run scoring — queues a background batch job that evaluates every record in scope.
On first open, the dashboard shows an empty state. Run scoring to populate scores — batch jobs run in the background and may take a few minutes in large orgs.
Scope tabs
Use the scope bar at the top to switch between All objects, Accounts, Contacts, and Leads. Each scope shows:
- Hero score — the average quality score for the scope, with a color band.
- Distribution — how many records fall in each band.
- Trend — daily snapshot averages for the last 30 days.
- Per-object cards — when viewing All objects, a card per object with its score and record count.
Score bands
| Band | Range | Meaning |
|---|---|---|
| Excellent | 90–100 | Records meet nearly all configured checks. |
| Good | 70–89 | Mostly healthy with a few gaps. |
| Fair | 50–69 | Noticeable completeness or validity issues. |
| Poor | 0–49 | Many records fail one or more checks. |
| Unscored | — | Not yet evaluated — run scoring to populate. |
Four scoring dimensions
Each record's score is a weighted blend of four dimensions:
- Completeness
- Are key fields populated? Default checks look for missing values on important fields.
- Validity
- Do values follow expected formats — email, phone, website URL, picklist, regex, or number range?
- Uniqueness
- Does the record duplicate another? Requires an active scenario for the object — uniqueness is scored from your scenario's match results. With no active scenario, the dimension shows N/A and the dashboard prompts you to "Activate a scenario to score uniqueness".
- Freshness
- Has the record seen genuine business activity within the threshold (default 365 days)? Freshness scores against Business Last Touched and logged activity — not quality scoring runs — so re-scoring never makes a stale record look fresh.
Run scoring
One Run scoring button chooses the right mode for you. Both modes write scores back to your records:
- Full scan (automatic)
- Evaluates every record in scope. Used for the first run, whenever scoring rules change (weights, checks, freshness threshold, or the active match scenario), and when the full rescore interval has elapsed.
- Changed only (automatic)
- When rules are unchanged and a full run completed recently, scores only records created or edited since the last run — faster and writes to fewer records.
- Full rescore interval
- Set in Settings → Auto Schedule → Data Quality (default 7 days). Forces a full scan periodically so calendar-based Freshness and duplicate-group Uniqueness stay accurate even when records are not edited.
- Force full scan (override)
- Also in Settings → Quality. Saves the current profile, then scores every record for the selected object immediately — even when rules are unchanged and the full-rescore interval has not elapsed. Use after large data loads or when freshness and uniqueness look stale.
- Scoring schedule
- Configure weekdays and run time under Settings → Auto Schedule → Data Quality (or use Configure schedule on Settings → Quality). Full detail: Data Quality Scheduling.
Both run modes update records and therefore move Last Modified Date. Changed-only mode limits how many records are touched, but it does not avoid the Last Modified Date effect on the records it does score.
Choose a scope
Pick All objects or a single object tab.
Click Run scoring
A batch job queues in the background. A progress band shows percentage complete and records processed. You can navigate away — scoring continues.
Review results
When complete, the hero score, distribution, trend chart, and per-object cards refresh. Daily snapshots feed the trend — run scoring regularly to build history.
If a run fails, a banner appears with the error and a Retry button. Check Settings → Warnings for details.
Configure scoring
Open Settings → Quality (or click Configure scoring on the dashboard) to edit the scoring profile for each object. The panel has object tabs (Accounts, Contacts, Leads), a Simple / Advanced mode toggle, and two save actions: Save and Save & run scoring.
Simple mode — recommended defaults
Simple mode scores against the bundled default checks for typical hygiene scenarios on the selected object. Dimension weights, the freshness threshold, and the Common use cases cards are visible — switch to Advanced to add, remove, or reweight individual field checks.
The Common use cases section explains what each dimension measures for the selected object — completeness of core profile fields, validity of formats and picklists, uniqueness against active duplicate groups, and freshness from last activity and business touch dates.
Advanced mode — weights and custom checks
- Dimension weights
- Completeness, Validity, Uniqueness, and Freshness weights must total 100%. Defaults are 30 / 30 / 25 / 15. Adjust with sliders or number inputs; use Reset to defaults to restore the bundled weights.
- Check types
- Populated, Email format, Phone format, Website format, Picklist valid, Regex, Number range, and Freshness — each tied to a field and dimension. See Quality Check Reference for pass/fail rules, configuration, and default examples for every type.
- Field picker
- Checks use a field dropdown (label shown, API name stored) instead of typing API names. Freshness checks offer a curated list: Business Last Touched, Last Activity Date, and Created Date.
- Regex & Number range
- Regex checks expose a Pattern field; Number range checks expose Min and Max. The UI validates patterns and bounds before save.
- Freshness threshold
- Records without genuine business activity within this window lose freshness points (default 365 days). Applies to all Freshness checks on the object.
- Reset to defaults
- Restores the bundled check set and weights for the object. Existing profiles are upgraded idempotently when defaults change (for example, Account Website moves from Regex to Website format).
Click Save to apply changes, or Save & run scoring to save and immediately queue a scoring batch for the selected object.
Record-level score card
When the Data Quality license is active, a Data quality score card appears on Account, Contact, and Lead record pages. It shows:
- An overall score gauge with the same band colors as the dashboard.
- Per-dimension breakdown with pass/fail indicators.
- A list of failed checks so reps know exactly what to fix.
Records are scored during the batch run. If a record has not been scored yet, the card shows a not-scored state until the next run completes.
Relationship to duplicate matching
Data quality scoring and duplicate matching are separate capabilities. Uniqueness checks flag records that share values on configured fields, but merging duplicates still happens in the Review tab. See The Duplicate Queue.