Most "HubSpot CRM audit" articles are checklists. Tidy your duplicates. Archive your stale contacts. Fix the orphan records. They're useful, in the same way a tidy desk is useful — but they miss the point.
The point of a CRM audit isn't hygiene. It's diagnosis. You're trying to answer one question: where is my CRM lying to me, and what is that costing in pipeline, forecast accuracy and team time? Tidiness is a side-effect of the answer, not the goal.
What follows is the methodology I use at PineRiverData when I audit a client's HubSpot portal. Five weighted categories. Each scored as a percentage. Rolled up into a single number. You can run it manually using the steps below, or run the automated version at audit.pineriverdata.com if you'd rather not spend half a day in HubSpot's filter views.

Why most CRM audits miss the point
The "tidy up the obvious problems" approach catches the surface stuff: duplicates, broken integrations, contacts with no email address. It doesn't catch the structural issues that quietly distort pipeline numbers and erode forecast trust over the course of a year.
A proper audit covers five areas, weighted by how much each one moves revenue:
- Stale records & decay (20%) — sender reputation and compliance bleed
- Lifecycle & conversion health (20%) — whether your conversion rates are real
- Forecast reliability (25%) — whether your forecast number can be trusted
- Pipeline hygiene (15%) — invisible pipeline leakage from ownership and routing gaps
- System health (20%) — workflow conflicts, technical debt, automation rot Forecast Reliability gets the highest weight because forecast errors compound the fastest. A single quarter of bad forecast data damages CFO trust in the CRM number, and trust takes longer to rebuild than the underlying issues take to fix.
Category 1 — Stale records & decay (20%)
What to check: contacts not modified in six months or more, hard-bounced contacts still in active lists, opted-out contacts being touched by workflows or imports.
Why it matters: sender reputation is asymmetric. It degrades faster than it recovers. One stale-list send to a domain full of dormant contacts can hit your inbox placement for 60 to 90 days afterwards. Two of those sends in a row, and you're in a hole that takes a quarter to climb out of.
How to audit manually: build a contact list filtered by last activity date more than 180 days ago, lifecycle stage not Customer (we don't expect customers to have constant inbound activity), and email known. Then a second list: hard-bounce date is known AND opted out is False. Anyone in the second list shouldn't be in your CRM as a contactable record at all.
What healthy looks like: fewer than 15% of your active contact list should be six months stale. Above 25% indicates either an acquisition gap (you're not bringing new people in fast enough) or a missing archival process.
Category 2 — Lifecycle & conversion health (20%)
What to check: stage inflation (contacts at lifecycle stages their activity doesn't support), skipped stages, conversion rates that don't reconcile.
Why it matters: every reported conversion rate runs on lifecycle data. If your stages are contaminated, your numbers are too. Pipeline planning, hiring decisions and quota setting all happen against the contaminated numbers.
How to audit manually: three filters to run.
- Contacts at "Opportunity" stage with zero associated open deals.
- Contacts at "Customer" stage with no activity in 12+ months.
- Count of contacts who became SQL in the last 30 days vs. count who became MQL in the same window. SQL should always be smaller. What healthy looks like: stage inflation under 5% across SQL and Opportunity stages combined. The deep-dive on why this happens and how to prevent it lives in the companion piece, HubSpot Lifecycle Stages: The Quirks Everyone Hits.
Category 3 — Forecast reliability (25%)
What to check: deals stagnant in stage for 30+ days, open deals past their close date, deals with close-date pushed forward three or more times without stage movement, missing required forecast fields.
Why it matters: this is what your CFO is reading. The forecast number on the board deck is a downstream calculation from these fields. If they're contaminated, every quarter ends with a "surprise" miss.
How to audit manually:
- Filter open deals by deal stage age greater than 30 days. How many of those are still in your forecast?
- Filter open deals by close date in the past. These are inflating your at-risk number.
- Use deal property history to find deals where close date has been edited three or more times in the last 90 days. These are the zombies — usually neither closing nor getting disqualified.
- Check forecast fields (amount, close date, deal stage probability) for completeness on all open deals. What healthy looks like: fewer than 10% of open deals past close date. Fewer than 5% with three or more close-date pushes. Forecast field completeness above 95%.
Category 4 — Pipeline hygiene (15%)
What to check: orphan records, deals owned by departed employees, duplicate companies, single-threaded deals, contacts owned by archived users.
Why it matters: the pipeline you can't see is the pipeline that drifts the most. A deal owned by someone who left six months ago doesn't show up in the active rep's pipeline view. The deal still sits in the CRM, still counts in the rolled-up pipeline number, and quietly fails to progress. By the time someone notices, it's stale.
How to audit manually:
- Filter open deals by owner status — list all owners, mark the inactive ones, filter their deals.
- Filter open deals by associated contact count = 1 and amount > £5,000. These are single-threaded high-value deals, one bounced email away from going dark.
- Run HubSpot's native deduplication to surface candidate duplicate companies.
- Filter contacts by associated company count = 0 AND lifecycle stage = Lead/MQL/SQL — orphan records that should have a company attached. What healthy looks like: fewer than 2% of active deals owned by archived users. Single-threaded deals representing less than 30% of total open pipeline by value.
Category 5 — System health (20%)
What to check: active workflows with no enrollments in 90+ days, workflows with greater than 40% mid-flight drop-off, multiple workflows writing to the same critical field, custom property sprawl.
Why it matters: every piece of unused or contradictory automation is technical debt, and it compounds. The next initiative spends a chunk of its time figuring out what existing workflows might break. "We're not sure" is the answer no one wants to give a board member.
How to audit manually:
- Workflows page — sort active workflows by last-enrolled date. Anything with no enrollments in 90 days is a candidate for deactivation.
- Click into any active workflow → Performance tab → check the funnel chart. Drop-off above 40% mid-flow signals broken downstream actions.
- For each critical field (lifecycle stage, deal stage, owner), search across active workflows for actions that write to it. Multiple writers mean race conditions.
- Properties page — filter custom properties by fill rate. Anything below 5% across your contact base is sprawl. What healthy looks like: fewer than 30% of active workflows in stale or drop-off state. No more than one active workflow writing to any one critical field.
How to score each category
The formula is the same across all five categories:
Score = max(0, 100 − (% affected × severity multiplier))
Each issue type has a severity multiplier. Departed-owner deals are higher severity than slightly stale contacts. Opted-out contacts being re-enrolled in workflows are highest severity, because that one carries legal risk on top of the operational damage. The percent affected is straightforward — affected records over total records — and the multiplier amplifies it based on how damaging the issue is.
For example, a portal where 22% of contacts are six months or more stale would score around 67/100 in Stale Records & Decay (22 × 1.5 severity = 33-point deduction). The category scores then roll into a single overall number using the percentages above.
What "healthy" looks like across all five
- 75 and above — rare, usually portals with dedicated RevOps or a deliberate hygiene programme
- 50 to 75 — the typical band for B2B SaaS at £2-15M ARR. Real, structural issues but a fixable system.
- 40 to 50 — meaningful gaps. Forecast reliability is usually the worst-scoring category here.
- Below 40 — needs immediate triage. The CRM is producing numbers that can't be trusted. The most common surprise I see in client audits: Forecast Reliability is almost always the lowest-scoring category, even in portals that look healthy on the surface. Sales teams hate this finding. They're usually right that it isn't their fault — it's the data and the workflows.
The free PineRiverData CRM audit runs all five categories — 26 individual checks — against your live HubSpot portal in 90 seconds. You get a branded PDF with your overall score, your top three fires, an estimated annual revenue leak range, and a 30-day fix sequence customised to your findings. Read-only OAuth, no credit card.
What to do with your results
Triage by impact-per-fix. Start with the lowest-scoring weighted category — that's where the most score-points-per-hour-of-fix-work live.
Here's the 30-day sequence I usually run with clients:
- Week 1 — Stop the bleed. Reassign deals from departed owners. Suppress hard-bounced contacts. Remove opted-out contacts from active workflows.
- Week 2 — Rebuild trust in the numbers. Update past-due close dates, fix close-date manipulation, complete missing forecast fields.
- Week 3 — Clean house. Bulk-archive stale contacts, deduplicate companies, run custom property cleanup.
- Week 4 — Prevent recurrence. Add demotion workflows, deconflict competing automations, document handoffs. If your team has the bandwidth to drive the fixes, you have everything you need above. If you don't, that's where fractional RevOps engineering comes in — but that's a separate conversation, and one I've covered in When B2B SaaS should hire fractional RevOps.

Frequently asked questions
What should a HubSpot CRM audit cover?
A proper audit spans five categories: stale records and decay (20% weight), lifecycle and conversion health (20%), forecast reliability (25%), pipeline hygiene (15%), and system health (20%). Together these cover data integrity, forecast trustworthiness, lifecycle accuracy, ownership integrity, and automation health. A checklist audit that only looks at duplicates and stale contacts misses the structural issues that actually cost pipeline.
How do you score a HubSpot CRM audit?
Each category is scored 0-100 using the percentage of records affected multiplied by a severity multiplier, capped at 100. The five category scores are then weighted into an overall score. Forecast Reliability carries the highest weight at 25% because forecast errors compound the fastest. Healthy portals score 75 and above; below 40 needs immediate triage.
How long does it take to audit a HubSpot CRM?
Manually, a thorough five-category audit runs to four or eight hours depending on portal size. You'll need to run filtered list views, export data, and cross-reference workflow performance. Automated audits complete in 30 to 90 seconds because they query HubSpot's API directly.
What's the most common HubSpot data quality issue?
Forecast Reliability problems are the most common and the most expensive. Three issues dominate: deals stagnant in stage (no movement in 30+ days but still in pipeline), open deals past their close date, and serial close-date manipulation where reps keep pushing the close date forward without advancing the stage. Together these account for most surprise forecast misses at quarter-end.
How often should I audit my HubSpot CRM?
Quarterly is the right cadence for a full audit. Beyond that, run monthly spot-checks on Forecast Reliability — that's where issues compound fastest. After any major change (new integration, new workflows, sales reorg), run a fresh audit immediately to catch contamination before it spreads.
What HubSpot tier do I need for a CRM audit?
Most audit checks work on any HubSpot tier including Free. The four System Health checks require Professional or higher because the Automation API is gated to those tiers. Audits on Free or Starter portals will run and skip those four with a clear note.
- HubSpot
- CRM Audit
- RevOps
- Data Quality
Working on something similar?
Let's talk about the workflow that's costing your team the most hours.
30-minute call. No pitch. Walk away with a build estimate either way.