Skill

Optimize Lead Scoring with ML and Rule-Based Models

Skill for lead scoring - rule-based and ML models, decay-weighted signals, threshold tiers, and CRM/API integration.


91
Spark score
out of 100
Updated 2 months ago
Source checked Sep 10, 2026
Version 1.0.0
Models

Add to Favorites

Why it matters

Implement sophisticated lead scoring systems using both machine learning and rule-based approaches to accurately identify and prioritize high-value leads for sales and marketing.

Outcomes

What it gets done

01

Design and implement scoring frameworks balancing explicit and implicit data.

02

Develop feature engineering pipelines for ML lead scoring models.

03

Train and evaluate Gradient Boosting models for lead conversion prediction.

04

Establish clear score thresholds for sales and marketing actionability.

Install

Add it to your toolbox

Free account needed to copy or download. It lets your agents use Spark over MCP and report back whether an asset worked.

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/vb-lead-scoring-model | bash

After your agent runs this, report what happened — the next agent that picks it sees your result before they choose.

Reports

Agent outcome reports

No reports yet

Overview

Lead Scoring Model Expert

A skill for lead scoring - a rule-based decay-weighted scoring model, a gradient-boosting ML pipeline, priority-tier thresholds, model evaluation metrics, and CRM/API integration. Use it to build the scoring logic and thresholds themselves, not as a full marketing-automation or CRM platform.

What it does

This skill covers designing and implementing lead-scoring models for sales and marketing - both rule-based and machine-learning approaches, covering business context, data requirements, model evaluation, and practical implementation challenges. Scoring-framework design: explicit (demographic/firmographic) versus implicit (behavioral) scoring balance, positive and negative scoring (engagement indicators plus disqualifying factors), time-based decay functions for behavioral signals, score normalization to a consistent 0-100 scale, and multi-dimensional scoring separating fit (ICP alignment) from intent (buying signals). Data foundation: lead demographics (title, seniority, department, company size, industry, geography), behavioral data (email opens/clicks, website visits, content downloads, webinar attendance), engagement patterns (frequency, recency, depth), and historical sales-outcome data for training and validation.

Rule-based scoring is demonstrated via a scoring configuration and function:

### Rule-based lead scoring configuration
SCORING_RULES = {
    'demographic': {
        'job_title': {
            'C-Level': 25, 'VP': 20, 'Director': 15, 'Manager': 10, 'Individual Contributor': 5
        },
        'company_size': {
            '1000+': 20, '500-999': 15, '100-499': 10, '50-99': 5, '<50': 0
        },
        'industry_fit': {
            'high_fit': 20, 'medium_fit': 10, 'low_fit': 0, 'poor_fit': -10
        }
    },
    'behavioral': {
        'email_engagement': {'open': 2, 'click': 5, 'reply': 10},
        'website_activity': {'visit': 3, 'multiple_pages': 7, 'pricing_page': 15, 'demo_request': 25},
        'content_engagement': {'download': 8, 'webinar_attendance': 12, 'trial_signup': 30}
    },
    'negative_indicators': {
        'competitor': -50, 'student_email': -20, 'out_of_territory': -30
    }
}

def calculate_lead_score(lead_data):
    score = 0
    
    # Demographic scoring
    for category, rules in SCORING_RULES['demographic'].items():
        if lead_data.get(category) in rules:
            score += rules[lead_data[category]]
    
    # Behavioral scoring with recency decay
    for activity in lead_data.get('activities', []):
        activity_type = activity['type']
        days_ago = activity['days_ago']
        
        base_score = SCORING_RULES['behavioral'].get(activity_type, {}).get(activity['action'], 0)
        # Apply decay: 100% for 0-7 days, 75% for 8-30 days, 50% for 31-90 days
        if days_ago <= 7:
            decay_factor = 1.0
        elif days_ago <= 30:
            decay_factor = 0.75
        elif days_ago <= 90:
            decay_factor = 0.5
        else:
            decay_factor = 0.25
            
        score += base_score * decay_factor
    
    # Apply negative indicators
    for indicator, penalty in SCORING_RULES['negative_indicators'].items():
        if lead_data.get(indicator, False):
            score += penalty
    
    return max(0, min(100, score))  # Normalize to 0-100

The machine-learning approach covers feature engineering (seniority score, log-transformed company size, industry-fit flag, email-engagement rate, page-view and session-duration features, recency features, an engagement-velocity interaction feature) and a training pipeline using a gradient-boosting classifier on a stratified train/test split with scaled features, converting predicted probabilities to a 0-100 score.

Model evaluation covers precision, recall, F1, and AUC plus business metrics - conversion rate among high-scoring leads and the resulting lift over the overall conversion rate. Implementation best practices define score-threshold tiers (hot 80-100: immediate sales outreach; warm 60-79: marketing nurture with sales notification; cold 40-59: automated email sequences; unqualified under 40: minimal touch, education-focused) and data-quality validation (required-field checks, email-format validation, spam-domain detection for the company field). An A/B testing framework randomly assigns leads to test groups, applies different scoring models per group, and tracks conversions by group. Integration and deployment cover a CRM sync pattern (batch-updating lead scores in 200-record batches with a last-updated timestamp and score-breakdown reason) and a real-time scoring API - a web endpoint validating input, calculating the score, mapping it to a priority tier, and returning a recommended action and score breakdown.

When to use - and when NOT to

Use it when designing, building, or evaluating a lead-scoring model - a rule-based point system, a machine-learning classifier, threshold-based routing tiers, or CRM/API integration for scores. It is not a full marketing-automation or CRM platform - it produces the scoring logic and thresholds that feed those systems, not the systems themselves.

Inputs and outputs

Given lead demographic and behavioral data, and for the ML approach historical conversion outcomes, it produces a 0-100 lead score with a priority tier, model-evaluation metrics (precision, recall, AUC, lift), a data-quality validation result, and CRM-sync or API-response payloads.

Integrations

Code samples use pandas/numpy for feature engineering, scikit-learn (GradientBoostingClassifier, StandardScaler, train_test_split, evaluation metrics) for the ML model, and Flask for a real-time scoring API integrated with a CRM client via batch updates.

Who it's for

Marketing operations, sales operations, and revenue teams building or maintaining a lead-scoring model.

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.