ThinkWork
Team/Manager Checklist Free

CRM Hygiene Audit Checklist

The field-by-field checklist that surfaces stale opportunities, duplicate contacts, and mis-staged deals before they poison your forecast — run it monthly in about 90 minutes.

What's inside

  • Stale opportunity detection rules (21-day no-activity, past-due close date, stage-duration outliers)
  • Duplicate contact and account detection method
  • Stage-gate exit-criteria checks written per pipeline stage
  • Required-field completeness list for every open opportunity
  • Owner and territory assignment check
  • Activity-log health check comparing logged vs. actual system activity
  • Closed-lost reason code audit including an "Other" overuse threshold
  • Data entry source audit — manual vs. auto-logged fields
  • Monthly hygiene scorecard with six tracked targets
  • Ongoing weekly hygiene rules to prevent re-decay

Purpose: A CRM doesn't get dirty all at once — it erodes field by field until the pipeline number on the dashboard has nothing to do with reality. Run this monthly. It takes about 90 minutes for a team of 10–15 reps.

1. Stale opportunity detection

  • Pull every open opportunity with no activity (call, email, meeting, stage change) logged in 21+ days — flag for owner review
  • Pull every open opportunity whose Close Date is in the past — these are either dead or mis-dated, both are hygiene failures
  • Pull every opportunity that's been in the same stage for longer than 2x your average stage duration for that stage
  • For every flagged opportunity, the owner must do one of: update close date with justification, log a next step, or mark closed-lost with a reason code

2. Duplicate detection

  • Run a duplicate-contact report on email domain + last name match
  • Run a duplicate-account report on company name (fuzzy match — "Acme Inc" vs "Acme Corporation" vs "ACME")
  • Check for the same open opportunity logged twice under two different owners
  • Merge duplicates using the record with more complete activity history as the surviving record, never just the newest one

3. Stage-gate mis-classification

For every stage in your pipeline, confirm the deal actually meets the stage's exit criteria — not just that a rep moved it there:

  • "Qualified" deals have a confirmed budget holder identified (not just a form-fill lead)
  • "Proposal Sent" deals have an actual proposal document logged/attached, dated within the last 14 days
  • "Negotiation" deals have documented next steps beyond "following up"
  • "Commit" forecast category deals have a close date within the current or next period — not 90+ days out
  • No deal skips more than one stage in a single update — a jump from "Qualified" straight to "Closed Won" is a red flag for poor logging or a mis-recorded deal

4. Required-field completeness

For every open opportunity, confirm these fields are populated (adjust to your stage-gate model):

  • Amount (not $0 or a placeholder)
  • Close Date
  • Stage
  • Lead Source
  • Next Step (free text, updated within 14 days)
  • Primary Contact linked
  • Competitor field (if in a competitive deal)
  • Forecast Category

Flag any opportunity missing 2+ required fields as "not forecast-eligible" until fixed.

5. Owner & territory assignment

  • Every open opportunity has an active (not departed) owner
  • Owner matches the account's assigned territory/segment rules
  • No orphaned opportunities (owner field blank or pointing to a deactivated user)

6. Activity-log health check

  • Sample 10 opportunities per rep; compare logged activity count against email/calendar/dialer system activity for the same period
  • Flag reps whose CRM activity count is less than 50% of their actual system activity — this is under-logging, usually a training or workflow-friction issue, not a discipline issue
  • Confirm auto-logging integrations (email, calendar, dialer → CRM) are actually connected and syncing, not just installed

7. Closed-lost reason code audit

  • Every closed-lost opportunity has a reason code (not blank, not "Other" as a catch-all)
  • "Other" reason code usage should be under 10% of closed-lost volume — if higher, your reason code list is missing a real pattern
  • Spot-check 10 closed-lost deals against the rep's own notes to confirm the reason code matches what actually happened

8. Data entry source audit

  • Identify which fields are manually entered vs. system-populated
  • Any manually-entered field with a completion rate below 80% is a candidate to automate or remove
  • Confirm no two systems are both allowed to write to the same field without a defined source of truth (see the RevOps Tech Stack Audit Checklist, Step 4)

Monthly Hygiene Scorecard

MetricTargetThis MonthStatus
% opportunities with no activity in 21+ days< 10%
% opportunities with past-due close date< 5%
Duplicate contacts found0 new
% opportunities missing required fields< 5%
% closed-lost with valid reason code> 95%
"Other" reason code usage< 10%

Ongoing hygiene rules (enforce weekly, not just at audit time)

  • No opportunity created without Lead Source populated at creation
  • Stage changes require a next-step note in the same update
  • Managers review their team's stale-opportunity list every Monday before forecast calls
  • Closed-lost requires a reason code before the record can be closed (make it a required field, not a convention)

How to use it

Run the numbered sections top to bottom once a month, fix every flagged record before your forecast call, then track the six-metric scorecard over time to see whether hygiene is improving or decaying.

Stay current

Get told when new Metrics, Analytics & RevOps resources land.

Pick the topics you care about. No digest spam, just a note when something genuinely useful is added.

Pick your topics after you confirm. Unsubscribe any time.