Lead Scoring for B2B SaaS: The Behavioral Model That Replaces MQL Guessing
Open your CRM and look at the MQL threshold. Who set it, and when? In most B2B SaaS companies I audit, the answer is a marketing hire who left, a number like 50 or 100, and a default point table that gives 10 points for an email open. Nobody has checked it against a single closed deal since.
That is lead scoring B2B SaaS teams are running on: a guess, frozen in a workflow. Reps learn to ignore it, marketing keeps defending it, and the real prioritization happens in Slack messages that say “this one looks hot.”
The fix is not a smarter tool. It is a model built from behavior that actually precedes a purchase, split into two scores so that one number cannot hide two different questions. Below is the model we use at Momentum Nexus, the point tables, the decay rules, the routing grid, and the back test that tells you whether any of it works.
Why Static MQL Scoring Fails
Classic scoring adds points for job title, company size, email opens and form fills, then hands the lead to sales at some number. Three things break it.
It mixes fit and interest into one number. A student who downloads five ebooks and a VP at your best target account who visits pricing once can land on the same score. They need opposite treatment.
It never forgets. A contact who read three blog posts in January still carries those points in October. Points should expire, because interest does.
It rewards the cheapest actions. Email opens are inflated by Apple Mail Privacy Protection and security scanners that pre-fetch links, so opens are close to meaningless as a buying signal. Clicks and page views are better. Product and pricing behavior is better still.
The definition problem makes it worse. Published MQL to SQL benchmarks range from about 13% in First Page Sage’s B2B SaaS data to well above 40% elsewhere, and one analysis showed two companies with comparable pipelines reporting 13% and 47% in the same quarter because they defined MQL differently. Treat any benchmark as a loose reference. Your own closed won data is the only benchmark that matters, which is why the back test later in this post is not optional.
This ties directly to data quality. If your CRM is a graveyard, no model survives it. We wrote the 14 day cleanup sprint in CRM data hygiene: fix it in 2 weeks, and I would run that first. A scoring model on top of duplicate contacts and missing company fields scores the wrong people confidently.
The Fit x Heat Framework
The model has two independent scores and one routing grid.
| Score | Question it answers | Behavior over time | Scale |
|---|---|---|---|
| Fit | Is this the kind of account that buys and stays? | Mostly static, updates when firmographics change | 0 to 100 |
| Heat | Is this person acting like a buyer right now? | Decays weekly, rewards recency and frequency | 0 to 100, floor of 0 |
The routing happens on the grid, not on either score alone.
| Heat under 30 | Heat 30 to 49 | Heat 50 or more | |
|---|---|---|---|
| Fit 60 or more | Nurture and account watch | SDR sequence, light touch | Sales handoff within 1 business day |
| Fit 30 to 59 | Nurture | Nurture with retargeting | Qualify by SDR first, then decide |
| Fit under 30 | Do not work | Do not work | Self serve path only, no rep time |
That bottom right cell is the one that saves the most time. A hot lead from a bad fit account is the classic way reps burn a week on a deal that was never going to close.
Building the Fit Score
Fit comes from your ICP, and your ICP should come from closed won data, not aspiration. If you have not pulled that analysis recently, our ICP deep dive framework walks through it. Then assign points to the attributes that separated your best customers from your churned ones.
Here is a starter table for a founder led B2B SaaS company in the $50K to $150K MRR range. Replace every weight with what your own data says.
| Attribute | Condition | Points |
|---|---|---|
| Company size | Inside your best performing employee band | 20 |
| Company size | One band outside | 8 |
| Industry | Core vertical | 15 |
| Industry | Adjacent vertical | 6 |
| Role | Budget owner or direct team lead | 20 |
| Role | Influencer or practitioner | 10 |
| Tech stack | Uses a tool you integrate with or replace | 15 |
| Geography | Markets you can serve and support | 10 |
| Funding or growth signal | Hiring in the relevant function, recent round | 10 |
| Negative: personal email domain | Gmail, Yahoo and similar | minus 20 |
| Negative: competitor or agency | Domain matches your exclusion list | minus 100 |
| Negative: student or job seeker | Title or domain match | minus 50 |
Fit is the part that benefits most from enrichment. If company size or tech stack fields are empty, the score is wrong in a way that looks right. We cover automated enrichment in CRM enrichment automation: the waterfall approach.
Building the Heat Score
Heat is where behavior goes. The principle: weight actions by how close they sit to a purchase decision, and expire them.
| Behavior | Points | Decay |
|---|---|---|
| Pricing page view | 15 | Expires after 14 days |
| Second pricing page view in 7 days | 10 extra | Expires after 14 days |
| Demo or contact request form | 40 | Expires after 30 days |
| Product comparison or alternatives page view | 12 | Expires after 21 days |
| Integration or security documentation view | 10 | Expires after 21 days |
| Second stakeholder from same account visits | 15 | Expires after 30 days |
| Product signup or trial start | 25 | Expires after 30 days |
| Key product activation event reached | 30 | Expires after 30 days |
| Webinar attended live | 8 | Expires after 30 days |
| Gated content download | 5 | Expires after 30 days |
| Blog visit | 2, capped at 6 per week | Expires after 14 days |
| Email click on a product or case study link | 4 | Expires after 14 days |
| Email open | 0 | Not scored |
| Unsubscribe | minus 30 | Permanent |
| No site or email activity for 45 days | Reset heat to 0 | Automatic |
A few design choices matter more than the exact numbers.
Cap the cheap actions. Without the blog cap, a researcher who reads twenty posts for a thesis outscores a buyer who visited pricing once.
Reward the second stakeholder. When two people from one account show up in the same month, that is a buying committee forming. Our buyer intent signal tracking post covers 15 signals in detail, and multi stakeholder activity is one of the strongest.
Score product behavior if you have a product to try. This is the product qualified lead logic. Slack’s often cited finding is that teams crossing roughly 2,000 messages almost always stuck with the product, which is a good example of choosing a threshold from usage data rather than from marketing activity. Your activation event is probably smaller, such as connecting an integration or inviting a teammate, but you find it the same way: look at what retained accounts did in their first week that churned accounts did not. Vendor blogs claim PQLs convert at 5 to 8 times the rate of MQLs. I could not trace that multiple to primary research, so use it as a direction, not a promise.
Use floors and resets. A heat score should never go below zero, otherwise a contact who unsubscribed once starts any future re-engagement in a hole. And a 45 day silence zeroes the score rather than letting stale points linger.
Account Level Roll Up
B2B buying involves several people. Score the person, then roll up to the account: account heat is the highest individual heat score plus 10 points for each additional contact with heat above 20, capped at 100. Route on account heat. This is also why the model needs clean company associations in the CRM, a point that comes up again in our RevOps for startups system breakdown.
Putting Multi Touch Context Into the Score
Last touch scoring says the demo form was the moment of intent. It rarely was. Usually the form fill was the end of a path: a LinkedIn post, a comparison page, a webinar, two pricing visits.
You do not need a full attribution model to get most of the benefit. Add two fields to the contact record:
- Touch count in the last 30 days. Frequency matters. Five touches in a week is a different lead from five in a quarter.
- First touch source and latest touch source. Store both, never overwrite the first.
Then include a small multiplier in heat: if touches in the last 7 days is 4 or more, multiply heat by 1.2, capped at 100. This rewards velocity, which is what an evaluation looks like from the outside.
If you want to go further and tie score bands to revenue by channel, the approach in our revenue attribution model post connects touchpoints to pipeline and closed revenue, which tells you which behaviors deserve more weight next quarter.
The Back Test: Proving the Model Before You Ship It
This is the step that separates a model from a guess, and the step almost nobody does.
- Export 12 months of deals. Closed won and closed lost, with the contact and company records attached, and the date of first sales touch.
- Reconstruct the score at first touch. Apply your fit table to the account’s data. For heat, use the activity logged in the 30 days before first sales touch. A spreadsheet with one row per deal is enough.
- Compare the groups. Calculate the average fit and heat for wins and for losses. If wins do not score clearly higher on both, the weights are wrong.
- Find your cutoffs. Sort deals by combined score. Check what share of closed won sits in the top 20% of scores. A usable model captures a clear majority of wins there. If it captures barely more than 20%, the model is no better than random.
- Adjust one variable at a time. Change a weight, rerun, compare. Keep a changelog.
A worked example of how to read the output:
| Score band | Deals | Won | Win rate |
|---|---|---|---|
| Top 20% by combined score | 40 | 14 | 35% |
| Middle 60% | 120 | 12 | 10% |
| Bottom 20% | 40 | 1 | 2.5% |
These numbers are illustrative, not client results. What to look for is the shape: a steep drop between bands. If your bands look flat, no tooling will rescue the model, and the likely culprit is missing or bad data in the fit fields.
When Predictive Scoring Makes Sense
Predictive or machine learning scoring needs enough examples of wins and losses to learn from. With fewer than around 150 closed won deals, a rules based model you can explain beats a black box your reps will not trust. Log every score and outcome now, and you will have the training set when you are ready. Keep the rules based version running as a benchmark even then, since any predictive model should have to beat it.
Implementing It in Your CRM
You can build this in HubSpot, Salesforce or Pipedrive. The mechanics differ, the structure does not.
Step 1: Create the fields. Fit score, heat score, account heat, touches last 30 days, first touch source, latest touch source, score last updated.
Step 2: Build fit scoring. In HubSpot, create a custom property and use workflows or a calculated property. Run it when firmographic fields change.
Step 3: Build heat as event rules with expiry. The simplest reliable pattern is to score each behavior as its own property with a date stamp, then compute heat from only the rows inside their decay windows. Native HubSpot lead scoring does not always handle decay cleanly, and community threads on this point suggest conditioning points on a date window instead of subtracting later. Check your plan tier, since scoring features are gated on some HubSpot plans.
Step 4: Build the routing. One workflow per grid cell. Handoff creates a task for the owner with the three behaviors that drove the score, so the rep opens the lead knowing why it is hot.
Step 5: Add an SLA. Handoff within one business day, or the lead returns to the SDR queue. A score without a response time is decoration.
Step 6: Build the report. Weekly: leads by grid cell, handoffs, acceptance rate, conversion to opportunity by cell.
If you would rather have this running without building workflows by hand, our CRM agents handle scoring updates and routing inside your existing CRM.
A 30 Day Rollout Plan
| Week | Work | Output |
|---|---|---|
| 1 | CRM cleanup of duplicates and missing company fields, export deals | Clean dataset |
| 2 | ICP analysis, draft fit and heat tables, run first back test | Version 1 weights |
| 3 | Build fields, workflows and routing in shadow mode (scores calculate, nothing routes) | Live scores, no behavior change |
| 4 | Compare shadow scores against what reps actually worked, adjust, switch on routing | Go live with SLA |
Shadow mode is worth the extra week. It lets you see the scores next to your reps’ instincts before anyone is forced to follow them, and it surfaces data problems while they are cheap to fix.
Common Mistakes
- Scoring email opens. Privacy features and security scanners inflate them. Score clicks and site behavior.
- One blended score. It hides the hot lead at a bad account and the cold lead at a great one.
- No decay. Old interest looks like current intent.
- Thresholds copied from a blog. Including this one. My starter numbers are a starting point for your back test.
- Never recalibrating. Review quarterly, and after any ICP, pricing or product change.
- Ignoring rep feedback. Add a required field on rejected leads: reason for rejection. Patterns in those reasons tell you which weights are wrong faster than any dashboard.
- Scoring on dirty data. The model is only as good as the fields it reads.
What to Do This Week
Pull your last 12 months of closed won and closed lost deals into a spreadsheet and score them with the fit table above, even roughly. If wins and losses look the same on fit, your ICP definition is the real problem, and no scoring workflow will fix that. If they look different, you have the foundation, and the heat score is the next day of work.
If you want a second pair of eyes on your funnel, we run a free growth audit where we map your current scoring, routing and CRM data against this framework. You can also try the free AI growth tools at app.momentumnexus.com.
Frequently Asked Questions
What is the best lead scoring model for B2B SaaS?
A two score model works best: a fit score for who the account is, and a heat score for what the person did recently. Fit stays mostly static, heat decays over time. You route on the combination, so a perfect fit with no activity gets nurtured and a hot visitor from a bad fit account does not reach sales. Single blended scores hide this distinction.
How often should you recalibrate a lead scoring model?
Recalibrate every quarter by back testing against closed won and closed lost deals from the last 12 months. Compare the average score at the moment of first sales touch for wins versus losses. If the gap is small, your weights are noise. Also review after any ICP change, pricing change or new product launch, because those shift which behaviors predict buying.
What score should trigger an MQL or sales handoff?
Set the threshold from your own data, not a default. In the model below, a fit score of 60 or more combined with a heat score of 50 or more triggers a sales handoff. Start there, then move the cutoffs until roughly the top 15 to 20 percent of leads by score account for most of your closed won deals in the back test.
Do you need predictive lead scoring or is a spreadsheet model enough?
For most startups under about 150 closed won deals, a rules based model built in a spreadsheet is enough and easier to debug. Predictive scoring needs enough won and lost examples to learn from, and its output is hard to explain to reps. Start rules based, log the outcomes, and move to predictive once you have the volume.
Ready to Scale Your Startup?
Let's discuss how we can help you implement these strategies and achieve your growth goals.
Schedule a Call