Lead Quality for Contractors: The Complete Guide
If you buy leads from aggregators, a chunk of what you pay for was never workable: duplicates, dead phone numbers, homeowners you can’t service, and properties that will never pencil. This guide covers each problem and how contractors filter them out before they get billed.
Lead quality vs. lead filtering
When contractors say “my leads are bad,” they’re usually describing two different problems at once, and they only have control over one of them.
Lead quality is about the homeowner: how serious they are, how soon they’ll buy, whether they picked up the phone because they want a roof or because they thought they were winning a gift card. You can influence this by choosing better sources, but you can’t control it.
Lead filtering is about the data: whether the lead is a duplicate you already paid for, whether the phone number connects, whether the house is in your territory and worth quoting. This part is fully controllable, and it’s where most of the wasted money actually is.
Most contractors have no filter at all. A lead comes in from an aggregator, posts straight to the CRM, and a rep calls it. If it’s a duplicate or a dead number, the rep finds out the hard way, you’ve already been billed, and maybe you win a refund dispute weeks later. This guide is about fixing that.
The five ways purchased leads waste money
1. Duplicate leads
The same homeowner sold to you twice, by one source or several. Homeowners fill out multiple forms when they research a project, and no vendor can see what another vendor already sold you. Across Opta accounts, duplicates are the #1 reject reason, typically around half of everything blocked.
2. Invalid phone numbers
Disconnected lines, fake numbers, typos. Your reps burn hours dialing leads that were never reachable, and your contact rate stats make good sources look bad. Phone verification at intake blocks these before a rep ever picks up the phone. Opta customers see contact rates improve about 20% after filtering.
3. Out-of-area leads
Homeowners outside your zip codes or in states you don’t cover. Easy to filter, expensive to ignore. Keep your zip targeting current, especially after you expand or pull out of a market, so you’re only buying leads you can actually run.
4. Properties that won’t pencil
Condos, rentals, and homes below the value where your jobs are profitable. One large remodeler found that nearly every home under a specific value in their prior year’s data was a turn-down, yet they were still buying those leads. Property type and home value filters block them at intake. Adding a credit score proxy on top means reps focus on homeowners likely to get approved for financing. Opta customers see about 10% fewer finance declines.
5. TCPA litigators
A small number of professional plaintiffs file TCPA suits against contractors as a business model. One settlement can cost more than a year of marketing. Screening every lead against known litigator lists before it reaches your dialer is cheap insurance.
Notice what these have in common: none of them are about homeowner intent. Every one is a data problem, catchable by a machine, before a human touches the lead and before you get billed.
What filtering at intake looks like
The fix is structural. Instead of every source posting directly to your CRM, every source posts to one intake point. That intake point checks each lead against your rules in real time: is it a duplicate of anything you’ve bought, from any source? Does the phone verify? Is it in your territory? Does the property fit?
Leads that pass route instantly to your CRM, dialer, or marketing tools, seconds after the homeowner opts in, so your reps are first to call. Leads that fail are rejected before delivery. With sources that support real-time rejection, a rejected lead is never billed.
Filtering doesn’t replace good sources. It makes every source better. Even the best aggregators will collide with each other on the same homeowner, because homeowners shop around. Filtering keeps the leads that fit and stops you paying for the ones that don’t. (Looking for sources? Here’s our vetted list.)
Based on Opta customer data. Results vary by lead volume, sources, and filter settings. Estimate your savings
Why a high rejection rate is a good thing
Contractors new to filtering often flinch at their first report: “We rejected 25% of our leads? Something must be wrong.” Nothing is wrong. That’s the point.
Every rejected lead is a lead you didn’t pay for and your reps didn’t waste a dial on. The average Opta customer rejects about 23% of purchased leads. Rejection rate is a savings number, not a warning light.
This is also why the common advice to “cut sources with high rejection rates” is wrong. With real-time rejection, blocked leads cost you nothing, so a source with a high duplicate rate can still deliver excellent accepted leads. The number that should drive your source decisions is cost per appointment set on the leads that come through. Track that by source, cut the sources that lose on it, and give more budget to the ones that win.
One caution: don’t chase a high rejection rate for its own sake. Vendors route their best volume to buyers who accept and monetize leads, so reject only what’s genuinely unworkable. Keep your zip lists current, and set your duplicate window to your sales cycle rather than blocking forever. A well-tuned account rejects the right leads and stays a preferred buyer.
Built exclusively for home improvement contractors
Opta sits between your lead sources and your CRM. Every lead is validated in real time, duplicates and junk are rejected before billing, and clean leads route to your systems in seconds.
How to implement lead filtering
Whether you use Opta or build your own solution, this is the process.
Audit your last three months of leads
Pull your last 3 months of purchased leads. Count the duplicates, the invalid phone numbers, and the leads outside your service area. This baseline tells you where you’re bleeding money and which filters matter most for your sources.
Centralize your lead flow
Route all lead sources through a single intake point before anything touches your CRM. This is the only way to catch duplicates across sources. If leads post directly to your CRM from multiple places, cross-source duplicates are invisible.
Set up validation rules
Define what a workable lead looks like for your business: valid phone, valid email, inside your zip codes, right property type, minimum home value. Configure rules to reject anything that doesn’t meet the bar.
Match your duplicate window to your sales cycle
If you close deals within 60 days of first contact, a 90-day window catches real duplicates while letting genuine re-inquiries through. Common settings are 30, 60, 90, or 120 days. More on duplicate windows here.
Route qualified leads to your systems
Connect your CRM, dialer, and marketing tools. Leads that pass every filter get pushed automatically in real time, so your reps are first to call.
Judge sources on cost per set, not rejection rate
With real-time rejection you don’t pay for blocked leads, so a high rejection rate is savings, not a red flag. Track what each source costs you per appointment set from accepted leads, and shift budget toward the sources that win on that number.
Common questions about lead quality
Why are my contractor leads so bad?
Usually it’s not one problem, it’s five stacked on top of each other: duplicate leads you already paid for, invalid phone numbers your reps can’t reach, homeowners outside your service area, properties that will never be profitable projects, and the occasional TCPA litigator that puts you at legal risk. None of these could have converted no matter how good your sales team is. Without filtering at intake, all of them reach your CRM and get billed.
What is a good rejection rate for purchased leads?
Across Opta customer accounts, the average contractor rejects about 23% of purchased leads, though it varies by lead source and filter settings. A high rejection rate isn’t a problem. With sources that support real-time rejection, rejected leads are never billed, so every rejection is money saved. The number to watch instead is cost per appointment set on the leads that come through.
Do I pay for rejected leads?
With sources that support real-time rejection, no. The lead is rejected via API response before delivery, so it never gets billed. A handful of sources can’t tie billing to a real-time API response. For those, Opta keeps the lead out of your CRM and gives you the records to dispute the charge. We confirm which category each of your sources falls into before launch.
Should I cut lead sources with high rejection rates?
No. This is common advice and it’s wrong. With real-time rejection, you don’t pay for blocked leads, so a source with a high duplicate rate can still deliver excellent accepted leads. Judge sources on what you pay per appointment set from the leads that pass your filters, not on how many get rejected.
What is a good lead conversion rate for contractors?
Set rates (lead to appointment) typically range from 15-35% for home improvement contractors, depending on lead source quality and speed to contact. Contractors who filter at intake see meaningfully higher set rates because reps only work valid, unique, in-area leads. Opta customers see contact rates improve about 20% and set rates improve up to 50% after filtering.
Can I filter leads before they hit my CRM?
Yes. Lead filtering platforms like Opta sit between your lead sources and your CRM. Every lead is validated in real time, checked for duplicates, valid phone and email, service area, property fit, and compliance, and only qualified leads route to your systems. Rejected leads are blocked before delivery.
What’s the difference between lead quality and lead filtering?
Lead quality is about the homeowner: their intent, timeline, and fit. Lead filtering is about the data: catching duplicates, invalid contact info, and out-of-area leads before your team touches them. You can’t control whether a homeowner is serious. You can control whether your reps waste time on leads that were never workable.
Do I need a lot of lead volume for this to make sense?
It depends on your volume and cost per lead. If you buy 100+ leads per month at $50 or more each, a typical rejection rate of around 20% means thousands of dollars per month you’d otherwise pay for unworkable leads. Use our savings calculator to estimate your ROI, or request pricing for your situation.
See what you’re paying for right now
Book a 15-minute demo. We’ll look at your sources and show you what a filter would have blocked.
Book a demoNo setup fees. No long-term contracts. Live in one week.