Building a Salesforce Data Quality Scorecard

Create a comprehensive data quality scorecard for Salesforce. Learn how to measure, track, and improve CRM data quality with actionable metrics.

You can’t improve what you don’t measure. A data quality scorecard transforms vague concerns about “bad data” into specific, trackable metrics that drive action.

This guide shows you how to build a scorecard that identifies problems, tracks progress, and proves ROI on data quality initiatives.

Why You Need a Data Quality Scorecard

Without measurement, data quality conversations go like this:

Sales: "The data is bad."
Marketing: "What do you mean by bad?"
Sales: "It's just... not good."
Operations: "We cleaned it last quarter."
Sales: "It's still bad."

A scorecard changes the conversation:

"Our Account completeness score dropped from 78% to 71% last month.
The main driver is missing Industry on 2,400 new Accounts.
We need to enable mandatory Industry capture at creation."

Specific. Actionable. Trackable.

Data Quality Dimensions

Score your data across five dimensions:

1. Completeness

Do records have all required fields populated?

Completeness Score = (Populated Required Fields / Total Required Fields) × 100

Example:
Required Contact Fields: Email, First Name, Last Name, Account, Title
Contact has: Email ✓, First Name ✓, Last Name ✓, Account ✓, Title ✗

Completeness = 4/5 = 80%

2. Accuracy

Is the data correct and current?

Accuracy Score = (Verified Records / Total Records) × 100

Verification methods:
- Email deliverability (not bounced)
- Phone connectivity (not disconnected)
- Job title recency (updated within 6 months)

3. Consistency

Is data formatted uniformly across records?

Consistency Score = (Standardized Records / Total Records) × 100

Examples of inconsistency:
- Phone: "(555) 123-4567" vs "555.123.4567" vs "5551234567"
- State: "California" vs "CA" vs "Cal"
- Title: "VP Sales" vs "Vice President of Sales" vs "VP, Sales"

4. Uniqueness

Are records free from duplicates?

Uniqueness Score = (Unique Records / Total Records) × 100

Example:
Total Contacts: 10,000
Duplicate groups found: 500 (1,200 duplicate records)
Unique records: 8,800

Uniqueness = 8,800 / 10,000 = 88%

5. Timeliness

How recently was the data updated?

Timeliness Score = (Records Updated in Threshold / Total Records) × 100

Threshold examples:
- Contacts: Updated within 90 days
- Opportunities: Updated within 7 days
- Accounts: Updated within 180 days

Building Your Scorecard

Step 1: Define Critical Fields

Identify the fields that matter most for each object.

Contacts:

Required (Weight: High):
- Email
- First Name
- Last Name
- Account

Important (Weight: Medium):
- Title
- Phone
- Mailing Address

Optional (Weight: Low):
- LinkedIn URL
- Department

Accounts:

Required (Weight: High):
- Account Name
- Website
- Type (Customer, Prospect, etc.)

Important (Weight: Medium):
- Industry
- Employee Count
- Annual Revenue
- Billing Address

Optional (Weight: Low):
- Description
- Parent Account

Leads:

Required (Weight: High):
- Email
- First Name
- Last Name
- Company

Important (Weight: Medium):
- Phone
- Lead Source
- Title

Optional (Weight: Low):
- Website
- Address

Step 2: Set Benchmarks

Establish targets for each dimension:

DimensionPoorFairGoodExcellent
Completeness<60%60-75%75-90%>90%
Accuracy<70%70-80%80-90%>90%
Consistency<60%60-75%75-90%>90%
Uniqueness<85%85-90%90-95%>95%
Timeliness<50%50-70%70-85%>85%

Step 3: Create Measurement Reports

Report 1: Completeness by Object

Report Type: Contacts
Fields: Total Records, Records with Email, Records with Title, etc.

Grouping: By Account Type (Customer vs Prospect)

Formula Fields:
- Email_Complete__c = IF(Email != null, 1, 0)
- Title_Complete__c = IF(Title != null, 1, 0)
- Overall_Completeness__c = (Email_Complete__c + Title_Complete__c + ...) / Total_Fields

Report 2: Duplicate Detection

Use duplicate rules reports or DemandTools analysis.

Export duplicate job results:
- Total records scanned
- Duplicate groups found
- Records in duplicate state
- Merge candidates

Report 3: Data Freshness

Report Type: Contacts
Filter: Last Modified Date < TODAY - 90

