Design a Lead Scoring Model
Help the user design, weight, and tune a lead scoring model — from defining scoring dimensions and assigning point values through setting MQL/SQL thresholds and implementing in their tools. This skill is tool-agnostic and applies to any CRM (Salesforce, HubSpot), MAP (Marketo, Pardot), or enrichment provider (Apollo, ZoomInfo, Clearbit).
Step 1 — Gather context
Ask the user:
-
What do you sell?
- Product/service category
- Approximate ACV (affects scoring complexity — $5K ACV needs simpler scoring than $100K ACV)
-
What's your sales motion?
- A) Inbound-led — most leads come from marketing (content, ads, events)
- B) Outbound-led — SDRs/BDRs source most leads
- C) Product-led growth (PLG) — users sign up and self-serve, sales engages at usage thresholds
- D) Hybrid — mix of inbound, outbound, and PLG
- E) Channel/partner — leads come through partners
-
What tools do you use?
- CRM: Salesforce, HubSpot, Pipedrive, other
- MAP: Marketo, HubSpot, Pardot, ActiveCampaign, other
- Enrichment: Apollo, ZoomInfo, Clearbit, other
- Product analytics (for PLG): Amplitude, Mixpanel, Heap, Segment, other
-
Current scoring situation?
- A) Starting from scratch — no scoring model exists
- B) Have a model but it's not working (describe symptoms)
- C) Have a basic model, want to improve it
- D) Rebuilding after ICP change or new product launch
-
What does your funnel look like today?
- Monthly lead volume (rough)
- Current MQL → SQL conversion rate (if known)
- Current SQL → closed-won rate (if known)
If the user's request already provides most of this context, skip directly to the relevant step. Lead with your best-effort answer using reasonable assumptions (stated explicitly), then ask only the most critical 1-2 clarifying questions at the end — don't gate your response behind gathering complete context.
Step 2 — Define scoring dimensions
Build a scoring model across four dimensions. Default weights are a starting point — tune based on your sales motion.
Dimension 1: Demographic fit (default 25%)
Score how well the individual matches your buyer persona.
| Attribute | High score | Medium score | Low/negative score |
|---|
| Job title | Exact ICP title match (e.g., VP Engineering) | Adjacent title (Director of Engineering, Head of Platform) | Unrelated title (HR Manager when selling to Engineering) |
| Seniority | Decision-maker level for your product | Influencer level | Too junior to buy or influence |
| Department | Primary buying department | Adjacent department | Unrelated department |
| Job function | Direct match to problem you solve | Related function | No relevance |
Example point values (25 points max):
- Title exact match: 10 pts | Adjacent: 5 pts | No match: 0 pts
- Seniority match: 8 pts | Adjacent: 4 pts | Too junior: 0 pts
- Department match: 7 pts | Adjacent: 3 pts | Unrelated: 0 pts
Dimension 2: Firmographic fit (default 25%)
Score how well the company matches your ICP.
| Attribute | High score | Medium score | Low/negative score |
|---|
| Company size | Sweet spot (e.g., 100-500 employees) | Adjacent range (50-100 or 500-1000) | Way outside range |
| Industry | Primary target industry | Adjacent industry | Industry you don't serve |
| Revenue | Revenue range that matches your pricing | Adjacent range | Can't afford your product |
| Geography | Primary market | Serviceable market | Unsupported region |
| Tech stack | Uses complementary technology | Neutral tech stack | Uses competing product (could be positive for displacement) |
Example point values (25 points max):
- Company size sweet spot: 8 pts | Adjacent: 4 pts | Outside: 0 pts
- Industry match: 7 pts | Adjacent: 3 pts | No match: 0 pts
- Revenue fit: 5 pts | Adjacent: 2 pts | Outside: 0 pts
- Geography: 3 pts | Serviceable: 1 pt | Unsupported: 0 pts
- Tech stack fit: 2 pts
Dimension 3: Behavioral signals (default 30%)
Score what the lead is doing — this is the most predictive dimension for most teams.
| Signal | Points | Decay |
|---|
| Requested demo/trial | 15 pts | None — this is a hard conversion event |
| Pricing page visit | 10 pts | Decays to 5 after 14 days |
| Multiple website visits (3+ in 7 days) | 8 pts | Decays to 4 after 14 days |
| Content download (ebook, whitepaper) | 5 pts | Decays to 2 after 30 days |
| Email engagement (open + click) | 3 pts per engagement | Decays to 0 after 30 days |
| Webinar/event attendance | 8 pts | Decays to 4 after 30 days |
| Intent data — researching your category | 10 pts | Decays to 5 after 14 days (intent is perishable) |
| G2/review site comparison views | 8 pts | Decays to 4 after 14 days |
For PLG/product-led motions, add product usage signals:
| Signal | Points | Decay |
|---|
| Signed up for free tier/trial | 10 pts | None |
| Completed onboarding | 8 pts | None |
| Hit usage threshold (e.g., 100 API calls, 5 team members) | 15 pts | None |
| Invited team members | 10 pts | None |
| Used premium feature (paywall hit) | 12 pts | Decays to 6 after 30 days |
| Daily active usage (5+ days in last 14) | 10 pts | Rolling — recalculated weekly |
Dimension 4: Timing signals (default 20%)
Score recency and urgency signals.
| Signal | Points | Decay |
|---|
| New in role (<90 days) | 10 pts | Decays to 5 after 90 days, 0 after 180 |
| Recent funding | 8 pts | Decays to 4 after 90 days |
| Hiring for roles your product supports | 6 pts | Decays to 3 after 30 days (job postings are time-sensitive) |
| Company growth (20%+ headcount in 6 months) | 5 pts | Decays to 2 after 90 days |
| Competitor contract renewal window | 10 pts | Decays to 0 after the window passes |
Tuning weights by sales motion
| Motion | Demographic | Firmographic | Behavioral | Timing |
|---|
| Inbound-led | 20% | 20% | 40% | 20% |
| Outbound-led | 25% | 30% | 20% | 25% |
| PLG | 15% | 15% | 50% | 20% |
| Enterprise/ABM | 25% | 25% | 25% | 25% |
Step 3 — Set thresholds & stages
MQL/SQL threshold calibration
Start with these defaults, then tune based on conversion data:
| Threshold | Default | What it triggers |
|---|
| MQL (Marketing Qualified Lead) | Top 20% of scored leads | Marketing nurture intensifies, SDR notification |
| SQL (Sales Qualified Lead) | Top 5% of scored leads | SDR outreach, AE handoff, or sales follow-up |
| PQL (Product Qualified Lead, PLG only) | Usage threshold + firmographic fit | Sales outreach to active free users |
How to set initial thresholds:
- Score your last 100 closed-won deals retroactively
- Find the median score — this is roughly your SQL threshold
- Set MQL at 60-70% of the SQL threshold
- Adjust after 30 days of live data
Scoring decay rules
Behavioral signals lose relevance over time. Implement decay to prevent score inflation:
- Fast decay (7-14 days): Intent data, pricing page visits, comparison shopping
- Medium decay (30 days): Content downloads, email engagement, webinar attendance
- Slow decay (90 days): Job changes, funding events, hiring signals
- No decay: Demo requests, trial signups, firmographic/demographic fit
Negative scoring
Subtract points for disqualifying signals:
| Signal | Points |
|---|
| Unsubscribed from emails | -20 pts |
| Competitor employee | -50 pts (or auto-disqualify) |
| Student/educational email (.edu) | -30 pts |
| Personal email (gmail, yahoo) for B2B product | -10 pts |
| Job title contains "intern" or "student" | -20 pts |
| Company size way below minimum | -15 pts |
| Bounced email | -10 pts |
| Marked as "do not contact" | Auto-disqualify |
Step 4 — Implementation guide
HubSpot
- Properties > Create a custom "Lead Score" number property
- Workflows > Create scoring workflows that add/subtract points based on triggers
- For behavioral scoring, use "Contact activity" triggers (page views, form fills, email clicks)
- For decay, create time-based workflows that reduce scores after X days
- Set MQL lifecycle stage change when score exceeds threshold
Salesforce
- Setup > Lead Scoring (if using Einstein Lead Scoring) or custom fields + Process Builder/Flow
- Create a "Lead Score" number field on Lead and Contact objects
- Use Flow Builder to increment/decrement based on field changes and activities
- For behavioral scoring, integrate with your MAP (Marketo, Pardot) which tracks engagement
- Create assignment rules that route SQLs to the right rep
Marketo
- Admin > Scoring > New Scoring Model
- Define demographic score (person attributes) and behavioral score (activities) separately
- Set up smart campaigns that add/subtract points for each trigger
- Configure scoring decay with scheduled batch campaigns
- Sync score to Salesforce for routing and visibility
Apollo
- Use Apollo's built-in lead scoring (Settings > Scoring) for basic ICP fit scoring
- For behavioral scoring, supplement with your MAP — Apollo's native scoring is primarily demographic/firmographic
- Use Apollo's intent data as an input to behavioral scoring in your MAP
- Export scored leads to your CRM for routing
Testing the model
Before going live:
- Backtest: Score your last 6 months of leads retroactively. Check: do closed-won deals score higher than closed-lost?
- Threshold check: At your proposed MQL threshold, what % of leads qualify? (Target: 15-25%)
- False positive check: Sample 20 leads above MQL threshold — would a rep actually want to call them?
- False negative check: Sample 20 closed-won deals — did they score above MQL before they closed?
Step 5 — Tuning & maintenance
Monthly review cadence
Every month, review:
- Conversion rates by score band: Are high-score leads actually converting better?
- MQL → SQL conversion: If below 30%, your MQL threshold is too low (too many bad MQLs)
- SQL → opportunity rate: If below 50%, your SQL threshold is too low
- Score distribution: Is the curve healthy or are most leads clustered at one score?
- Sales feedback: Are reps ignoring MQLs? If so, the model isn't surfacing quality leads.
Weight adjustment methodology
- Export all leads from last 90 days with their scores and outcomes (converted vs not)
- For each scoring dimension, calculate conversion rate by score band
- If a dimension has no correlation with conversion → reduce its weight
- If a dimension strongly correlates → increase its weight
- Re-normalize so total weights = 100%
Common failure modes
| Symptom | Cause | Fix |
|---|
| Too many MQLs, sales ignores them | MQL threshold too low | Raise threshold, add more behavioral weight |
| Too few MQLs, pipeline starving | Threshold too high or scoring too restrictive | Lower threshold, check if firmographic filters are too narrow |
| High-score leads don't convert | Demographic fit overweighted, behavioral underweighted | Increase behavioral weight, add decay to stale signals |
| Score inflation over time | No decay rules, points only go up | Implement decay on all behavioral signals |
| Model works for inbound, not outbound | Model only has behavioral signals | Add firmographic and timing dimensions |
| Sales and marketing disagree on MQL definition | Model built without sales input | Co-create thresholds with sales leadership, review monthly |
Quarterly recalibration
Every quarter:
- Re-run the backtest with latest data
- Check if ICP has shifted (new verticals, new personas)
- Review and update point values based on conversion data
- Add/remove scoring signals based on new data sources
- Validate thresholds still align with funnel capacity
Gotchas
- Don't weight demographics too heavily. Claude defaults to giving 50%+ weight to title/seniority because it's easy to match. But behavioral signals (what they're doing) are more predictive than demographics (who they are). Start with at least 30% behavioral weight.
- Don't skip negative scoring. A lead can have a perfect title at a perfect company but be a student, a competitor, or already unsubscribed. Negative scores prevent false positives that waste sales time and damage your credibility with the sales team.
- Don't set static thresholds and forget them. Scoring models drift as your ICP evolves and market conditions change. A model that was calibrated 6 months ago may be surfacing the wrong leads today. Review and recalibrate quarterly using actual conversion data.
- Don't build the model in isolation. Sales and marketing must agree on MQL/SQL definitions. A scoring model that marketing builds without sales input leads to "bad MQLs" complaints and erodes trust. Co-create with sales leadership and review together monthly.
Related skills
- — Read buying signals that feed into your scoring model
- — Build prospect lists to score
- — Enrich leads with the demographic/firmographic data you need to score
- — Design the broader marketing-to-sales handoff process around your scoring model
- — Set up Apollo's native scoring features
- — Not sure which skill to use? The router matches any sales objective to the right skill. Install:
npx skills add sales-skills/sales --skills sales-do
Examples
Example 1: Inbound B2B SaaS scoring model
User says: "Help me build a lead scoring model for our B2B SaaS product. We're inbound-heavy, $50K ACV."
Skill does:
- Designs a 4-dimension model weighted for inbound (40% behavioral, 20% demographic, 20% firmographic, 20% timing)
- Assigns point values for each attribute with specific thresholds
- Sets MQL at ~60 points, SQL at ~85 points
- Provides HubSpot/Salesforce implementation steps
- Creates a testing and tuning plan
Result: Full scoring model with calibrated thresholds, implementation guide, and monthly review cadence
Example 2: Fixing a broken scoring model
User says: "Our MQL-to-SQL conversion rate is 8%. Our scoring model isn't working."
Skill does:
- Diagnoses likely causes (threshold too low, demographic overweighting, no decay)
- Recommends scoring audit — backtest recent leads against outcomes
- Proposes weight adjustments (increase behavioral, decrease demographic)
- Suggests threshold recalibration based on conversion data
- Creates a 30-day improvement plan with specific metrics to track
Result: Diagnosis of scoring model issues with specific fixes and a recalibration plan
Example 3: PLG product usage scoring
User says: "We're a PLG company. How should product usage signals factor into lead scoring?"
Skill does:
- Designs a behavioral-heavy model (50% behavioral including product signals)
- Defines PQL criteria based on usage thresholds (API calls, team members, feature adoption)
- Integrates product analytics events as scoring signals
- Sets PQL threshold separately from MQL/SQL
- Designs handoff trigger from product usage → sales outreach
Result: PLG-adapted scoring model with product event scoring, PQL definition, and sales handoff triggers
Troubleshooting
Sales says "these MQLs are garbage"
Cause: MQL threshold is too low, or the model overweights demographic fit without behavioral validation
Solution: Review the last 50 MQLs that sales rejected. Look for patterns — are they the wrong persona? Right persona but not engaged? Adjust the dimension that's causing false positives. Often the fix is adding a minimum behavioral score requirement on top of the overall threshold.
Score inflation — everyone is an MQL
Cause: No decay rules, points only accumulate, never decrease
Solution: Implement decay on all behavioral signals (14-day for intent, 30-day for content, 90-day for timing). Run a one-time score recalculation after implementing decay.
Model performs differently for different segments
Cause: One-size-fits-all model doesn't account for segment-specific buying patterns
Solution: Consider separate scoring models for distinct segments (enterprise vs SMB, inbound vs outbound). At minimum, adjust firmographic fit scoring to not penalize enterprise leads for different engagement patterns (they visit fewer pages but have higher deal sizes).