Deal scoring for B2B SaaS: stage velocity, buying-committee depth, and decay
Most lead scoring frameworks have three dimensions: engagement, profile fit, and account fit. All three describe a person or a company. None of them describe the deal itself, and that’s the fourth dimension teams miss: deal scoring.
Deal scoring asks a different question than the other three. Not “is this the right person” or “is this the right company,” but “how healthy is this specific opportunity, right now?” Two deals can sit in the same stage, at the same amount, with the same owner, and be in completely different shape. One has three people engaged and a champion who replies same-day. The other has one contact who hasn’t opened an email in three weeks. The CRM fields look identical. The deals aren’t.
This post is the fourth and last in a series on the four dimensions of lead scoring. The first three covered engagement (recent activity), profile fit (the person), and account fit (the company). This one covers the opportunity itself. We’ll walk through what deal scoring measures, why two deals in the same stage can be wildly different, and how to build a score that catches the difference before the pipeline review does.
What deal scoring measures
Deal scoring blends the facts already sitting in your CRM with signals about what’s actually happening inside the deal.
The CRM facts. Stage, pipeline, deal amount, owner, and any custom properties you track. This is the baseline every tool already gives you, and on its own it’s not enough. It tells you where a deal is supposed to be, not whether it’s actually moving.
Deal size tier. Amount alone is a number; a size tier (small, mid-market, large, enterprise, whatever bands fit your business) turns it into a comparable signal, since a $200K enterprise deal and a $8K self-serve deal shouldn’t be scored on the same curve.
Stage velocity. How long has this deal actually sat in its current stage, compared to how long deals at this stage normally take before they close? A deal parked in “Proposal” for 45 days when your median is 12 is a different deal than one that arrived last week, even though the CRM shows the same stage for both.
Buying-committee depth, specific to this deal. Not the account’s overall buying committee, the people actually engaged on this opportunity: how many contacts, how many distinct roles, whether there’s an identifiable champion, and how many of them are actively responding versus cc’d and silent. A deal with one engaged contact carries real single-threading risk no matter how good the fit score looks.
Decay signals. Days since the last meeting. Whether the champion has gone quiet. Whether email response times are trending slower. These are the earliest tell that a deal is stalling, usually weeks before anyone manually notices and flags it at the pipeline review.
Data hygiene. Missing amount, missing close date, no owner, stale next-step notes. A deal that’s messy on paper is often also being run loosely in practice, and it’s worth a small negative weight on its own.
Why the same stage can hide two different deals
Stage tells you what step a deal is supposed to be on. It doesn’t tell you whether the deal is actually progressing.
Take two Stage 4 opportunities, both $40K, both owned by the same AE. Deal A has three contacts engaged across two functions, a champion who replied to yesterday’s email within the hour, and it moved into this stage six days ago. Deal B has one contact, no reply in three weeks, and it’s been sitting in this exact stage for 38 days against a 14-day median. Same stage, same amount, same owner. One is closing. One is quietly dying.
A CRM view sorted by stage and amount puts these two deals next to each other. A deal score built from stage velocity, committee depth, and decay separates them immediately, and it tells the AE which one needs an escalation call today and which one just needs to keep moving.
How it changes the play
A deal score isn’t just a ranking, it’s a trigger for a specific action.
High score, recent momentum. Multiple engaged contacts, fast stage velocity, active champion. Keep pushing the standard playbook; this deal is on track.
Score dropping from decay, not from stage. Same stage as last week, but the champion’s gone quiet and there’s been no meeting in 18 days. This is a save-the-deal signal. The AE should escalate now, not wait for the deal to visibly stall in the pipeline review.
Low committee depth on an otherwise strong deal. Good stage velocity, healthy amount, but only one contact engaged. This is single-threading risk. The play is multi-threading into the account before a champion change or a budget freeze kills the deal with no warning.
No open deal at the account at all. This isn’t a deal-scoring problem, it’s a different motion entirely: fresh-pipeline generation, not deal management. Deal scoring only lights up once an opportunity exists to score.
Without a deal score, all of these look the same on a pipeline report: an open deal, sitting in a stage, worth some amount. With one, sales knows which deals need a save, which need multi-threading, and which are fine to leave alone.
Negative signals worth scoring
Worth weighting down:
- Stage velocity well past the median for that stage (stalling risk)
- No meeting or call logged in 21+ days on an active deal
- Single contact engaged with no second thread forming
- Champion or primary contact has gone quiet after previously being responsive
- Missing amount, close date, or owner (hygiene risk)
These catch the deals that look fine on a stage-and-amount view but are actually at risk, before they show up as a surprise slip in the forecast.
Deal scoring in HubSpot
HubSpot’s data model already has most of what deal scoring needs: Deals are first-class records with stage, amount, associated contacts, and activity history.
What HubSpot doesn’t compute for you is the derived layer: how long a deal has actually sat in its current stage relative to your typical cycle, how many distinct people and roles are engaged on that specific deal, and whether response patterns are slowing down. Those signals exist in the raw data, spread across deal properties, contact associations, and engagement timelines, but native scoring tools generally don’t roll them into one number. Getting there usually means custom properties and workflow logic layered on top of what HubSpot gives you out of the box.
How to validate
The validation loop for deal scoring:
- Pull every closed-won and closed-lost deal from the last 90 days.
- For each one, reconstruct the deal score history: what did stage velocity, committee depth, and decay look like at each stage transition?
- Check which signals moved earliest and most consistently ahead of the actual outcome.
- Re-weight toward whichever signal gave the earliest true warning, and drop or shrink whichever gave the most false alarms.
The most common finding: decay signals (a quiet champion, a stalled meeting cadence) show up weeks before stage velocity does. A deal can still look “on schedule” by stage while the relationship has already gone cold. Teams that only score stage and amount catch the problem too late to do anything about it.
Common mistakes
Scoring stage and amount only. This is a CRM field readout, not a deal score. It tells you where the deal is supposed to be, not whether it’s actually moving.
Treating committee depth as an account-level number. Account scoring already looks at how many contacts are engaged across the whole company. Deal scoring needs to look at who’s actually engaged on this opportunity specifically; a well-covered account can still have a single-threaded deal.
Ignoring decay until a deal is visibly stalled. By the time a deal is obviously stuck in the pipeline review, the decay signals that predicted it have usually been flashing for weeks.
Building a score nobody can explain. A deal score that just says “62” isn’t useful to a rep. It needs to show which signals are dragging the score down so they know what to actually go fix, a quiet champion versus a slow stage versus missing data are three different fixes.
Where this fits
Deal scoring is the mirror image of account scoring. Account scoring rolls signals from many deals up into a picture of the company: is this a good account to sell to. Deal scoring goes the other direction: it looks at one open opportunity and asks what’s really happening inside it, right now. Together with engagement (the person’s recent activity), profile fit (the person), and account fit (the company), it completes a four-dimension framework that scores the person, the company, and the opportunity separately instead of blending them into one number nobody can unpack. How the four compose into a matrix of named plays is covered in the series wrap-up.
A note on tooling
kenbun scores every open deal automatically as your HubSpot data syncs, blending CRM fields with derived signals like stage velocity, deal-level buying-committee depth, and champion decay. Every score comes with an explanation of exactly which signals are driving it up or down, so a rep never has to guess why a deal scored the way it did. See it on your HubSpot data.