Columns:
- Record Count
- Owner
- Account Type

Grouping: By Last Modified Date (bucket by month)

Step 4: Build the Dashboard

Create a Salesforce dashboard with these components:

Component 1: Overall Score (Gauge)

Single aggregate showing weighted average of all dimensions
Target zones: Red (<70%), Yellow (70-85%), Green (>85%)

Component 2: Dimension Breakdown (Bar Chart)

Horizontal bars showing each dimension's score
Color-coded against benchmarks

Component 3: Trend Over Time (Line Chart)

Monthly scores for past 12 months
Shows improvement or degradation

Component 4: Problem Areas (Table)

Top 10 fields with lowest completion rates
Sorted by impact (volume × importance)

Component 5: Segment Comparison (Stacked Bar)

Compare scores: Customers vs Prospects vs Partners
Identify where to focus efforts

Automated Scoring with Flow

Create Flows to calculate scores automatically.

Contact Data Quality Score Flow

Flow: Calculate Contact Data Quality Score
Trigger: Contact is created or updated

Variables:
- completenessScore (Number)
- totalFields (Number) = 8
- populatedFields (Number) = 0

Steps:

1. Assignment: Count Populated Fields
   If Email != null → populatedFields + 1
   If FirstName != null → populatedFields + 1
   If LastName != null → populatedFields + 1
   If AccountId != null → populatedFields + 1
   If Title != null → populatedFields + 1
   If Phone != null → populatedFields + 1
   If MailingCity != null → populatedFields + 1
   If LinkedIn_URL__c != null → populatedFields + 1

2. Formula: Calculate Score
   completenessScore = (populatedFields / totalFields) × 100

3. Update Records
   Contact.Data_Quality_Score__c = completenessScore
   Contact.Last_Quality_Check__c = NOW()

Account Data Quality Score Flow

Flow: Calculate Account Data Quality Score
Trigger: Account is created or updated

Weighted Scoring:
- Account Name: 15 points (required)
- Website: 15 points (required)
- Industry: 12 points
- Type: 12 points
- Employee Count: 10 points
- Annual Revenue: 10 points
- Billing Address: 10 points
- Phone: 8 points
- Description: 8 points

Max Score: 100 points

Apex for Complex Scoring

For more sophisticated scoring logic:

public class DataQualityScorer {

    public static Decimal calculateContactScore(Contact c) {
        Decimal score = 0;
        Decimal maxScore = 100;

        // Required fields (40 points total)
        if (String.isNotBlank(c.Email)) score += 15;
        if (String.isNotBlank(c.FirstName)) score += 10;
        if (String.isNotBlank(c.LastName)) score += 10;
        if (c.AccountId != null) score += 5;

        // Important fields (40 points total)
        if (String.isNotBlank(c.Title)) score += 15;
        if (String.isNotBlank(c.Phone)) score += 10;
        if (String.isNotBlank(c.MailingCity)) score += 10;
        if (String.isNotBlank(c.MailingState)) score += 5;

        // Optional fields (20 points total)
        if (String.isNotBlank(c.LinkedIn_URL__c)) score += 10;
        if (String.isNotBlank(c.Department)) score += 5;
        if (String.isNotBlank(c.MobilePhone)) score += 5;

        // Accuracy penalties
        if (c.Email_Bounced__c == true) score -= 20;
        if (c.Phone_Disconnected__c == true) score -= 10;

        // Recency bonus
        if (c.LastModifiedDate > Date.today().addDays(-90)) score += 5;

        return Math.max(0, Math.min(score, maxScore));
    }

    public static void scoreContacts(List<Contact> contacts) {
        for (Contact c : contacts) {
            c.Data_Quality_Score__c = calculateContactScore(c);
        }
    }
}

Segment-Specific Scoring

Different records may need different scoring criteria.

Customer vs Prospect Scoring

Customer Contacts (Higher Standard):
  Required: Email, Phone, Title, LinkedIn
  Target Score: 85%+

Prospect Contacts (Lower Threshold):
  Required: Email, Company
  Target Score: 70%+

Enterprise Accounts:
  Required: All firmographics, multiple contacts
  Target Score: 90%+

SMB Accounts:
  Required: Name, website, basic info
  Target Score: 75%+

Industry-Specific Scoring

Tech Industry:
  Extra weight: LinkedIn, Twitter, Technologies Used
  Reason: Digital presence matters more

