Your rep just spent 45 minutes on a demo with a two-person agency that signed up in March and never activated. Meanwhile a VP of operations at a 120-person SaaS company logged in four times this week, invited a teammate, and hit your pricing page twice. Nobody called her. B2B lead scoring exists to prevent exactly this: it ranks every lead by how likely they are to buy, judged on fit and intent, so your team works the list from the top.
To see that ranking on your own pipeline first, score your own leads free and check the reasons against what you already know.
What is B2B lead scoring, and why do most models fail?
A lead score is one number that answers two questions at once. Does this lead look like your best customers, and are they acting like someone about to buy? The textbook terms are explicit and implicit data: what you know about the lead, and what they did.
A director at a 50-person SaaS company who created a workspace and viewed pricing outranks someone with the perfect job title who downloaded a whitepaper six months ago and vanished. In B2B the lead is a person at a company, so the score has to judge both: whether the account fits and whether the person is moving.
A lead score is for people who have not bought yet. Accounts that already pay get a different number, a customer health score, which tracks whether they are likely to renew.
Without a score, sales defaults to recency. Whoever signed up last gets the call, along with whoever the CEO forwarded. That holds up at 20 leads a month. At 200 it starts to leak, and at 2,000 your best leads go cold in the queue while reps demo to agencies outside your market.
Here is the part the definition leaves out: in practice, most lead scoring projects die within a quarter, and almost never because the point values were wrong. Hold that thought. The reason matters more than the taxonomy.
B2B lead scoring models: demographic, behavioral, and predictive
Every model draws on the same three approaches. The differences come down to what gets measured and who sets the weights.
Demographic scoring (firmographic, when you score accounts) assigns points for who the lead is: job title, company size, industry, funding stage. If 80% of your customers are B2B SaaS companies with 20 to 200 employees, a lead matching that profile starts higher. Intent never enters the equation.
Behavioral scoring is the intent half. Signups, feature activation, pricing page visits, demo requests, email replies: these earn points for what the lead does, and a lead who invited two teammates is telling you something no firmographic field can.
Predictive lead scoring flips the weighting problem around. Instead of you deciding that a pricing page visit is worth 5 points, the model derives weights from the attributes your closed-won deals shared. It learns from your closed deals, so it needs a lot of them. With enterprise predictive tools the pattern holds: strong when the history exists, noise when it doesn't.
Scoring approach | Best for | Weakness |
|---|---|---|
Demographic | Filtering out poor-fit leads early | Says nothing about intent |
Behavioral | Catching in-market leads while warm | Blind to company fit |
Predictive | Teams with a long closed-won history | Needs history most teams lack |
Most teams should start with a combined B2B lead scoring model that scores fit and engagement together: fit points plus intent points on a 0 to 100 scale, where 70 or above is the MQL line and goes to sales the same day, 40 to 69 enters nurture, and anything under 40 waits for a new signal.
One opinion while we're here. The MQL threshold debate that eats so many pipeline meetings is rarely about the model. It's a negotiation over whose numbers look good this quarter, and no weighting scheme fixes politics. Anyway.
The data a lead scoring model actually needs
Now the reason lead scoring models die. Write down the inputs a combined model wants: company size, industry, product usage, billing status, support history, email engagement. Then write down where each one lives.
Billing status lives in Stripe. Usage sits with your product database or an analytics tool like PostHog, ticket history with the support desk, and firmographics may not exist anywhere yet. The CRM, the one place the score is supposed to live, holds a job title, an email, and a last-activity date.
So teams build the model with the fields the CRM actually has. The scores come out flat, sales checks them against instinct a few times, finds them wrong, and quietly goes back to recency. The model was fine. The data was incomplete.
The standard fix is a warehouse project: pipe everything into Snowflake, model it in SQL, push scores back to the CRM with a sync job. If you employ a data engineer, that is a real path. Most 30-person companies do not, and a scoring project that takes a quarter to stand up loses its sponsor before it ships.
The cheap version fails differently. Picture a CRM property fed by a Sunday-night CSV export. It is stale by Tuesday and ignored by the end of the month. The logic was never the problem; nobody trusted a number that old.
A B2B lead scoring example, worked through with AI
There is another way to assemble the inputs, and it runs in the opposite direction: instead of pushing every signal into the CRM and building rules inside it, pull your CRM contacts in for enrichment. Each lead then picks up firmographics from a waterfall of data sources, trial and plan status from billing, usage from product analytics, and ticket text from the support desk.
Once the evidence is in one place, AI can do something per-lead formulas cannot: reason across all of it at once. It weighs every lead against your ICP definition and writes two things per lead, a score and a reason. That is what AI lead scoring should mean in practice: not a black-box grade, but a ranked list where every lead carries its evidence.
Here is a worked example, because this is where every explainer goes vague. Say your ICP is product-led B2B SaaS between 20 and 200 people. An AI pass does not need the points written down, but writing them out shows what a score should add up to, which is also how you check one. The lead scoring template has this rubric ready to copy.
Signal | Source | Points |
|---|---|---|
Headcount between 20 and 200 | Data source | +20 |
Raised funding in the last 18 months | Data source | +15 |
Started a paid-plan trial | Your billing system | +25 |
3+ active users this week | Product analytics | +20 |
Ticket asks about SSO or API limits | Support desk | +10 |
No login in 30 days | Product analytics | -20 |
The formula is the sum of the points a lead shows, kept between 0 and 100:
Three leads from the same list:
Lead | Signals it shows | Score |
|---|---|---|
Lead A | Right size, trial started, 3+ active users, SSO ticket | 20 + 25 + 20 + 10 = 75 |
Lead B | Right size, trial started, nothing else yet | 20 + 25 = 45 |
Lead C | Right size, no login in 30 days | 20 - 20 = 0 |
Lead A arrives with its reason attached: "in a trial, usage climbing, asked about SSO." The bands then decide what happens next:
Score | Band | What happens |
|---|---|---|
70 to 100 | Work it now | A rep calls the same day |
40 to 69 | Nurture | A sequence and product nudges until a new signal |
0 to 39 | Not yet | Nobody calls; watch for a change |
Reps will argue with a bare number all day. A stated reason they can check in ten seconds, and when a score is wrong, the reason shows which input to fix. Note the negative signal too: without decay, the pipeline fills with leads that peaked in April. The same pass works as account scoring: swap leads for accounts and score against the same ICP.
The spreadsheet-plus-ChatGPT version of this is where most founders start, and it genuinely works at fifty leads. Past a few hundred it collapses: the chat cannot hold the whole list, the weights live in a prompt you keep re-pasting, and nothing re-runs when a lead starts a trial a week later. What changes when you research every account at that scale is covered in AI lead research at scale, and scoring a whole market rather than a pipeline is the job of a ranked TAM list.
B2B lead scoring best practices: write the score back to your CRM
Lead scoring only pays off when the score reaches the person holding the phone, and that person lives in the CRM. The last step writes both fields back to the record: the score into a number property reps sort by, the justification into a text property they see when the record opens. Create both properties in the CRM once, then map them. Route from there: high scores to a rep's queue, product qualified leads into a fast lane, everything else into nurture.
Write-back is also what keeps the score alive. When billing shows a lead starting a trial, the next scoring pass moves the number and rewrites the reason, and the next export carries both to the CRM. We cover the CRM-specific setup separately for HubSpot lead scoring and Salesforce lead scoring. Both hold external scores happily; neither can compute one from data it cannot see.
The rest of the B2B lead scoring best practices fall out of everything above:
Score fit and intent together. Either half on its own puts the wrong leads at the top.
Subtract points when a lead goes quiet, so a lead that peaked in April does not still lead the queue in June.
Write a reason beside every score. Reps check a reason in seconds and argue with a bare number for weeks.
Put the score on the CRM record reps already open, not in a report nobody visits.
Re-score when the inputs change. A trial start or a new support ticket should move the number the same week.
Oneprofile runs this loop. Your CRM contacts load in and go through data enrichment from data sources and from your own billing, support, and product tools (142 integrations read data in, write it back, or both). The ICP scorer rates every lead against your ICP with a written reason, at 3 credits a scored lead, and an AI lead scoring agent you build can read the whole record, billing and usage included. An export writes score and reason back to the CRM fields you mapped. The Free plan renews 200 credits a month, enough for 66 ICP scores, with up to 3 integrations, 3 tables and 100 rows per table, and the Team plan starts at $20 a month for 1,000 credits.
To test the premise before touching any tool, pull your last 50 closed-won deals into a lead list built from a CRM export, write down the five buying signals they shared, and count how many of those signals your CRM can currently see. That gap is your scoring project. Close it, and the ranking mostly takes care of itself. When you would rather not count by hand, score your leads free with the reasons written down.

