Picture two publishers sending roughly the same call volume. Publisher A: 420 calls, 78% connect rate. Publisher B: 390 calls, 71% connect rate. By connect rate alone, A wins, and B looks like the one to cut.
Then pull conversion data.
Publisher A converted at 4.2%. Publisher B converted at 9.1%. Same vertical. Same geographic targeting. Same time window. B's callers were worth more than twice as much as A's — but the connect rate told the opposite story.
That's why single-metric analysis breaks down. A "good" connect rate doesn't mean good leads. A "bad" average duration might hide a subset of callers who convert at 15%. Individual metrics lie by omission. What you need is a composite pay-per-call lead quality score — one number that accounts for multiple quality signals and tells you which leads are actually worth paying for.
Here's the process. Four inputs, weighted by what predicts profit, rolled into a single 0-100 score. It's not perfect, but it's better than chasing whichever metric spiked this week.
Prerequisites
- At least 60 days of call data with downstream conversion tracking
- Conversion data tied back to source/publisher (you need to know which calls became customers)
- Access to call duration and disposition data
- A spreadsheet or analytics tool that can handle weighted calculations
If you don't have conversion tracking connected to your call data yet, start there. Without conversion, you're scoring on proxies alone.
Step 1: Choose Your Four Input Metrics
Four inputs cover the signals that matter most for lead value.
Connect Rate. The percentage of calls that reach a live agent. A call that hits voicemail or drops mid-IVR doesn't count. Connect rate tells you whether the lead had a chance to convert.
Qualified Duration. The percentage of connected calls that pass your billing threshold (usually 90-180 seconds). Duration filters for engagement — a 45-second hang-up isn't a quality lead.
Conversion Rate. The percentage of billable calls that became customers. This requires backend work to connect CRM data back to call records. Worth it.
Return Rate. The percentage of callers who called back within 7 days. A 2% return rate is normal. A 15% return rate signals confusion, unmet expectations, or incentivized callers gaming your system. High return rate drags the score down.
Start with these four. Complexity scales poorly: 12-metric scoring systems tend to go stale because they're too fragile to maintain. If high return rates trace back to junk traffic, see our guide on filtering junk calls.
Step 2: Normalize Each Metric to 0-100
Your raw metrics are on different scales. Connect rate might run 65-85%. Conversion rate might run 3-15%. You can't weight them fairly until they're normalized.
Normalization formula:
Normalized Score = ((Raw Value - Floor) / (Ceiling - Floor)) × 100
Set floors ("unacceptable") and ceilings ("excellent") for each metric:
| Metric | Floor | Ceiling |
|---|---|---|
| Connect Rate | 60% | 95% |
| Qualified Duration | 50% | 85% |
| Conversion Rate | 2% | 20% |
| Return Rate | 15% | 2% |
Example: 74% connect rate → ((74 - 60) / (95 - 60)) × 100 = 40.
For return rate, invert the calculation since lower is better. An 8% return rate normalizes to ((15 - 8) / (15 - 2)) × 100 = 54.
Because the inverted return score is already higher-is-better, add it in the composite. Don't subtract it, or you'll reward publishers for high return rates.
Step 3: Assign Weights Based on Predictive Value
Default weights:
| Metric | Weight |
|---|---|
| Conversion Rate | 40% |
| Qualified Duration | 25% |
| Connect Rate | 20% |
| Return Rate | 15% (inverted score) |
Composite formula:
Quality Score = (Connect × 0.20) + (Duration × 0.25) + (Conversion × 0.40) + (Return × 0.15)
Example: Connect 40, Duration 65, Conversion 72, Return 54.
Score = 8 + 16.25 + 28.8 + 8.1 = 61.15. This publisher scores 61: healthy enough to maintain, worth monitoring for drift.
Step 4: Adjust Weights by Vertical
The default weights assume mid-ticket campaigns. Your vertical might need different emphasis.
High-ticket legal (PI, mass tort): A $3,500 retainer means small conversion differences drive huge swings. Weight conversion at 50-55%, drop connect rate to 10-15%.
Home services (HVAC, plumbing): Conversion rates cluster tightly (8-14%), so duration and connect rate matter more. Weight duration at 30%, connect at 25%, conversion at 30%.
Medicare AEP: Incentivized caller fraud spikes during AEP. Weight return rate at 20-25%.
Insurance: Standard weights work. Ticket high enough for conversion to matter, volume high enough for connect rate to matter.
Run a regression on your historical data. The defaults are starting points, not commandments. (And yes, I realize "run a regression" sounds like something a consultant says to justify billing hours. You can eyeball it if you have 6+ months of data and a working brain.)
Step 5: Build Score Tracking by Source
Track scores over time by source — publisher, campaign, keyword group, whatever your acquisition taxonomy is.
Score interpretation bands:
| Score | Action |
|---|---|
| 80-100 | Scale spend, negotiate better rates |
| 60-79 | Maintain, monitor for drift |
| 40-59 | Investigate, cap volume |
| 20-39 | Cut or final probation |
| 0-19 | Cut immediately |
Trend matters more than absolute score. A source at 55 trending to 62 is healthier than 65 trending to 58.
If you're running paid click traffic into calls, ClickzProtect flags fraudulent clicks before they become fraudulent calls.
Step 6: Handle Conversion Lag
Here's the annoying part — and I mean genuinely frustrating, the kind of thing that makes you question spreadsheet-based life choices: conversion data takes time. Home services might close within 7 days. Legal intake can take 60-90 days for signed retainers.
Time-weighted scoring workaround:
Week 1-2: Connect 35%, Duration 40%, Conversion 15%, Return 10%
Week 3-4: Connect 25%, Duration 30%, Conversion 30%, Return 15%
Week 5+: Connect 20%, Duration 25%, Conversion 40%, Return 15%
Weight connect rate and duration higher when conversion data is immature. Shift toward conversion-heavy weighting as data matures. If your sales process has intermediate stages — appointment booked, estimate delivered — score on that proxy instead while conversion data catches up.
Step 7: Automate Alerts and Actions
Once scoring is in place, automate the responses so you're not reviewing every source manually.
Alert thresholds: Score drops below 40 — notify immediately. Score drops 15+ points week-over-week — notify. Volume spikes 50%+ while score drops — possible fraud, investigate. Return rate above 12% — fraud signal.
Automated actions: Score below 30 for 2 consecutive weeks — pause source. Score below 20 for 1 week — pause immediately. Return rate above 15% — cap concurrency to 1 while investigating.
VeloCalls includes real-time analytics and quality scorecards for tracking source performance. For alerts, webhook integrations can push threshold breaches to wherever your team works. Worth the setup time.
Common Scoring Mistakes
Scoring with too little data. Wait for at least 100 calls before scoring seriously. A publisher with 15 calls and 2 conversions looks like 13% conversion rate — that's noise, not signal.
Not accounting for vertical mix. A publisher sending 70% HVAC and 30% roofing shouldn't be compared against a pure HVAC source. Segment scores by vertical or normalize against vertical-specific baselines.
Treating all conversions equally. A $400 tune-up and a $12,000 system replacement are both "conversions." Weight by revenue per conversion, or score on revenue per call.
Ignoring seasonality. Connect rates drop on holidays. Conversion spikes during HVAC season. Compare sources against same-period benchmarks.
Overcomplicating the formula. Here's my unpopular opinion: most operators would be better served by a simple weighted average than by the fancy ML models vendors try to sell them. The math here isn't the hard part. Getting clean conversion data is the hard part.
Next Steps
Backtest before deploying. Run the formula against historical data. Adjust weights until historical ranking matches profit ranking.
Layer in AI conversation analysis. VeloCalls' transcription (4¢/min) and AI summary (10¢/call) add-ons extract conversation quality signals. These can become additional scoring inputs once baseline composite scoring works.
Share scoring criteria with publishers. Tell your best publishers what makes a high-scoring lead. Some will optimize toward it. The ones who can't? Now you know which ones to cut.
Get the four-metric score working before you add sentiment scoring, transcript keyword matching or caller-intent models. Simpler wins.
For tracking all of this in a unified dashboard alongside web session data, JustAnalytics can tie call outcomes to upstream visitor behavior.
Frequently Asked Questions
What metrics should be included in a pay-per-call lead quality score?
Four core metrics: connect rate (did the call reach a human?), qualified duration (did it last long enough to indicate real engagement?), conversion rate (did the lead become a customer?), and return rate (did the caller call back multiple times — a red flag for confusion or fraud). Weight conversion heaviest at 40-50%, then duration at 25-30%, connect rate at 15-20%, and return rate (inverted, so lower return rates score higher) at 10-15%.
How do I weight metrics differently for different verticals?
High-ticket verticals like legal and roofing should weight conversion rate heavily — a PI retainer is worth $3,000+, so a 2% conversion difference matters more than connect rate. High-volume, lower-ticket verticals like HVAC maintenance can weight duration and connect rate higher because conversion variation is tighter. Medicare during AEP should weight return rate heavily as a fraud signal — incentivized callers often call back multiple times from the same number.
What's a good quality score threshold for cutting a traffic source?
Below 40 on a 0-100 scale after 100+ calls warrants a hard look. Below 30 means cut the source unless you have a specific reason to test further. But thresholds vary by vertical — legal intake might tolerate lower scores because even 3% conversion is profitable at $3,000/retainer. HVAC with $800 average ticket needs higher scores to stay profitable. Run the math on your actual margin at each score band before setting firm cutoffs.
How often should I recalculate lead quality scores?
Update component metrics daily. Recalculate composite scores weekly for active sources. Monthly for dormant sources you might reactivate. The tricky part is conversion lag — some verticals take 30-60 days to convert, so your conversion rate component will always trail reality. Weight recent duration and connect rate more heavily in the short term, then let conversion rate dominate as data matures.
Try VeloCalls for Your Vertical
Call tracking + pay-per-call platform built for HVAC, plumbing, roofing, PI lawyers, Medicare brokers, and insurance. Smart routing, real-time bidding, visual IVR builder, AI conversation intelligence. Per-minute pricing — Managed Carriers Starter is 4¢/min, BYOC Starter is 2¢/min, and both step down as lifetime minutes accumulate.