Quality Check Reference
Data quality scoring evaluates each record against a set of checks grouped into four dimensions: Completeness, Validity, Uniqueness, and Freshness. This page explains every check type, how pass/fail is decided, what you configure in Settings → Quality, and how checks roll up into scores.
New to scoring? Read Data Quality Score first — especially Before you run scoring — before adding or editing checks.
How checks roll up into a score
Scoring happens in two layers:
- Within a dimension — each check has a weight (%). The dimension score is the share of that weight that passed. Example: three Completeness checks weighted 20 / 15 / 10 — if two pass, the dimension score reflects 35 of 45 possible weight points.
- Across dimensions — Completeness, Validity, Uniqueness, and Freshness each have a profile weight (default 30 / 30 / 25 / 15, must total 100%). The record's overall score is the weighted average of the four dimension scores.
Failed checks appear on the record score card with a short message (for example, "Field is empty" or "Email format is invalid") so reps know what to fix.
Check type overview
| Check type | Typical dimension | Field required? | Empty field behavior | Extra configuration |
|---|---|---|---|---|
| Populated | Completeness | Yes | Fails — treated as missing | — |
| Email format | Validity | Yes | Passes — blank is not validated | — |
| Phone format | Validity | Yes | Passes — blank is not validated | — |
| Picklist valid | Validity | Yes (picklist or multi-select) | Passes — blank is not validated | — |
| Regex | Validity | Yes | Passes — blank is not validated | Pattern (required) |
| Number range | Validity | Yes (numeric field) | Passes — blank is not validated | Min and/or Max (optional) |
| Freshness | Freshness | Yes (date/datetime) | May fail if no usable activity date | Org threshold (days); field choice |
| Uniqueness | Uniqueness | No | N/A — implicit check | Active scenario required |
In Advanced mode you add checks for Completeness, Validity, and Freshness. Uniqueness is managed automatically from your active scenario — you cannot add or remove it manually.
Populated
- What it checks
- Whether the chosen field has a value (is not null).
- Pass
- The field contains any non-null value.
- Fail
- The field is empty (
null). Message: Field is empty. - Best for
- Completeness — required CRM fields such as Account Name, Contact LastName, or Lead Company.
Bundled defaults use Populated on core identity and contact fields per object. Pair with format checks on the same field when you care about both presence and shape (for example, Email populated + Email format).
Email format
- What it checks
- Whether a non-blank value looks like a valid email address.
- Rule
-
Must match
local@domain.tld— letters, digits, and common symbols in the local part; a domain with at least two letters in the TLD. Leading/trailing spaces are trimmed before validation. - Empty field
- Passes. Use a separate Populated check on the same field if empty emails should hurt Completeness.
- Fail message
- Email format is invalid.
Phone format
- What it checks
- Whether a non-blank phone value has a plausible digit count after stripping formatting characters.
- Rule
- Count digits only (ignore spaces, dashes, parentheses,
+, etc.). Pass when the count is 7–15 digits. - Empty field
- Passes. Combine with Populated if a missing phone should lower Completeness.
- Fail message
- Phone format is invalid.
Picklist valid
- What it checks
- Whether the stored value is an active picklist entry on the field's metadata.
- Pass
- Value matches an active picklist API value (Industry, Type, Lead Source, Status, etc.).
- Fail
- Value is present but not in the active picklist set — often a retired value or bad import. Message: Picklist value is not allowed.
- Empty field
- Passes. The field must be a picklist or multi-select; other types fail configuration.
Default profiles use Picklist valid on Account Industry and Type, Contact LeadSource, and Lead Industry and Status.
Regex
- What it checks
- Whether a non-blank text value matches a regular expression you supply.
- Configuration
- In Advanced mode, choose Regex and enter a Pattern. The pattern is required to save — the UI validates that it is a legal regular expression. Switching check type clears the pattern.
- Pass
- The full field value matches the pattern (Java/Salesforce
Patternsemantics). - Fail
- Value is present but does not match. Message: Value does not match pattern. If the pattern is missing at runtime, the check fails with a configuration error.
- Empty field
- Passes.
Default example — Account Website:
^(https?://)?[\w.-]+\.[a-zA-Z]{2,}.*$
Test patterns on a handful of real records in a sandbox before saving. Overly strict regex can mark most of the org as invalid with little visible feedback until you run scoring.
Number range
- What it checks
- Whether a numeric field value falls within optional minimum and/or maximum bounds.
- Configuration
- In Advanced mode, choose Number range and set Min and/or Max. Either bound is optional — leave one blank for a one-sided limit. Min cannot exceed Max; both must be numeric when provided.
- Pass
- Value is numeric and within bounds (inclusive).
- Fail
- Non-numeric value, or value below Min or above Max. Messages: Value is not numeric. or Value is out of range.
- Empty field
- Passes.
Default examples:
- Account / Lead AnnualRevenue — Min
0(no negative revenue). - Account NumberOfEmployees — Min
0, Max500000.
Freshness
- What it checks
- Whether the record has had genuine business activity recently enough against the profile's freshness threshold.
- Threshold
- Set at profile level in Settings → Quality (default 365 days). Applies to all Freshness checks on that object.
- Activity field
- Each Freshness check points at a date or datetime field. Defaults use LastActivityDate (70% weight) and LastModifiedDate (30% weight). When Last Modified Date is used, scoring reads Business Last Touched instead of the raw platform Last Modified Date so re-scoring does not inflate freshness.
- Pass / fail
- The engine compares the anchor date to today. The check passes when activity is recent enough (within roughly the first half of the threshold window) and fails with Record activity is stale. when it is not. If no usable date exists, it fails with No activity date available.
Do not point Freshness at raw Last Modified Date for "last real change" reporting — use Business Last Touched in reports and automations. The scoring engine already substitutes the business anchor when a Freshness check targets Last Modified Date, but other org logic will still see the polluted platform date after scoring runs.
Uniqueness
- What it checks
- Whether the record currently appears in a duplicate group from your active match scenario.
- Requirement
- An activated scenario for the same object. Without one, the Uniqueness dimension shows N/A on the dashboard ("Activate a scenario to score uniqueness").
- Pass
- Record is not in any detected duplicate group.
- Fail
- Record is in a duplicate group. Message: Record is in a duplicate group. Resolve duplicates in the Review tab — scoring does not merge records.
- Configuration
- Implicit — bundled with default profiles at 100% of the Uniqueness dimension. You adjust Uniqueness through dimension weight, not by adding checks. When a scenario is active, the dashboard notes which scenario uniqueness is based on.
Adding and editing checks
Open Settings → Quality
Pick the object tab (Accounts, Contacts, or Leads).
Switch to Advanced
Use case mode keeps bundled defaults. Advanced exposes dimension weights, the check list, and dependent fields for Regex and Number range.
Add or edit a row
Set Field API name, Check type, and Weight % within the dimension. For Regex, enter the pattern. For Number range, set Min and/or Max. Save, then run scoring.
Check weights only affect scoring within their dimension. Raising a single check from 10% to 50% does not change how much Completeness matters overall — that is controlled by the dimension weight (default 30% of the total score).
Bundled default checks (reference)
Reset to defaults restores the profiles below. Use them as templates when designing custom checks.
Accounts
Completeness: Name, Phone, Website, BillingStreet, BillingCity, Industry, Type (Populated).
Validity: Phone (format); Website (regex URL pattern); Industry & Type (picklist); AnnualRevenue (min 0); NumberOfEmployees (0–500000).
Uniqueness: implicit duplicate-group check.
Freshness: LastActivityDate (70%), LastModifiedDate / Business Last Touched (30%).
Contacts
Completeness: LastName, FirstName, Email, Phone, Title, MailingCity (Populated).
Validity: Email (format); Phone (format); LeadSource (picklist); Department (Populated).
Uniqueness: implicit duplicate-group check.
Freshness: LastActivityDate (70%), LastModifiedDate / Business Last Touched (30%).
Leads
Completeness: LastName, Company, Email, Phone, Title, Industry, LeadSource (Populated).
Validity: Email & Phone (format); Industry & Status (picklist); AnnualRevenue (min 0).
Uniqueness: implicit duplicate-group check.
Freshness: LastActivityDate (70%), LastModifiedDate / Business Last Touched (30%).
After changing checks or weights, run Run scoring (full) on the Quality tab so every record picks up the new rules. Use Score changed only for day-to-day updates, but schedule periodic full runs for Freshness and Uniqueness — see Data Quality Score.