Lead Scoring Models That Actually Work
I’ll be honest: most lead scoring models I’ve inherited from clients are useless. Not because lead scoring itself is a bad idea, but because the model was set up once, never revisited, and now nobody trusts the numbers.
Let’s fix that.
Why Most Lead Scores Fail
The typical failure pattern looks like this: someone on the marketing team sets up a score, assigns a few points for email opens and form fills, picks an arbitrary threshold, and calls it done. Six months later, sales is ignoring the score entirely because “every lead is a 90.”
The root cause is usually one of three things:
- No clear definition of what the score means. Is it measuring engagement? Fit? Purchase intent? If you can’t answer that in one sentence, your score is trying to do too much.
- Too many low-value signals. Email opens and page views are noise. They inflate scores without indicating real buying intent.
- No feedback loop. If nobody is checking whether high-scoring leads actually convert, the model never improves.
Two Scores, Not One
The approach that consistently works for my clients is running two separate scores in HubSpot: a Fit score and an Engagement score.
Fit score answers: “Is this the kind of company and person we want to sell to?” It’s based on demographic and firmographic data:
- Job title or role (decision-maker vs. individual contributor)
- Company size (does it match your ICP?)
- Industry
- Geography
- Tech stack or tools they use
Engagement score answers: “Is this person actively showing buying intent?” It’s based on behavioral signals:
- Visited the pricing page (high intent)
- Attended a webinar or demo (high intent)
- Downloaded a bottom-of-funnel resource like a case study (medium intent)
- Clicked a CTA in a nurture email (medium intent)
- Visited the blog (low intent; don’t over-index on this)
A lead that scores high on both is your sweet spot. High fit but low engagement? Nurture them. High engagement but low fit? Probably not worth your sales team’s time.
Setting Up the Model in HubSpot
HubSpot lets you create custom score properties. Here’s the setup I recommend:
For the Fit score:
- Start by defining your Ideal Customer Profile with your sales team. Get specific. “B2B SaaS companies with 50 to 500 employees” is better than “tech companies.”
- Assign positive points for properties that match your ICP.
- Assign negative points for disqualifiers: competitors, students, personal email domains.
For the Engagement score:
- Weight actions by intent, not just volume. A pricing page visit should be worth more than ten blog views.
- Use score decay. HubSpot doesn’t have native decay, but you can build a workflow that reduces the engagement score by a set amount every 30 days if no new activity is logged. This keeps stale leads from clogging the pipeline.
- Set a threshold that triggers an MQL lifecycle stage change and notifies the sales team.
The Feedback Loop
This is the part everyone skips, and it’s the most important.
Every month, pull a report of leads that crossed your MQL threshold. Check:
- How many became SQLs?
- How many closed?
- What was the average score of closed-won deals vs. closed-lost?
If your high-scoring leads aren’t converting better than low-scoring ones, your model needs adjustment. Bump up the weight on signals that correlate with closed deals and reduce the ones that don’t.
I usually block out 30 minutes once a month with the sales and marketing leads to review this together. It takes almost no effort and keeps the model honest.
Quick Wins to Start With
If you’re starting from scratch, don’t try to build the perfect model on day one. Start with these three signals:
- Pricing page visit (+20 points engagement)
- Job title matches ICP (+25 points fit)
- Company size matches ICP (+20 points fit)
That alone will give your sales team a better signal than what most companies have. You can layer on complexity once you’ve validated these basics.
The goal isn’t a fancy model. The goal is a score your sales team actually looks at before picking up the phone.