Gartner’s research on lead management confirms what most revenue teams already suspect: most lead scoring models are broken. They assign points based on firmographic fit - company size, industry, job title - and call it a day. A VP at a 500-person SaaS company gets a high score whether they’re actively evaluating your product or have no idea you exist.
Firmographics tell you whether someone could buy. Behavior tells you whether they will.
The best lead scoring models combine both. They start with firmographic fit (is this person at a company that matches your ICP?) and layer on behavioral signals (are they actively researching, evaluating, and engaging?). A VP at a 500-person SaaS company who visited your pricing page three times, read two case studies, and is researching “visitor identification tools” across the web - that’s a fundamentally different lead than the same VP who’s never heard of you.
With Leadpipe’s visitor identification and Orbit’s intent data, you have the inputs to build a scoring model that actually predicts buying behavior. This post walks through the formula, the implementation, and the common mistakes.
Table of Contents
- Why Traditional Lead Scoring Fails
- The Multi-Signal Scoring Framework
- Signal 1: Page-Based Visit Scoring
- Signal 2: Visit Duration and Depth
- Signal 3: Return Visit Frequency
- Signal 4: Orbit Intent Score
- Signal 5: ICP Fit
- The Complete Scoring Formula
- Scoring Examples: Three Real Scenarios
- Implementation in Your CRM
- Score Decay: Keeping Scores Fresh
- FAQ
Why Traditional Lead Scoring Fails
Traditional lead scoring assigns points based on static attributes. The typical model looks something like:
| Attribute | Points |
|---|---|
| VP or C-level title | +20 |
| Company size 50-500 | +15 |
| SaaS industry | +10 |
| Has a work email | +5 |
| Downloaded a whitepaper | +10 |
| Attended a webinar | +15 |
| Requested a demo | +50 |
This model has three fundamental problems:
Problem 1: It scores who they are, not what they’re doing. A VP at a SaaS company gets 45 points regardless of whether they’ve ever visited your website. The score reflects fit, not intent.
Problem 2: The behavioral signals are limited to known actions. Downloading a whitepaper and attending a webinar are the only behavioral inputs, and both require the prospect to identify themselves first. The 97% of visitors who don’t fill out forms have no behavioral score at all.
Problem 3: Scores don’t decay. That VP who downloaded your whitepaper six months ago still has those 10 points, even though they took a job at a different company. Without decay, your high-score list fills up with stale leads.
The result: according to SiriusDecisions (now Forrester), fewer than 25% of B2B leads generated by marketing are ever contacted by sales. Sales teams don’t trust the scores. They look at a list of “marketing qualified leads” with scores of 50+ and know from experience that most of them won’t respond. So they ignore the scores and work their own leads, and the sales-marketing alignment problem gets worse.
A better model needs behavioral signals that are continuous (not one-time), anonymous-inclusive (not dependent on form fills), and time-sensitive (not permanent).
The Multi-Signal Scoring Framework
Here’s the framework. Five signal categories, each contributing to a composite lead score:
Lead Score = Page Score + Duration Score + Return Visit Score
+ Intent Score + ICP Fit Score
Signal sources:
| Signal Category | Data Source | What It Measures |
|---|---|---|
| Page Score | Leadpipe (pages viewed) | Intent based on content consumed |
| Duration Score | Leadpipe (time on page) | Engagement depth |
| Return Visit Score | Leadpipe (visit history) | Sustained interest over time |
| Intent Score | Orbit (cross-web behavior) | Research activity beyond your site |
| ICP Fit Score | Leadpipe (firmographic data) | Fit with your ideal customer profile |
Each signal category has its own scoring logic, and the categories combine into a single composite score. Let’s break each one down.
Signal 1: Page-Based Visit Scoring
Not all pages are equal. Someone reading a blog post is less likely to buy than someone studying your pricing page. Your scoring model should reflect this.
Page scoring table:
| Page Type | Points | Rationale |
|---|---|---|
| Pricing page | +25 | Active evaluation - comparing costs |
| Demo/trial signup page | +20 | Considering hands-on evaluation |
| Case study page | +10 | Looking for social proof |
| Integration/API docs | +10 | Checking technical fit |
| Competitor comparison page | +15 | Actively comparing alternatives |
| Product/features page | +10 | Understanding capabilities |
| About/team page | +5 | Light interest |
| Blog post | +5 | Early research |
| Careers page | +0 | Not a buying signal |
| Support/help docs | +0 | Could be an existing customer |
Multi-page scoring:
Points are additive across pages in a session. A visitor who views your pricing page (+25), a case study (+10), and your integrations page (+10) in a single session scores 45 page points - compared to someone who only read a blog post (+5).
Important: Cap the blog post score at +15 per session (3 posts max contributing). Without a cap, someone who reads 10 blog posts would score 50 page points, which overstates their buying intent. Blog readers are interested in your content, but reading content and buying your product are different behaviors.
Signal 2: Visit Duration and Depth
How long someone spends on a page indicates how seriously they’re evaluating the content. A 10-second bounce is very different from a 3-minute read.
Duration scoring:
| Time on Page | Points |
|---|---|
| < 15 seconds | +0 (bounce - don’t count) |
| 15-60 seconds | +3 |
| 60-120 seconds | +7 |
| > 120 seconds | +10 |
Apply duration scoring to high-intent pages only. Time spent on blog posts is less meaningful than time spent on pricing or product pages. Someone spending 5 minutes reading a long-form blog post is consuming content. Someone spending 5 minutes on your pricing page is doing serious evaluation.
Session depth scoring:
| Pages Viewed Per Session | Points |
|---|---|
| 1 page | +0 |
| 2-3 pages | +5 |
| 4-5 pages | +10 |
| 6+ pages | +15 |
Multi-page sessions indicate sustained engagement. A visitor who navigates through your product page, then pricing, then a case study, then your integrations page has demonstrated a research pattern that maps to buying behavior.
Signal 3: Return Visit Frequency
First-time visitors are at the top of the funnel. Return visitors are progressing through it. Repeat visitors are deep in evaluation.
Return visit scoring:
| Visit Pattern | Points |
|---|---|
| First visit | +0 (baseline) |
| 2nd visit within 14 days | +15 |
| 3rd visit within 14 days | +15 |
| 4th+ visit within 14 days | +10 per visit |
Why return visits are so valuable:
A return visitor has remembered your company, typed in your URL (or searched for you), and come back to continue their research. This is a strong buying signal because it indicates:
- They weren’t satisfied by their first visit - they needed more information (positive: they’re going deeper)
- They’re comparing you against alternatives and coming back for another look
- They’re building a case to present to their team and gathering supporting material
Return visit + page escalation:
The strongest signal is a return visitor who escalates to higher-intent pages. First visit: blog post. Second visit: product page. Third visit: pricing page. This progression maps directly to the B2B buying journey - awareness, consideration, decision.
Track the page sequence across visits and add bonus points for escalation:
- Return visit with higher-intent pages than previous visit: +10 bonus
- Return visit to the same pages: +5 (reinforcement, still valuable)
- Return visit to lower-intent pages only: +0 (probably just reading content)
Signal 4: Orbit Intent Score
The signals above measure what people do on your website. Orbit measures what they do everywhere else.
Orbit’s intent score reflects how actively a person is researching topics related to your product across the web - reading articles, visiting competitor sites, engaging with industry content. It’s scored 0-100.
Incorporating the Orbit intent score:
| Orbit Intent Score | Points | What It Means |
|---|---|---|
| 80-100 | +30 | Actively researching your category now |
| 60-79 | +15 | Showing interest in related topics |
| 40-59 | +5 | Mild topical interest |
| 0-39 | +0 | No relevant research activity detected |
Why intent data is a game-changer for scoring:
Consider two visitors who both spend 2 minutes on your pricing page:
- Visitor A: Orbit intent score of 85 (researching “visitor identification tools,” “website deanonymization,” and “B2B lead generation software” across multiple sites)
- Visitor B: Orbit intent score of 12 (no research activity in your category)
Visitor A is deep in an active buying cycle. Visitor B might have landed on your pricing page from a random Google search and has no immediate purchase intent. Without intent data, they’d score the same. With it, Visitor A scores 30 points higher - a meaningful differentiation.
Intent + website behavior together:
The combination of high Orbit intent and high website engagement is the strongest buying signal available. If someone is researching your category across the web AND visiting your pricing page multiple times, your AE should be reaching out today, not next week.
Signal 5: ICP Fit
Behavioral signals tell you whether someone will buy. ICP fit tells you whether you want them to buy. Both matter.
ICP fit scoring:
| Attribute | Points |
|---|---|
| Job title matches target persona (VP, Director, Head of) | +20 |
| Company size matches ICP (50-500 employees) | +15 |
| Industry matches your best verticals | +10 |
| Company uses complementary tech (e.g., HubSpot, Salesforce) | +5 |
| Geographic fit (US, Canada, UK, etc.) | +5 |
Why ICP fit is scored last, not first:
Traditional models put ICP fit at the center. This model uses it as a modifier. The reason: a perfect ICP match with zero behavioral signals is a cold lead. A decent ICP match with strong behavioral signals is a warm lead. You’d rather talk to the warm lead.
ICP fit prevents false positives from behavioral data. A student researching your product for a class project might visit your pricing page and read five case studies - strong behavioral signals, zero ICP fit. The ICP fit score keeps them from being routed to your AE.
The Complete Scoring Formula
Putting it all together:
Lead Score = Page Score (0-75)
+ Duration Score (0-25)
+ Return Visit Score (0-60)
+ Intent Score (0-30)
+ ICP Fit Score (0-55)
Maximum possible: 245
Score thresholds:
| Score Range | Classification | Action |
|---|---|---|
| 0-30 | Cold | Add to nurture, no outreach |
| 31-60 | Warm | Monitor for additional activity |
| 61-100 | Hot | Route to SDR for outreach within 24 hours |
| 101-150 | Very Hot | Route to AE for immediate, personalized outreach |
| 150+ | On Fire | AE drops everything and calls |
The thresholds are starting points. Calibrate them against your actual close rates. If leads with scores of 50 are closing at the same rate as leads with scores of 80, your thresholds are too generous - tighten them.
Scoring Examples: Three Real Scenarios
Scenario 1: The Active Buyer
Visitor: Sarah Chen, VP of Marketing at a 300-person SaaS company
| Signal | Detail | Points |
|---|---|---|
| Page: Pricing | Viewed pricing page | +25 |
| Page: Case study | Read SaaS case study | +10 |
| Page: Integrations | Viewed HubSpot integration | +10 |
| Duration | 3+ minutes on pricing | +10 |
| Session depth | 4 pages | +10 |
| Return visit | 3rd visit in 10 days | +30 |
| Page escalation | Blog -> Product -> Pricing | +10 |
| Orbit intent | Score: 82 | +30 |
| ICP: Title | VP of Marketing | +20 |
| ICP: Company size | 300 employees | +15 |
| ICP: Industry | SaaS | +10 |
| Total | 180 |
Classification: On Fire. AE should reach out today with a personalized message referencing HubSpot integration and SaaS-specific ROI data.
Scenario 2: The Early Researcher
Visitor: Mike Torres, Marketing Manager at a 75-person fintech company
| Signal | Detail | Points |
|---|---|---|
| Page: Blog | Read 2 blog posts | +10 |
| Page: Product | Viewed features page | +10 |
| Duration | 90 seconds on features | +7 |
| Session depth | 3 pages | +5 |
| Return visit | First visit | +0 |
| Orbit intent | Score: 45 | +5 |
| ICP: Title | Manager (not VP+) | +10 |
| ICP: Company size | 75 employees | +15 |
| ICP: Industry | Fintech | +10 |
| Total | 72 |
Classification: Hot. Route to SDR for outreach within 24 hours. Mike is an ICP match showing early interest. The SDR should share a relevant resource and start a nurture sequence.
Scenario 3: The False Positive
Visitor: Alex Kim, College Student (intern title)
| Signal | Detail | Points |
|---|---|---|
| Page: Pricing | Viewed pricing page | +25 |
| Page: Case studies | Read 3 case studies | +15 (capped) |
| Page: Product | Viewed features | +10 |
| Duration | 2+ minutes on pricing | +10 |
| Session depth | 5 pages | +10 |
| Return visit | 2nd visit | +15 |
| Orbit intent | Score: 8 | +0 |
| ICP: Title | Intern | +0 |
| ICP: Company size | University | +0 |
| ICP: Industry | Education | +0 |
| Total | 85 |
Without ICP fit, this visitor would score 85 - seemingly hot. But the zero ICP points plus a near-zero Orbit intent score reveal this isn’t a buying signal. A smarter model would also apply a negative modifier for non-ICP titles (intern, student, professor), pulling the score down to the warm range where no outreach is triggered.
Implementation in Your CRM
The scoring model is only useful if it lives where your sales team works - your CRM.
Salesforce implementation:
- Create custom fields for each signal category (page_score, duration_score, return_visit_score, intent_score, icp_fit_score, composite_score)
- Configure the Leadpipe webhook to push visitor data into these fields
- Build a Process Builder or Flow that calculates the composite score on each update
- Create a lead view sorted by composite score, descending
- Set up task auto-creation for leads that cross the “hot” threshold
HubSpot implementation:
- Create custom contact properties for each score component
- Build a Zapier workflow that maps webhook data to HubSpot properties
- Use HubSpot workflows to calculate the composite score
- Create an active list for leads above your routing threshold
- Trigger enrollment in a sequence when a lead hits “hot”
Deduplication matters:
When a return visitor is identified, you need to update the existing contact record, not create a new one. Match on email address to ensure visit scores accumulate on a single record. Without deduplication, a three-time visitor gets three separate contacts with low scores instead of one contact with a high score.
Leadpipe gives you the behavioral data that makes lead scoring actually predictive. Identify visitors, track pages, and feed it all into your CRM. Start with 500 free identified leads.
Score Decay: Keeping Scores Fresh
A lead score without decay is a lead score that lies. Someone who visited your pricing page six months ago and hasn’t been back is not a hot lead anymore. But without decay, their score stays frozen at whatever peak it reached.
Decay logic:
| Time Since Last Activity | Decay Applied |
|---|---|
| 0-7 days | No decay |
| 8-14 days | -10% of behavioral score |
| 15-30 days | -25% of behavioral score |
| 31-60 days | -50% of behavioral score |
| 60+ days | Reset behavioral score to 0 |
Important: Only decay behavioral scores (page, duration, return visit, intent). ICP fit scores don’t decay because firmographic attributes don’t change on a weekly basis. A VP at a 300-person SaaS company is still a VP at a 300-person SaaS company next month.
How decay works in practice:
Sarah Chen scored 180 two weeks ago. She hasn’t visited since. At day 14, her behavioral score (125 points) decays by 10%, dropping to 112.5. Her ICP fit score (55 points) stays. New composite: 167.5. She’s still “On Fire” because 14 days isn’t very long.
At day 30, her behavioral score has decayed by 25% to 93.75. Composite: 148.75. Still “Very Hot.”
At day 60, behavioral score resets to 0. Composite: 55 (ICP fit only). She’s now “Warm” - which is exactly right. She was an ideal fit who showed strong interest two months ago. That interest hasn’t been reinforced, so she drops to a holding pattern.
If Sarah returns and visits your pricing page again at day 45, the decay resets and her behavioral score rebuilds from the new activity. The model rewards recency.
Implementing decay:
Run a scheduled job (daily or weekly) that recalculates behavioral scores based on the last activity date. In Salesforce, this can be a scheduled Flow. In HubSpot, a scheduled workflow. The job applies the decay percentages and updates the composite score.
FAQ
How is this different from the lead scoring built into my CRM?
Most CRM-native lead scoring relies on form fills, email opens, and static attributes. This model adds two critical signals your CRM doesn’t have: anonymous website behavior (from Leadpipe) and cross-web research activity (from Orbit). These behavioral signals are far more predictive than email engagement.
What if I don’t have Orbit? Can I still use this model?
Yes. Remove the Intent Score category and recalibrate your thresholds accordingly. The remaining four signals - page, duration, return visit, and ICP fit - still provide a significantly better scoring model than firmographics alone. You can always add intent data later as a score booster.
How do I calibrate the point values?
Start with the values in this post, then adjust based on your close rates. Run the model for 60-90 days, then compare scores against actual pipeline outcomes. If leads with high return-visit scores close at a higher rate than leads with high page scores, increase the return-visit point values. Let your data tune the model.
Should I score every visitor or only visitors that match my ICP?
Score every identified visitor. The ICP fit component naturally pushes non-ICP visitors down the priority list. But don’t filter them out entirely - occasionally, a visitor outside your typical ICP shows strong enough behavioral signals to warrant attention. Let the composite score make that determination.
How do I handle visitors with no Orbit intent data?
Treat missing Orbit data as a 0 score for that component, not as a disqualifier. Many strong leads won’t have intent data, especially if they found you through direct navigation or an internal referral. The other four signal categories should still produce a meaningful score.
Build a Score That Sales Actually Trusts
The goal of lead scoring isn’t to generate a number. It’s to give your sales team a prioritized list they actually believe in. When the number one lead on the list is someone who visited pricing three times, has an Orbit intent score of 85, and matches your ICP perfectly - your AE doesn’t question the score. They pick up the phone.
That’s what behavioral scoring produces: a list that reflects real buying signals, not marketing’s guess about who might be interested.
Leadpipe gives you the behavioral data. Orbit gives you the intent data. Your CRM brings it together. Start with 500 free identified visitors and see what the data tells you.
Related Articles
- Person-Level Intent Data: How It Works
- Visitor Identification Guide for RevOps
- Webhook Payload Reference: Every Visitor Data Field
- Orbit: Person-Level Intent Audiences
- Intent Data vs. Visitor Identification
- Auto-Route Identified Visitors to the Right Sales Rep
- Visitor Identification Guide for SDRs
- Detect Customer Churn Signals from Website Behavior