In brief: A lead scoring model needs to answer two separate questions: is this the right company and person, and are they showing signs of buying now? I score fit and engagement separately, require both for MQL, route qualified leads quickly, and use sales disposition codes to improve the model over time.
I see some version of this in most scoring audits.
A lead has a score of 95 from twelve email opens, three PDF downloads and a webinar attendance. The company is a tiny agency that’s never going to buy the product.
Meanwhile, a VP of Engineering at a target account sits at 40 because she’s visited the pricing page twice but never engaged with an email.
Sales calls the 95. Nothing happens. They try again the next week. After enough of those, they stop trusting the MQL queue.
The problem is simple. One number is trying to answer two different questions. That’s why you have to score fit and engagement separately.
Fit and engagement are different things
Fit is how closely the person and company match the customers you actually want.
That might include:
- industry
- company size
- geography
- role or seniority
- account type
It changes relatively slowly and usually comes from form data, CRM data and enrichment.
I take the criteria from voice-of-customer research and closed-won data rather than deciding that “VP at a SaaS company” sounds like a good buyer. The job titles, company types and segments that keep appearing in real opportunities show you who actually buys, rather than who you hope will.
Engagement is different. It’s behavioural and recent.
Pricing-page visits, demo-page visits, product documentation, webinar attendance and email clicks can all tell me something about current interest.
And unlike fit, engagement should fade.
Some platforms already make this distinction fairly naturally. Salesforce Account Engagement has separate grading and scoring concepts, with grade used for profile fit and score for activity.1 Marketo implementations commonly keep demographic and behavioural scoring separate before combining them into qualification logic.2 HubSpot supports multiple scoring properties, so the same model can be built there too.
I don’t care much whether the UI calls them score, grade or properties. I care that the system can answer both questions independently.
A working scoring model
Here’s an illustrative version for a mid-market SaaS product.
The numbers aren’t a template I’d copy between companies. I’d expect to change them once there’s enough closed-won and closed-lost data to see which signals actually correlate with buying.
| Signal | Type | Points |
|---|---|---|
| Industry on ICP list | Fit | +20 |
| 100–1,000 employees | Fit | +15 |
| Title matches buying roles from research | Fit | +15 |
| Target geography | Fit | +5 |
| Free email domain | Fit | −10 |
| Competitor domain | Fit | Disqualify |
| Student / academic domain | Fit | Disqualify |
| Pricing page view | Engagement | +15 |
| Demo page view | Engagement | +10 |
| Webinar attended | Engagement | +10 |
| Docs or integration pages, 3+ in a session | Engagement | +5 |
| Email click | Engagement | +3 |
| Email open | Engagement | 0 |
| No activity for 30 days | Engagement | −15 |
Then I set the MQL threshold across both axes.
For example:
Fit ≥ 40 AND Engagement ≥ 25
In Account Engagement, that might be expressed as a grade threshold plus a score threshold.
A high-fit person with very little current activity stays in nurture.
A highly active person who clearly doesn’t fit the customer profile doesn’t become an MQL just because they consumed a lot of content.
That distinction removes quite a lot of noise on its own.
I score email opens at zero.
Apple’s Mail Privacy Protection prevents senders from reliably using tracking pixels to determine whether an Apple Mail user actually opened an email.3 Opens are still useful for some aggregate reporting, but I wouldn’t use them as evidence that an individual buyer is becoming more sales-ready.
Clicks tell me more.
Where scoring usually goes wrong
Scoring is mostly arithmetic. That’s useful because it means I can inspect the rules and work out why somebody qualified.
The common problems are fairly predictable.
Fit and engagement are blended together. This is the one I see most. Enough low-value activity can compensate for very poor fit.
Nothing decays. If behavioural points only accumulate, somebody who spent an afternoon researching the product nine months ago can still look highly engaged today. I normally use decay rules or rolling activity windows.
Nothing subtracts. Unsubscribes, obvious non-buyers, competitor domains and other negative signals need somewhere to go. A scoring model that only adds points gets increasingly generous with age.
The model is never calibrated. I want to compare last quarter’s closed-won, closed-lost and recycled records against the scores they held when they became MQLs.
If most of the eventual customers never crossed the threshold, the model is missing something.
If most MQLs are being recycled for poor fit, the fit criteria are too loose.
The weights are hypotheses. Closed-won and closed-lost data are how I check them.
The model was built entirely in the settings screen. Scoring software makes it very easy to invent numbers. That doesn’t mean the numbers represent buying behaviour.
I want the fit criteria tied back to research and historical customers, and the behavioural criteria tied to actions that plausibly indicate progress towards a buying decision.
What happens to everybody who is not ready
Most real leads aren’t ready for sales when they first enter the database.
That’s what lifecycle automation is for.
I build the nurture and trigger it from lifecycle stages, list membership and property changes. I want that running inside the automation platform rather than through manual exports and spreadsheets.
A basic map might look like this:
| Stage | Goal | Content | Cadence | Exit |
|---|---|---|---|---|
| Subscriber | Stay familiar | Editorial newsletter | Weekly or fortnightly | Hand-raise or scoring threshold |
| New lead | Understand the problem and establish fit | Problem-led emails, case studies | 4–6 emails over 3–4 weeks | MQL threshold or timeout to subscriber |
| MQL recycled by sales | Address why the lead was recycled | Content matched to reason code | Monthly | Re-MQL on new engagement |
| Closed-lost / no decision | Stay present for the next buying cycle | Proof, useful product updates | Quarterly | Opportunity reopened |
| Customer | Adoption and expansion | Onboarding and behavioural triggers | Event-driven | n/a |
I wouldn’t treat the newsletter as an extra.
The same 95:5 logic I discussed in the positioning post applies to your own database. Most of the people in it aren’t actively buying at any given moment.4
For those people, I’d rather send something they actually choose to read than put them through an endless sequence of product emails.
Email is also the part of this system I enjoy most. On my most recent engagement I started the newsletter from an empty list and wrote every edition myself. A list built that way is the asset I would protect first, because it is the one channel where the reader has chosen to hear from the company, rather than having the company put in front of them.
Routing starts when somebody qualifies
Once somebody crosses the MQL threshold, the scoring job is finished for the moment.
Now the routing needs to work.
I normally want the system to:
- assign the lead to the correct person or queue based on segment or territory
- notify the owner somewhere they will actually see it
- record when the MQL was created
- start the response-time clock
- require a disposition if sales accepts, recycles or disqualifies the lead
The response-time evidence is old, but useful if handled carefully.
A 2011 Harvard Business Review study looked at responses to test leads sent to 2,241 US companies. Thirty-seven percent responded within an hour, 24% took more than 24 hours, and 23% never responded at all.5
In a separate dataset of 1.25 million sales leads, companies that attempted contact within an hour were nearly seven times as likely to qualify a lead as those that waited an hour longer, and more than sixty times as likely as those waiting 24 hours or more.5
The often-quoted five-minute figures come from earlier Lead Response Management research associated with James Oldroyd and InsideSales.com, not from the Harvard study. That research found a very steep drop in contact and qualification odds as response time moved from five minutes towards thirty.6
I wouldn’t take the historical multipliers as a forecast for a modern B2B SaaS funnel.
The useful part is the direction: somebody who has just requested a demo is easier to reach while the problem is still in front of them than a day later.
For most teams, I start with a written SLA of first contact within one business hour and then adjust it around the actual sales motion.
The rest of the SLA matters too.
For example:
- first attempt within one business hour
- several attempts across more than one channel
- a defined working window
- mandatory disposition when the lead is recycled or disqualified
I usually keep the disposition list short enough that sales will actually use it:
- bad data
- no ICP fit
- no response
- timing
- competitor
- other, with a note
The automation can chase the missing field. It shouldn’t rely on somebody remembering to complete it at the end of the week.
Sales outcomes improve the marketing model
The disposition codes are useful to marketing because they tell me why the model was wrong.
If a quarter of recycled MQLs are coming back as no ICP fit, I look at the fit scoring and the campaign targeting.
If no response dominates, I look at lead sources, response time and whether the engagement threshold is meaningful.
If timing dominates, that’s a different problem. Those leads may belong in a better recycle programme rather than being treated as bad demand.
I also send useful downstream outcomes back to the advertising platforms where the integration supports it.
A demo request tells an ad platform that somebody filled in a form.
An accepted SQL or qualified opportunity tells it considerably more.
That’s why offline conversion imports matter. The campaign can eventually optimise against stages closer to revenue rather than treating every form submission as equally valuable.
The CRM is where I keep the stage timestamps, scores, routing outcome, SLA performance and reason codes. That’s also where the reporting layer gets the funnel numbers that matter financially.
On my last engagement the lifecycle layer was built inside the automation platform, alongside the scoring and routing changes, so the emails, the scores and the routing rules all read from the same records.
There wasn’t anything complicated about it. The right people got routed quickly, and the wrong people stopped being called.
If sales has stopped trusting the MQL queue
I’d start with the last quarter of leads.
Pull every MQL, the fit and engagement data it had when it qualified, what sales did with it, how quickly they responded and the final disposition.
Then group the failures.
You normally don’t need a new marketing automation platform to see what went wrong. You need to know whether the bad leads are coming from loose fit criteria, inflated engagement, missing decay, campaign targeting, slow routing or something after the handoff.
Once that’s visible, the scoring model becomes much easier to change.
And when sales starts seeing a queue where the people actually look like buyers again, trust tends to come back with it.
Frequently asked questions
What is lead scoring fit vs engagement? Fit measures whether a lead matches your actual customer profile—industry, company size, geography, role, account type—based on closed-won data and voice-of-customer research. Engagement measures recent buying behaviour—pricing page visits, demo requests, content consumption—and should decay over time. Scoring them separately means a highly active poor-fit lead doesn’t flood sales, and a high-fit lead with low current activity stays in nurture until they signal readiness.
What is an MQL threshold? An MQL threshold is the point at which a lead qualifies for sales outreach. I set the threshold across both axes: for example, Fit ≥ 40 AND Engagement ≥ 25. A lead needs to pass both tests, not just accumulate enough of either. This prevents the common failure where one high score compensates for a disqualifying gap in the other.
Should email opens count in lead scoring? I score email opens at zero. Apple’s Mail Privacy Protection, introduced in June 2021, prevents senders from reliably knowing whether an Apple Mail user actually opened an email.3 Opens are still useful for some aggregate deliverability monitoring, but they don’t tell me whether an individual buyer is becoming more sales-ready. Clicks are a more reliable signal of actual interest.
What dispositions should sales use for recycled leads? I keep the list short enough that sales will actually use it: bad data, no ICP fit, no response, timing, competitor, and other with a note. The disposition codes feed back into the marketing model. If most recycles are coming back as no ICP fit, the fit scoring is too loose. If timing dominates, those leads need a better recycle programme rather than being written off.
I’m engaged with client work just now, so none of this is a pitch. But if you’re building growth-stage B2B SaaS and want this kind of work when capacity opens, tell me what you’re building. I read every note.
Sources
-
Salesforce, “Scores and Grades in Account Engagement (Pardot).” help.salesforce.com (opens in new tab) ↩
-
Adobe, Marketo Engage scoring documentation. experienceleague.adobe.com (opens in new tab) ↩
-
Apple, “Mail Privacy Protection” announcement, June 2021. apple.com (opens in new tab) ↩ ↩2
-
Dawes, J., “Advertising Effectiveness and the 95-5 Rule,” LinkedIn B2B Institute / Ehrenberg-Bass Institute, 2021. business.linkedin.com (opens in new tab) ↩
-
Oldroyd, J.B., McElheran, K., Elkington, D., “The Short Life of Online Sales Leads,” Harvard Business Review, March 2011. hbr.org (opens in new tab) ↩ ↩2
-
Oldroyd, J.B. / InsideSales.com, “Lead Response Management Study,” 2007. ↩