Healthcare:
  Extra weight: Phone, Address, Credentials
  Reason: Compliance and direct contact needs

Financial Services:
  Extra weight: Compliance fields, Regulatory info
  Reason: KYC requirements

Reporting and Alerts

Weekly Data Quality Report

Schedule automated report delivery:

Report: Weekly Data Quality Summary

Metrics:
- Overall quality score (vs last week)
- Records created this week: X
- Average completeness of new records: Y%
- Duplicate records detected: Z
- Records enriched: W

Trends:
- Score change: +/- X% vs last week
- Top improving segment: [Segment]
- Area needing attention: [Field/Object]

Delivery:
- Every Monday, 8 AM
- To: Sales Ops, Marketing Ops, RevOps

Alert Workflows

Alert: Quality Score Dropped

Trigger: Account Data_Quality_Score__c drops below 70%
         AND Account Type = "Customer"

Action:
- Create Task for Account Owner
- Subject: "Data quality alert - update required"
- Due Date: 3 days from now
Alert: New Low-Quality Record

Trigger: Contact created
         AND Data_Quality_Score__c < 50%

Action:
- Email notification to creating user
- "Please complete the following fields: [missing fields]"

Integration with Enrichment

Connect scoring to enrichment workflows.

Auto-Enrich Low-Score Records

Flow: Enrich Low-Quality Contacts

Trigger: Contact Data_Quality_Score__c < 60%
         AND Last_Enrichment_Attempt__c = null OR > 30 days ago

Actions:
1. Add to "Needs Enrichment" list
2. Trigger enrichment via Clay/ZoomInfo webhook
3. Update Last_Enrichment_Attempt__c = NOW()
4. After enrichment: Recalculate Data_Quality_Score__c

Post-Enrichment Scoring

After enrichment completes:

1. Recalculate completeness score
2. Compare before/after:
   - Completeness improvement: +X%
   - Fields populated: [list]
3. Log enrichment ROI:
   - Credits used: Y
   - Score improvement: Z points

Proving ROI

Show the business impact of data quality improvements.

Metrics to Track

Sales Efficiency:

Before data quality initiative:
- Average research time per prospect: 15 minutes
- Contact rate (calls reaching target): 23%
- Email deliverability: 87%

After data quality initiative:
- Average research time per prospect: 5 minutes
- Contact rate: 41%
- Email deliverability: 96%

Time saved per rep per month: 20 hours
Revenue impact: Faster pipeline velocity

Marketing Effectiveness:

Before:
- Email bounce rate: 12%
- Undeliverable events: 5,000/month

After:
- Email bounce rate: 3%
- Undeliverable events: 1,200/month

Cost savings: Reduced email platform costs
Revenue impact: Higher campaign ROI

Operational Efficiency:

Before:
- Duplicate records created monthly: 500
- Time spent on manual deduplication: 40 hours/month
- Sync errors due to bad data: 200/month

After:
- Duplicate records created monthly: 50
- Time spent on manual deduplication: 4 hours/month
- Sync errors: 20/month

Cost savings: Reduced ops overhead

ROI Dashboard

Data Quality ROI Summary
─────────────────────────────────────────

Investment:
  - Enrichment tools: $X/month
  - Deduplication tools: $Y/month
  - Ops time: Z hours/month

Returns:
  - Time saved (sales): $A/month
  - Time saved (ops): $B/month
  - Improved conversion: $C/month
  - Reduced bounce costs: $D/month

Total ROI: X%
Payback period: Y months

Continuous Improvement

Monthly Review Process

Monthly Data Quality Review Agenda:

1. Score Review (15 min)
   - Overall score vs target
   - Dimension breakdown
   - Segment comparison

2. Root Cause Analysis (20 min)
   - Why did scores change?
   - Which processes are creating bad data?
   - What enrichment gaps exist?

3. Action Items (15 min)
   - Process changes needed
   - System updates required
   - Training needs

4. Next Month Targets (10 min)
   - Realistic improvement goals
   - Focus areas

Quarterly Deep Dive

Quarterly Data Quality Audit:

1. Full duplicate analysis
   - Run DemandTools or Cloudingo scan
   - Compare to last quarter

2. Enrichment coverage review
   - What percentage of records are enriched?
   - Where are the gaps?

3. Process audit
   - Are duplicate rules working?
   - Are validation rules enforced?
   - Is automation behaving correctly?

4. Tool evaluation
   - Are current tools meeting needs?
   - Should we add/change providers?