A weekly forecast meeting opens with the weighted pipeline showing $4.2M and the rep-committed number at $1.6M. Both come from HubSpot. Both reflect the same underlying deals. The gap is the deal pipeline itself — stages that mean different things to different reps, probabilities that have not been tuned in two years, and required fields nobody enforces. Pipeline hygiene is the unglamorous fix that closes the gap.
Stages map to buyer readiness, not your internal steps
A stage like “Quote sent” describes your action; a stage like “Negotiation” describes the buyer’s posture. Reports built on buyer-readiness stages survive sales process changes; reports built on your action steps break every time you tweak the playbook:
Better:
Qualified Lead
Discovery
Solution Validation
Proposal
Negotiation
Closed Won / Closed Lost
Worse:
Quote sent
Quote reviewed
Quote signed
Contract sent
Stage probability calibrated to your data
Default stage probabilities are HubSpot’s guess. After 90 days of deal history, pull won-rate by stage and update:
Pull from custom report:
Group: Stage at deal close
Metric: Count of won / Count of total
Filter: Deal closed in last 12 months
Result:
Qualified Lead 12% (default 20%)
Discovery 22% (default 40%)
Solution Validation 41% (default 60%)
Proposal 58% (default 80%)
Negotiation 74% (default 90%)
Update probabilities to match. Weighted pipeline now reflects reality, not optimism.
Required fields per stage
Require key fields as deals advance. Workflow blocks the transition until populated:
Discovery -> Solution Validation:
Required: Budget identified
Required: Decision maker contact + label
Required: Close date
Solution Validation -> Proposal:
Required: Technical evaluator contact + label
Required: Procurement contact OR justification
Required: Pricing tier selected
Cleaner data per stage drives cleaner forecast and cleaner handoff to deal desk.
Forecast submission beats weighted pipeline alone
Reps commit deals (best case, commit, omitted) explicitly. The committed number captures judgment math cannot. Run weighted pipeline + committed + best case as three columns:
Pipeline view:
Weighted (math) $4.2M
Best case (rep) $2.8M
Committed (rep) $1.6M
Closed YTD $9.1M
Coverage ratio = (committed + closed) / quota. Anything below 3x for a quarter is a red flag. Above 5x means too many deals at low confidence.
Stuck deals and pipeline hygiene
Deals stuck in a stage past your SLA are pollution. Either advance them or close-lost them. Build a weekly report:
Stuck deals:
Object: Deal
Filter: Stage age > stage SLA
Filter: Deal still open
Group by: Owner
Metric: Count and total amount
Manager weekly: review with each rep, decide advance vs close, document reason. Rotting pipeline is the single biggest source of inflated forecast.
Workflow on stage transitions
On stage change to Negotiation:
Set: deal stage entered date
Notify: deal owner manager in Slack
Create task: deal desk review
Capture: deal review notes
On stage change to Closed Lost:
Required: loss reason (dropdown)
Required: competitor (if any)
Send: post-loss survey to primary contact
Schedule: 90-day rebound check task
Pipeline split by motion
If you run multiple sales motions (new business, renewal, expansion), they need separate pipelines with distinct stages and distinct probabilities. A renewal pipeline with a Qualified Lead stage is wrong; a new-business pipeline at 95 percent at Proposal is wrong. Split by motion before tuning.
What to do this week
Pull won-rate by stage for the last 12 months, recalibrate stage probabilities, build the stuck-deals report, and add required fields to your two highest-value stage transitions before the next pipeline review.