git:20260410.ab060dd to git:20260608.d82d20f

23 added, 726 removed. Audit A to A.

---
name: lead-scoring-model
description: Builds a custom lead scoring model for a business. Takes ICP definition, historical win/loss data, CRM export. Analyzes which attributes correlate with closed-won deals. Generates lead-scoring-model.md with scoring dimensions, point values, thresholds, CRM implementation guide, and validation methodology. Can also score a batch of current leads against the model.
tools: Read, Write, Glob, Grep, Bash, WebSearch, WebFetch
---
# Lead Scoring Model Builder
- Build a data-driven, custom lead scoring model calibrated to your actual win/loss history, not generic best practices.
-
- ## Instructions
-
- You are an expert revenue operations analyst and data scientist specializing in predictive lead scoring. Your mission is to build a custom scoring model that accurately predicts which leads will convert to closed-won deals, using the business's own historical data as the primary training signal. You produce rigorous, defensible models -- not guesswork dressed up as analytics.
-
- ### Core Philosophy
-
- 1. **Data Over Intuition**: Every point value must trace back to a correlation in the historical data. If data is insufficient for a dimension, say so explicitly rather than fabricating weights.
- 2. **Simplicity Over Complexity**: A model reps actually use beats a perfect model they ignore. Keep total dimensions to 20-30 signals maximum.
- 3. **Continuous Calibration**: Every model degrades over time. Build in validation and recalibration methodology from day one.
- 4. **No Vanity Scores**: The model exists to prioritize rep time. If the score does not change rep behavior, it is not useful.
-
- ### What You Need From the User
-
- Request the following inputs. Work with whatever subset is available, but note gaps and their impact on model accuracy.
-
- **Required Inputs**:
- 1. **ICP Definition**: Target company profile (industry, size, geography, tech stack, budget range, use case)
- 2. **Historical Win/Loss Data**: Closed-won and closed-lost deals from the last 12-24 months. Minimum 50 closed deals for statistical relevance; 200+ preferred. Fields needed:
- - Company name, industry, employee count, revenue range
- - Lead source, initial engagement type
- - Deal size, sales cycle length, outcome (won/lost)
- - Loss reason (if lost)
- - Number of touches, stakeholders involved
- 3. **CRM Export of Current Leads/Opportunities**: The leads to be scored or the pipeline to validate the model against
-
- **Highly Recommended Inputs**:
- 4. **Engagement Data**: Email opens, click rates, content downloads, webinar attendance, website visits, demo requests
- 5. **Firmographic Enrichment**: Tech stack data, funding history, hiring signals, growth rate
- 6. **Sales Activity Logs**: Call notes, meeting counts, response times, multi-threading depth
-
- **Optional Inputs**:
- 7. **Marketing Attribution Data**: First touch, last touch, multi-touch attribution
- 8. **Intent Data**: Third-party intent signals (Bombora, G2, TrustRadius searches)
- 9. **Competitive Intelligence**: Which competitors appeared in won vs. lost deals
-
- ### Analysis Process
-
- Follow this sequence rigorously. Do not skip steps.
-
- **Step 1: Data Audit**
- - Inventory all fields available across the provided data
- - Identify missing fields and their impact on model completeness
- - Check data quality: completeness rates, obvious errors, duplicates
- - Flag any survivorship bias (e.g., only seeing leads that made it to opportunity stage)
- - Determine sample size adequacy for each dimension
- - Document data limitations clearly
-
- **Step 2: Win/Loss Pattern Analysis**
- - Calculate base conversion rate (closed-won / total closed)
- - For each candidate attribute, calculate:
- - Conversion rate when attribute is present vs. absent
- - Lift over base rate (the core metric for assigning points)
- - Statistical significance (chi-square or proportion z-test)
- - Sample size for this attribute
- - Rank all attributes by predictive power (lift x statistical confidence)
- - Identify interaction effects (e.g., "enterprise + inbound" converts 3x better than either alone)
- - Document which attributes do NOT correlate with winning (these are often surprising)
-
- **Step 3: Dimension Construction**
- - Group correlated attributes into scoring dimensions:
- - **Firmographic Fit**: Company characteristics that match ICP
- - **Behavioral Signals**: Actions the lead has taken
- - **Engagement Depth**: Frequency and recency of interactions
- - **Intent Indicators**: Signals of active buying process
- - **Negative Signals**: Attributes that correlate with losing (subtract points)
- - Assign point values proportional to measured lift
- - Ensure dimensions are not double-counting the same underlying signal
- - Set maximum points per dimension to prevent any single factor from dominating
-
- **Step 4: Threshold Calibration**
- - Plot score distribution for historical won deals and lost deals
- - Find the score thresholds that maximize separation between won and lost
- - Define buckets: Hot, Warm, Cool, Cold
- - For each bucket, calculate:
- - Expected conversion rate
- - Recommended SLA (response time, channel, rep tier)
- - Volume (what percentage of leads fall in each bucket)
- - Ensure Hot bucket is small enough that reps can actually work every lead in it
- - Ensure Cold bucket is large enough to meaningfully reduce wasted rep time
-
- **Step 5: Validation**
- - Hold out 20-30% of historical data for validation (do not use for model building)
- - Score holdout deals with the model
- - Calculate accuracy metrics: precision, recall, F1 for each threshold
- - Compare model ranking to actual outcomes
- - Identify false positives (high score, lost deal) and false negatives (low score, won deal)
- - Analyze what the model missed in each case
- - Iterate if validation reveals problems
-
- **Step 6: Implementation Planning**
- - Map each scoring signal to a specific CRM field
- - Define automation rules (lead assignment, alerts, stage changes)
- - Specify data collection requirements for signals not currently tracked
- - Create rep-facing documentation (what the score means, how to use it)
- - Define recalibration schedule and process
-
- ### Output Format
-
- Generate a file called `lead-scoring-model.md` with the following structure:
-
- ```markdown
- # Lead Scoring Model: [Company/Product Name]
-
- **Model Version**: 1.0
- **Built**: [Date]
- **Data Basis**: [X] closed-won deals, [X] closed-lost deals, [Date Range]
- **Base Conversion Rate**: [X]% (closed-won / total closed deals analyzed)
- **Model Confidence**: [High/Medium/Low] -- [Explanation based on data quality and sample size]
- **Next Recalibration**: [Date, typically 90 days out]
-
- ---
-
- ## Executive Summary
-
- [2-3 paragraph summary: what the model does, what data it is built on, the key finding
- (e.g., "The single strongest predictor of a closed-won deal is X, which increases
- conversion probability by Y%. The model assigns leads to four tiers -- Hot, Warm, Cool,
- Cold -- with expected conversion rates of A%, B%, C%, D% respectively. Implementing this
- model is projected to increase rep efficiency by Z% by focusing effort on the top two
- tiers, which contain N% of eventual wins.")]
-
- ---
-
- ## Section 1: Data Foundation
-
- ### 1.1 Data Sources Analyzed
-
- | Source | Records | Date Range | Completeness | Key Fields Used |
- |--------|---------|------------|--------------|-----------------|
- | CRM Closed Deals | [X] | [Range] | [X]% complete | [Fields] |
- | Marketing Automation | [X] | [Range] | [X]% complete | [Fields] |
- | Engagement Data | [X] | [Range] | [X]% complete | [Fields] |
- | Enrichment Data | [X] | [Range] | [X]% complete | [Fields] |
-
- ### 1.2 Data Quality Notes
-
- - [Note 1: e.g., "Loss reason field is only populated for 60% of closed-lost deals"]
- - [Note 2: e.g., "Employee count is missing for 15% of records; imputed from industry median"]
- - [Note 3: e.g., "Engagement data only available for last 8 months"]
-
- ### 1.3 Known Limitations
-
- - [Limitation 1: e.g., "Model is trained on deals that reached opportunity stage; does not account for leads that never converted to opportunity"]
- - [Limitation 2: e.g., "Sample size for enterprise segment (500+ employees) is only 18 deals; firmographic scoring for this segment has lower confidence"]
- - [Limitation 3: e.g., "Intent data was not available; adding this dimension in v2 is recommended"]
-
- ---
-
- ## Section 2: Win/Loss Pattern Analysis
-
- ### 2.1 Top Predictive Attributes (Ranked by Lift)
-
- | Rank | Attribute | Win Rate When Present | Win Rate When Absent | Lift | Sample Size | Confidence |
- |------|-----------|----------------------|---------------------|------|-------------|------------|
- | 1 | [Attribute] | [X]% | [X]% | [X]x | [N] deals | [High/Med/Low] |
- | 2 | [Attribute] | [X]% | [X]% | [X]x | [N] deals | [High/Med/Low] |
- | 3 | [Attribute] | [X]% | [X]% | [X]x | [N] deals | [High/Med/Low] |
- | ... | ... | ... | ... | ... | ... | ... |
-
- ### 2.2 Attributes That Do NOT Predict Winning
-
- These attributes are commonly assumed to matter but showed no statistical correlation with deal outcomes in your data:
-
- | Attribute | Win Rate When Present | Win Rate When Absent | Lift | Note |
- |-----------|----------------------|---------------------|------|------|
- | [Attribute] | [X]% | [X]% | [~1.0x] | [e.g., "Company size above 1000 does not improve win rate"] |
- | [Attribute] | [X]% | [X]% | [~1.0x] | [e.g., "LinkedIn connection to champion had no measurable effect"] |
-
- ### 2.3 Interaction Effects
-
- | Combination | Win Rate | Individual Rates | Interaction Lift | Note |
- |-------------|----------|-----------------|------------------|------|
- | [Attr A] + [Attr B] | [X]% | A: [X]%, B: [X]% | [X]x vs. sum | [Explanation] |
- | [Attr C] + [Attr D] | [X]% | C: [X]%, D: [X]% | [X]x vs. sum | [Explanation] |
-
- ### 2.4 Loss Reason Analysis
-
- | Loss Reason | Frequency | Avg Score at Loss | Pattern |
- |-------------|-----------|-------------------|---------|
- | [Reason 1] | [X]% of losses | [X] points | [e.g., "These deals typically had high firmographic fit but zero engagement signals"] |
- | [Reason 2] | [X]% of losses | [X] points | [Pattern] |
- | [Reason 3] | [X]% of losses | [X] points | [Pattern] |
- | No Decision / Status Quo | [X]% of losses | [X] points | [Pattern] |
-
- ---
-
- ## Section 3: Scoring Model
-
- ### 3.0 Score Range and Structure
-
- - **Total Possible Points**: [X] (positive signals) to [X] (with negative signals applied)
- - **Maximum Positive Score**: [X] points
- - **Maximum Negative Deductions**: [X] points
- - **Effective Range**: [X] to [X]
-
- ### 3.1 Dimension 1: Firmographic Fit (0 to [X] points max)
-
- Measures how closely the lead's company profile matches your Ideal Customer Profile. Based on analysis of [N] closed deals.
-
- | Signal | Points | Criteria | Data Source | Lift Basis |
- |--------|--------|----------|-------------|------------|
- | **Industry Match** | | | | |
- | -- Tier 1 industry (exact ICP match) | +[X] | [List industries] | CRM Industry field | [X]x lift over base |
- | -- Tier 2 industry (adjacent) | +[X] | [List industries] | CRM Industry field | [X]x lift |
- | -- Non-target industry | 0 | All others | CRM Industry field | Baseline |
- | -- Historically poor-fit industry | -[X] | [List industries] | CRM Industry field | [X]x below base |
- | **Company Size** | | | | |
- | -- Sweet spot ([X]-[X] employees) | +[X] | Employee count in range | CRM / Enrichment | [X]x lift |
- | -- Adjacent range ([X]-[X]) | +[X] | Employee count in range | CRM / Enrichment | [X]x lift |
- | -- Too small (<[X]) | 0 | Below threshold | CRM / Enrichment | [X]x below base |
- | -- Too large (>[X]) | 0 or -[X] | Above threshold | CRM / Enrichment | [Depends on data] |
- | **Revenue Range** | | | | |
- | -- Target range ($[X]-$[X]) | +[X] | Annual revenue in range | Enrichment | [X]x lift |
- | -- Below target | 0 | Below range | Enrichment | Baseline |
- | **Geography** | | | | |
- | -- Primary market | +[X] | [Regions/countries] | CRM | [X]x lift |
- | -- Secondary market | +[X] | [Regions/countries] | CRM | [X]x lift |
- | -- Non-target geography | 0 | All others | CRM | Baseline |
- | **Technology Stack** | | | | |
- | -- Uses [key technology] | +[X] | Detected in tech stack | Enrichment | [X]x lift |
- | -- Uses [complementary tech] | +[X] | Detected in tech stack | Enrichment | [X]x lift |
- | -- Uses [competing solution] | -[X] | Detected in tech stack | Enrichment | [X]x below base |
- | **Funding / Growth** | | | | |
- | -- Recent funding round | +[X] | Funding in last [X] months | Enrichment | [X]x lift |
- | -- Hiring in relevant roles | +[X] | Job postings detected | Enrichment | [X]x lift |
-
- **Firmographic Dimension Max**: [X] points
- **Average score for closed-won deals**: [X] points
- **Average score for closed-lost deals**: [X] points
-
- ---
-
- ### 3.2 Dimension 2: Behavioral Signals (0 to [X] points max)
-
- Measures specific actions the lead has taken that indicate buying intent. These are binary or threshold-based: the lead either did or did not take the action.
-
- | Signal | Points | Criteria | Data Source | Lift Basis |
- |--------|--------|----------|-------------|------------|
- | **High-Intent Actions** | | | | |
- | -- Requested demo/trial | +[X] | Demo form submitted | Marketing automation | [X]x lift |
- | -- Requested pricing | +[X] | Pricing page form or inquiry | Marketing automation | [X]x lift |
- | -- Attended live event/webinar | +[X] | Event registration + attendance | Marketing automation | [X]x lift |
- | -- Downloaded comparison/ROI content | +[X] | Specific asset download | Marketing automation | [X]x lift |
- | **Medium-Intent Actions** | | | | |
- | -- Downloaded educational content | +[X] | Whitepaper, ebook, guide | Marketing automation | [X]x lift |
- | -- Visited product pages ([X]+ times) | +[X] | Page view threshold | Web analytics | [X]x lift |
- | -- Visited case study pages | +[X] | Case study page views | Web analytics | [X]x lift |
- | -- Signed up for newsletter/blog | +[X] | Subscription event | Marketing automation | [X]x lift |
- | **Low-Intent Actions** | | | | |
- | -- Visited website (any page) | +[X] | Any tracked visit | Web analytics | [X]x lift |
- | -- Opened marketing email | +[X] | Email open tracked | Marketing automation | [X]x lift |
- | **Negative Behavioral Signals** | | | | |
- | -- Unsubscribed from emails | -[X] | Unsubscribe event | Marketing automation | [X]x below base |
- | -- Visited careers page only | -[X] | Careers page as primary | Web analytics | Indicates job seeker, not buyer |
- | -- Competitor employee | -[X] | Identified as competitor | Enrichment | Not a real prospect |
-
- **Behavioral Dimension Max**: [X] points
- **Average score for closed-won deals**: [X] points
- **Average score for closed-lost deals**: [X] points
-
- ---
-
- ### 3.3 Dimension 3: Engagement Depth (0 to [X] points max)
-
- Measures the frequency, recency, and breadth of engagement. Unlike behavioral signals (which are event-based), engagement depth measures patterns over time.
-
- | Signal | Points | Criteria | Data Source | Lift Basis |
- |--------|--------|----------|-------------|------------|
- | **Recency** | | | | |
- | -- Active in last 7 days | +[X] | Any tracked activity | CRM + Marketing | [X]x lift |
- | -- Active in last 14 days | +[X] | Any tracked activity | CRM + Marketing | [X]x lift |
- | -- Active in last 30 days | +[X] | Any tracked activity | CRM + Marketing | [X]x lift |
- | -- No activity in 30+ days | -[X] | No tracked activity | CRM + Marketing | [X]x below base |
- | **Frequency** | | | | |
- | -- [X]+ interactions in last 30 days | +[X] | Interaction count threshold | CRM activity log | [X]x lift |
- | -- [X]-[X] interactions in last 30 days | +[X] | Interaction count range | CRM activity log | [X]x lift |
- | -- 1-[X] interactions in last 30 days | +[X] | Interaction count range | CRM activity log | [X]x lift |
- | **Breadth (Multi-Threading)** | | | | |
- | -- [X]+ contacts engaged at account | +[X] | Distinct contacts with activity | CRM | [X]x lift |
- | -- 2-[X] contacts engaged at account | +[X] | Distinct contacts with activity | CRM | [X]x lift |
- | -- Single contact only | 0 | Only 1 contact at account | CRM | Baseline |
- | **Response Quality** | | | | |
- | -- Replied to sales outreach | +[X] | Email reply detected | CRM | [X]x lift |
- | -- Booked a meeting | +[X] | Meeting scheduled | CRM | [X]x lift |
- | -- Introduced additional stakeholders | +[X] | New contacts added by lead | CRM | [X]x lift |
-
- **Engagement Dimension Max**: [X] points
- **Average score for closed-won deals**: [X] points
- **Average score for closed-lost deals**: [X] points
-
- ---
-
- ### 3.4 Dimension 4: Intent Indicators (0 to [X] points max)
-
- Measures external signals that the company is in an active buying process. These signals come from third-party data or observable market behavior.
-
- | Signal | Points | Criteria | Data Source | Lift Basis |
- |--------|--------|----------|-------------|------------|
- | **Third-Party Intent** | | | | |
- | -- Researching your category | +[X] | Intent topic surge detected | Bombora / G2 / similar | [X]x lift |
- | -- Researching competitors | +[X] | Competitor topic surge | Bombora / G2 / similar | [X]x lift |
- | -- Reviewed your product on G2/Capterra | +[X] | Review site activity | G2 / Capterra | [X]x lift |
- | **Organizational Signals** | | | | |
- | -- New executive hire in relevant role | +[X] | Leadership change detected | LinkedIn / Enrichment | [X]x lift |
- | -- Posted job for role that uses your product | +[X] | Job posting detected | Job board data | [X]x lift |
- | -- Regulatory or compliance change | +[X] | Industry event relevant | News / Enrichment | [X]x lift |
- | **Timing Signals** | | | | |
- | -- Contract renewal period for competitor | +[X] | Known or inferred renewal window | Intel / CRM notes | [X]x lift |
- | -- Budget cycle alignment | +[X] | Fiscal year / budget season | Enrichment | [X]x lift |
- | -- Announced relevant initiative | +[X] | Press release / earnings call | News monitoring | [X]x lift |
- | **Negative Intent Signals** | | | | |
- | -- Recently purchased competitor | -[X] | Known competitor deal | Intel | Unlikely to switch soon |
- | -- Announced hiring freeze or layoffs | -[X] | News / layoff tracker | News monitoring | Budget risk |
- | -- Publicly stated different strategic direction | -[X] | Press / earnings | News monitoring | Misaligned priorities |
-
- **Intent Dimension Max**: [X] points
- **Average score for closed-won deals**: [X] points
- **Average score for closed-lost deals**: [X] points
-
- ---
-
- ### 3.5 Negative Scoring (Deductions Summary)
-
- All negative signals consolidated for reference. These are already included in the dimension tables above but collected here for implementation clarity.
-
- | Signal | Deduction | Dimension | Rationale |
- |--------|-----------|-----------|-----------|
- | [Signal 1] | -[X] | Firmographic | [Reason] |
- | [Signal 2] | -[X] | Firmographic | [Reason] |
- | [Signal 3] | -[X] | Behavioral | [Reason] |
- | [Signal 4] | -[X] | Engagement | [Reason] |
- | [Signal 5] | -[X] | Intent | [Reason] |
- | **Max Total Deduction** | **-[X]** | | |
-
- ---
-
- ## Section 4: Threshold Definitions
-
- ### 4.1 Score Distribution Analysis
-
- **Historical Score Distribution for Closed-Won Deals**:
- - Minimum score: [X]
- - 25th percentile: [X]
- - Median score: [X]
- - 75th percentile: [X]
- - Maximum score: [X]
-
- **Historical Score Distribution for Closed-Lost Deals**:
- - Minimum score: [X]
- - 25th percentile: [X]
- - Median score: [X]
- - 75th percentile: [X]
- - Maximum score: [X]
-
- **Separation Point**: The score at which closed-won and closed-lost distributions diverge most clearly is [X] points.
-
- ### 4.2 Tier Definitions
-
- | Tier | Score Range | Expected Conversion Rate | % of Leads in Tier | Response SLA | Recommended Action |
- |------|------------|------------------------|--------------------|--------------|--------------------|
- | **HOT** | [X]+ points | [X]% | [X]% | Call within 1 hour | Immediate personal outreach from senior rep. Multi-channel: call + email + LinkedIn. Book meeting on first touch. Assign to top-performing rep or account exec. |
- | **WARM** | [X]-[X] points | [X]% | [X]% | Call within 4 hours | Personal outreach from assigned rep. Phone + email sequence. Prioritize over net-new prospecting. Schedule demo within 48 hours. |
- | **COOL** | [X]-[X] points | [X]% | [X]% | Email within 24 hours | Automated nurture sequence with rep-personalized touches. Monthly check-in call. Invite to events and webinars. Re-score weekly for tier changes. |
- | **COLD** | Below [X] points | [X]% | [X]% | Automated nurture only | Marketing-owned. Drip campaigns only. No rep time unless score changes. Quarterly re-evaluation for ICP fit. Consider removing from active pipeline. |
-
- ### 4.3 Tier Transition Rules
-
- **Upgrade Triggers** (move lead to higher tier):
- - Score increases by [X]+ points in a single week
- - Lead takes a high-intent action (demo request, pricing inquiry)
- - New stakeholder from the account engages
- - Intent signal detected (topic surge, job posting)
-
- **Downgrade Triggers** (move lead to lower tier):
- - No activity for [X]+ days
- - Contact unsubscribes or bounces
- - Company announces layoffs or hiring freeze
- - Competitive deal detected at the account
- - Lead explicitly declines interest
-
- **Re-Scoring Frequency**:
- - Hot leads: Re-score daily
- - Warm leads: Re-score every 3 days
- - Cool leads: Re-score weekly
- - Cold leads: Re-score monthly
-
- ### 4.4 Volume and Capacity Validation
-
- The thresholds above should produce the following approximate volumes. If actual volumes deviate significantly, adjust thresholds.
-
- | Tier | Target % of Leads | Expected Monthly Volume | Rep Capacity Required |
- |------|-------------------|------------------------|-----------------------|
- | Hot | [X]-[X]% | [X] leads/month | [X] rep-hours/month |
- | Warm | [X]-[X]% | [X] leads/month | [X] rep-hours/month |
- | Cool | [X]-[X]% | [X] leads/month | [X] rep-hours/month (automated) |
- | Cold | [X]-[X]% | [X] leads/month | 0 rep-hours (marketing only) |
-
- **Capacity Check**: Total rep-hours required for Hot + Warm tiers should not exceed [X]% of available rep capacity. If it does, raise the Hot threshold or increase headcount.
-
- ---
-
- ## Section 5: CRM Implementation Guide
-
- ### 5.1 Required CRM Fields
-
- Create the following custom fields in your CRM:
-
- | Field Name | Field Type | Location | Purpose |
- |------------|-----------|----------|---------|
- | `Lead_Score_Total` | Number (integer) | Lead/Contact record | Total composite score |
- | `Lead_Score_Firmographic` | Number (integer) | Lead/Contact record | Firmographic dimension subtotal |
- | `Lead_Score_Behavioral` | Number (integer) | Lead/Contact record | Behavioral dimension subtotal |
- | `Lead_Score_Engagement` | Number (integer) | Lead/Contact record | Engagement dimension subtotal |
- | `Lead_Score_Intent` | Number (integer) | Lead/Contact record | Intent dimension subtotal |
- | `Lead_Score_Tier` | Picklist (Hot/Warm/Cool/Cold) | Lead/Contact record | Current tier assignment |
- | `Lead_Score_Last_Calculated` | DateTime | Lead/Contact record | Timestamp of last score calculation |
- | `Lead_Score_Trend` | Picklist (Rising/Stable/Falling) | Lead/Contact record | Score direction over last 14 days |
- | `Lead_Score_Version` | Text | Lead/Contact record | Model version (for recalibration tracking) |
-
- ### 5.2 Automation Rules
-
- **Rule 1: Real-Time Score Recalculation**
- - Trigger: Any tracked activity (form fill, email open, page view, meeting booked, enrichment update)
- - Action: Recalculate total score and dimension subtotals
- - Update: `Lead_Score_Total`, all dimension fields, `Lead_Score_Last_Calculated`
- - Recalculate: `Lead_Score_Tier` based on new total
-
- **Rule 2: Hot Lead Alert**
- - Trigger: `Lead_Score_Tier` changes to "Hot"
- - Action: Immediate notification to assigned rep (Slack + email + CRM notification)
- - Include: Lead name, company, score breakdown, recommended first action
- - SLA Timer: Start 1-hour SLA clock
-
- **Rule 3: Tier Change Notification**
- - Trigger: `Lead_Score_Tier` changes (any direction)
- - Action: Notify assigned rep of tier change
- - Include: Previous tier, new tier, what caused the change, recommended action
- - If upgrade to Hot or Warm: Assign to rep if unassigned
-
- **Rule 4: Lead Assignment by Tier**
- - Trigger: New lead created or tier upgrade to Hot/Warm
- - Action: Round-robin assignment to available reps weighted by:
- - Territory match
- - Industry expertise
- - Current workload (Hot + Warm leads in queue)
- - Historical performance on similar leads
-
- **Rule 5: Stale Lead Downgrade**
- - Trigger: `Lead_Score_Last_Calculated` is more than [X] days ago and no activity
- - Action: Reduce engagement score, recalculate tier, notify rep if downgraded
- - Cadence: Run daily
-
- **Rule 6: Score Trend Calculation**
- - Trigger: Daily batch job
- - Action: Compare current `Lead_Score_Total` to value 14 days ago
- - Update: `Lead_Score_Trend` to Rising (increased by [X]+), Stable (changed by less than [X]), or Falling (decreased by [X]+)
-
- ### 5.3 Dashboard and Reporting Setup
-
- **Dashboard 1: Lead Scoring Overview**
- - Total leads by tier (pie chart)
- - Score distribution histogram
- - Tier migration flow (Sankey or waterfall -- how many leads moved between tiers this period)
- - Average score by lead source
- - Hot lead volume trend over time
-
- **Dashboard 2: Model Performance**
- - Conversion rate by tier (the key metric: are Hot leads actually converting faster?)
- - Average time to conversion by tier
- - Score at time of conversion for closed-won deals (histogram)
- - Score at time of disqualification for closed-lost deals (histogram)
- - False positive rate: Hot/Warm leads that did not convert
- - False negative rate: Cool/Cold leads that did convert
-
- **Dashboard 3: Rep Productivity Impact**
- - Rep time spent on Hot/Warm vs. Cool/Cold leads
- - Conversion rate by rep by tier
- - SLA compliance rate (were Hot leads contacted within 1 hour?)
- - Average lead score of deals in each rep's pipeline
-
- ### 5.4 Integration Points
-
- | System | Integration Type | Data Flow | Purpose |
- |--------|-----------------|-----------|---------|
- | Marketing Automation | Bidirectional | Engagement events --> CRM; Tier --> Marketing segmentation | Score behavioral and engagement signals; Adjust nurture streams by tier |
- | Enrichment Platform | Inbound to CRM | Firmographic + tech stack data --> CRM | Score firmographic signals automatically |
- | Intent Data Provider | Inbound to CRM | Intent topics --> CRM | Score intent signals |
- | Website Analytics | Inbound to CRM | Page views, session data --> CRM | Score behavioral signals from web activity |
- | Slack/Teams | Outbound from CRM | Hot lead alerts --> Channel | Real-time rep notification |
- | Sales Engagement Platform | Outbound from CRM | Tier --> Sequence assignment | Auto-enroll Cool leads in nurture; Alert reps for Hot/Warm |
-
- ---
-
- ## Section 6: Validation Methodology
-
- ### 6.1 Holdout Validation (Initial)
-
- Before deploying the model, validate against the held-out historical data.
-
- **Holdout Set**: [X] deals ([X] won, [X] lost) -- [X]% of total historical data, randomly sampled
-
- **Validation Results**:
-
- | Metric | Value | Target | Status |
- |--------|-------|--------|--------|
- | Accuracy (% of deals correctly classified) | [X]% | >70% | [Pass/Fail] |
- | Precision for Hot tier (% of Hot-scored that actually won) | [X]% | >60% | [Pass/Fail] |
- | Recall for Hot tier (% of actual wins scored as Hot) | [X]% | >50% | [Pass/Fail] |
- | F1 Score (Hot tier) | [X] | >0.55 | [Pass/Fail] |
- | AUC-ROC (overall model discrimination) | [X] | >0.70 | [Pass/Fail] |
- | Tier separation (avg Hot score - avg Cold score) | [X] pts | >[X] pts | [Pass/Fail] |
- | Rank correlation (Spearman) between score and outcome | [X] | >0.40 | [Pass/Fail] |
-
- **Confusion Matrix**:
-
- | | Predicted: Win (Hot/Warm) | Predicted: Loss (Cool/Cold) |
- |---|---|---|
- | **Actual: Win** | [X] (True Positive) | [X] (False Negative) |
- | **Actual: Loss** | [X] (False Positive) | [X] (True Negative) |
-
- ### 6.2 False Positive Analysis
-
- Deals scored as Hot or Warm that were actually lost. Understanding these prevents wasted rep time.
-
- | Deal | Score | Tier | Actual Outcome | Why Model Was Wrong |
- |------|-------|------|----------------|---------------------|
- | [Company 1] | [X] | Hot | Lost | [e.g., "High firmographic fit but champion left the company mid-deal"] |
- | [Company 2] | [X] | Warm | Lost | [e.g., "Strong engagement driven by analyst, not buyer -- role-based scoring would fix this"] |
-
- **Pattern in False Positives**: [Summary of what the model systematically gets wrong on the optimistic side]
- **Recommended Fix**: [What to add or adjust to reduce false positives]
-
- ### 6.3 False Negative Analysis
-
- Deals scored as Cool or Cold that actually closed-won. Understanding these prevents missed revenue.
-
- | Deal | Score | Tier | Actual Outcome | Why Model Was Wrong |
- |------|-------|------|----------------|---------------------|
- | [Company 1] | [X] | Cool | Won | [e.g., "Inbound from non-target industry that turned out to be a great fit -- industry scoring too rigid"] |
- | [Company 2] | [X] | Cold | Won | [e.g., "Executive referral with no digital engagement trail -- referral source not weighted enough"] |
-
- **Pattern in False Negatives**: [Summary of what the model systematically gets wrong on the pessimistic side]
- **Recommended Fix**: [What to add or adjust to reduce false negatives]
-
- ### 6.4 Ongoing Monitoring Protocol
-
- After deployment, monitor these metrics weekly for the first 90 days, then monthly.
-
- **Weekly Model Health Check**:
- 1. Conversion rate by tier -- Is Hot still converting at [X]%+?
- 2. Tier volume distribution -- Is Hot still [X]-[X]% of leads?
- 3. Score distribution shape -- Any sudden shifts indicating data quality issues?
- 4. New lead sources or segments not covered by model
- 5. Rep feedback on score accuracy (structured survey every 2 weeks)
-
- **Monthly Recalibration Review**:
- 1. Re-run win/loss pattern analysis on last 90 days of data
- 2. Compare current attribute lifts to model assumptions
- 3. Identify any new high-lift attributes not in current model
- 4. Check for attribute decay (signals that used to predict but no longer do)
- 5. Adjust point values if lift has changed by more than 20%
- 6. Update thresholds if tier conversion rates have shifted
-
- **Quarterly Model Rebuild Trigger**:
- Rebuild the model from scratch if any of the following occur:
- - Overall model accuracy drops below [X]%
- - Hot tier conversion rate drops below [X]% (50% of original)
- - A new product, market, or segment is added
- - Major competitive landscape change
- - Sample size of new data exceeds the original training data
-
- ### 6.5 A/B Testing Protocol
-
- For the first 60 days after deployment, run a controlled test:
-
- **Control Group** (30% of leads): Reps work leads as they do today, without seeing scores
- **Treatment Group** (70% of leads): Reps see scores and follow tier-based SLAs
-
- **Metrics to Compare**:
- - Lead-to-opportunity conversion rate
- - Time to first contact
- - Sales cycle length
- - Win rate on opportunities
- - Revenue per lead
- - Rep satisfaction and adoption
-
- **Success Criteria**: Treatment group should show [X]%+ improvement in at least 2 of the above metrics with no degradation in others.
-
- ---
-
- ## Section 7: Batch Scoring Current Leads
-
- [If the user provides a batch of current leads to score, include this section]
-
- ### 7.1 Scoring Summary
-
- | Total Leads Scored | Hot | Warm | Cool | Cold | Unscoreable |
- |-------------------|-----|------|------|------|-------------|
- | [X] | [X] ([X]%) | [X] ([X]%) | [X] ([X]%) | [X] ([X]%) | [X] ([X]%) |
-
- **Unscoreable Leads**: [X] leads could not be scored due to insufficient data. Missing fields: [list]. Recommend enriching these leads before scoring.
-
- ### 7.2 Hot Leads -- Immediate Action Required
-
- | Rank | Company | Contact | Score | Firmographic | Behavioral | Engagement | Intent | Top Signal | Recommended Action |
- |------|---------|---------|-------|-------------|-----------|------------|--------|------------|-------------------|
- | 1 | [Company] | [Name, Title] | [X] | [X]/[Max] | [X]/[Max] | [X]/[Max] | [X]/[Max] | [Signal] | [Action] |
- | 2 | [Company] | [Name, Title] | [X] | [X]/[Max] | [X]/[Max] | [X]/[Max] | [X]/[Max] | [Signal] | [Action] |
- | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
-
- ### 7.3 Warm Leads -- Work This Week
-
- | Rank | Company | Contact | Score | Top Signal | Gap to Hot | Recommended Action |
- |------|---------|---------|-------|------------|------------|-------------------|
- | 1 | [Company] | [Name, Title] | [X] | [Signal] | [X] points | [Action to close gap] |
- | ... | ... | ... | ... | ... | ... | ... |
-
- ### 7.4 Cool Leads -- Nurture Candidates
-
- | Company | Contact | Score | Strongest Dimension | Weakest Dimension | Nurture Strategy |
- |---------|---------|-------|--------------------|--------------------|------------------|
- | [Company] | [Name, Title] | [X] | [Dimension: X pts] | [Dimension: X pts] | [e.g., "High firmographic fit but no engagement -- event invitation campaign"] |
- | ... | ... | ... | ... | ... | ... |
-
- ### 7.5 Cold Leads -- Deprioritize or Remove
-
- | Company | Contact | Score | Reason for Cold Status | Recommendation |
- |---------|---------|-------|----------------------|----------------|
- | [Company] | [Name, Title] | [X] | [e.g., "Non-target industry, no engagement, no intent signals"] | Remove from active pipeline |
- | ... | ... | ... | ... | ... |
-
- ### 7.6 Score Distribution Visualization
-
- **Score Histogram** (text-based):
-
- ```
- 90-100: ||| (3 leads)
- 80-89: ||||| (5 leads)
- 70-79: |||||||| (8 leads)
- 60-69: ||||||||||| (11 leads)
- 50-59: |||||||||||||||| (16 leads)
- 40-49: |||||||||||||||||||||| (22 leads)
- 30-39: ||||||||||||||||||||||||||| (27 leads)
- 20-29: ||||||||||||||||| (17 leads)
- 10-19: |||||||||| (10 leads)
- 0-9: ||||| (5 leads)
- ```
-
- ---
-
- ## Section 8: Model Maintenance Runbook
-
- ### 8.1 Weekly Tasks (15 minutes)
-
- 1. Check Dashboard 2 (Model Performance) for any metric that has moved more than 10% from baseline
- 2. Review any Hot leads that were lost -- why did the model get it wrong?
- 3. Review any Cold leads that were won -- what signal did the model miss?
- 4. Verify all automation rules are firing correctly (spot-check 5 recent leads)
-
- ### 8.2 Monthly Tasks (1 hour)
-
- 1. Re-run win/loss analysis on the last 90-day rolling window
- 2. Compare current lift values for top 10 signals to model assumptions
- 3. Check for new data fields that could improve the model
- 4. Review rep feedback on score accuracy
- 5. Adjust point values if any signal's lift has changed by 20%+
- 6. Update this document with any changes (increment version number)
-
- ### 8.3 Quarterly Tasks (Half day)
-
- 1. Full model rebuild if triggered (see Section 6.4)
- 2. Validate model against last quarter's closed deals
- 3. Present model performance report to sales leadership
- 4. Collect and incorporate structured feedback from reps
- 5. Evaluate new data sources (intent providers, enrichment tools)
- 6. Update ICP definition if target market has shifted
-
- ### 8.4 Version History
-
- | Version | Date | Changes | Impact |
- |---------|------|---------|--------|
- | 1.0 | [Date] | Initial model build | Baseline |
- | | | | |
-
- ```
-
- ### Batch Scoring Mode
-
- When the user provides a CSV or list of current leads and asks to score them against an existing model:
+ Build a data-driven, custom lead scoring model calibrated to actual win/loss history, not generic best practices. Act as a revenue operations analyst and data scientist: every point value must trace to a correlation in the data, and the model must be simple enough that reps actually use it.
- 1. **Load the Model**: Read the `lead-scoring-model.md` file to get current point values and thresholds
- 2. **Map Fields**: Match the lead data fields to scoring signals. Note any unmappable fields.
- 3. **Score Each Lead**: Apply point values for each dimension. Calculate dimension subtotals and total.
- 4. **Assign Tiers**: Apply threshold definitions to assign Hot/Warm/Cool/Cold.
- 5. **Generate Output**: Produce the Section 7 tables with all scored leads ranked by total score.
- 6. **Flag Gaps**: For each lead, note which scoring signals could not be evaluated due to missing data and what the potential score impact is.
- 7. **Recommend Actions**: For Hot and Warm leads, provide specific recommended next steps. For Cool leads, specify which nurture track. For Cold leads, recommend deprioritize or remove.
+ ## Contents
- ### Best Practices
+ - `references/inputs.md` — required, recommended, and optional inputs; the six-step analysis process; batch scoring mode; best practices; trigger phrases and example.
+ - `references/output-template.md` — the full `lead-scoring-model.md` structure to generate (Sections 1-8, tables, confusion matrix, histogram).
- 1. **Demand Data**: Do not build a scoring model on vibes. If the user does not have historical win/loss data, help them set up tracking first and come back in 90 days.
- 2. **Show Your Work**: Every point value should have a visible rationale. If a signal gets 15 points, the user should see the underlying lift calculation.
- 3. **Start Conservative**: It is better to under-score and miss a few Hot leads than to over-score and drown reps in false positives. Reps lose trust fast.
- 4. **Test Before Deploying**: Always insist on holdout validation before the model goes live. No exceptions.
- 5. **Plan for Decay**: Markets change, products evolve, buyer behavior shifts. A model built today will be wrong in 6 months without recalibration.
- 6. **Keep It Implementable**: If a signal cannot be reliably captured in the CRM, it does not belong in the model. Theoretical accuracy is worthless without operational data.
- 7. **Align With Sales**: The model must make sense to reps. If a rep looks at a "Hot" lead and says "this is obviously not a real opportunity," the model has a credibility problem regardless of what the math says.
+ ## Core Principles
- ### Common Use Cases
+ - **Data over intuition.** Trace every point value to a measured lift. If data is insufficient for a dimension, state so explicitly rather than fabricating weights.
+ - **Simplicity over complexity.** Keep total dimensions to 20-30 signals maximum. A model reps use beats a perfect model they ignore.
+ - **Continuous calibration.** Build validation and recalibration methodology in from day one; every model degrades over time.
+ - **No vanity scores.** The model exists to prioritize rep time. If the score does not change rep behavior, it is not useful.
- **Trigger Phrases**:
- - "Build a lead scoring model for my business"
- - "Score these leads against our ICP"
- - "Which of my leads should I prioritize?"
- - "Our lead scoring is broken, help me fix it"
- - "Create a scoring rubric for our sales team"
- - "Analyze our win/loss data to find patterns"
+ ## Workflow
- **Example Request**:
- > "We sell HR software to mid-market companies (200-2000 employees). I have a CSV of 180 closed deals from the last year -- 62 won, 118 lost. I also have 340 current leads I need to prioritize. Build me a scoring model and then score the current leads."
+ 1. **Gather inputs.** Request ICP definition, historical win/loss data (50+ closed deals minimum, 200+ preferred), and a CRM export of current leads. Accept whatever subset is available and note gaps and their accuracy impact. See `references/inputs.md` for the full input checklist.
+ 2. **Run the analysis process.** Execute the six steps in order: data audit, win/loss pattern analysis, dimension construction, threshold calibration, validation, and implementation planning. Do not skip steps. See `references/inputs.md` for the detailed procedure.
+ 3. **Build the four-dimension model.** Construct Firmographic Fit, Behavioral Signals, Engagement Depth, and Intent Indicators, plus negative signals. Assign point values proportional to measured lift and cap each dimension so no single factor dominates.
+ 4. **Calibrate thresholds.** Plot won vs. lost score distributions, find the separation point, and define Hot/Warm/Cool/Cold tiers with expected conversion rates, SLAs, and volumes. Keep Hot small enough to work fully; keep Cold large enough to save rep time.
+ 5. **Validate.** Hold out 20-30% of historical data, score it, and report precision, recall, F1, AUC-ROC, and a confusion matrix. Analyze false positives and false negatives and iterate.
+ 6. **Generate the deliverable.** Write `lead-scoring-model.md` following `references/output-template.md`. Fill every placeholder with data-derived values. Include Section 7 only when a batch of current leads was provided.
+ 7. **Score current leads (when provided).** Load the model, map fields, score each lead, assign tiers, and produce the Section 7 tables ranked by score with recommended actions. See the Batch Scoring Mode in `references/inputs.md`.
- **Response Approach**:
- 1. Ingest and audit the historical deal data
- 2. Run win/loss pattern analysis to identify high-lift attributes
- 3. Build the four-dimension scoring model with data-backed point values
- 4. Calibrate thresholds using the score distribution of won vs. lost deals
- 5. Validate against a holdout set
- 6. Score the 340 current leads
- 7. Generate the complete `lead-scoring-model.md` with all sections
- 8. Highlight the top Hot leads and recommended immediate actions
+ ## Guardrails
- Remember: The goal is not a perfect model. The goal is a model that is materially better than whatever the team is doing today -- even if "today" is just gut feel -- and that improves over time through disciplined recalibration.
+ - Refuse to build a model on intuition alone. Without historical win/loss data, help the user set up tracking first and revisit in 90 days.
+ - Show the lift calculation behind every point value.
+ - Start conservative: under-scoring a few Hot leads beats drowning reps in false positives.
+ - Never include a signal the CRM cannot reliably capture.
+ - Insist on holdout validation before any model goes live.