HVAC and roofing lead routing has one core problem: contractors have non-overlapping service areas in theory, but messy overlapping territories in practice. A lead from zip 30301 might qualify for three contractors who all claim to serve greater Atlanta. Without a structured routing system, you either call all three (homeowner gets three calls, contractor relationships suffer) or you manually pick one (doesn't scale past 20 leads a day).
Service area routing solves this by evaluating each contractor's territory definition against the lead's location and resolving conflicts through priority ordering, caps, and exclusive mode — all automatically on every lead.
The two approaches to service area definition
Contractors define their service area in one of two ways: a zip code list or a radius from their base location.
Zip list routing is more common and easier to manage. The contractor provides the zips they cover, you load them into the router, and every lead is matched against those zips exactly. Auditing is straightforward — you can see exactly which zips each contractor has claimed. The limitation is that zip boundaries don't always match how contractors actually operate: a contractor might serve homes within 20 miles of their shop, but some of those zips extend further than 20 miles in one direction.
Radius routing uses the contractor's business address as the center point and matches leads that fall within X miles. It's more accurate geographically but requires the router to compute distances using zip centroids or geocoordinates. For rural HVAC contractors whose service areas don't align with sparse zip codes, radius routing reduces false positives and false negatives.
In practice, most home services agencies use zip lists for simplicity, with contractors providing or updating their list periodically. LeadProsper ($499+/mo) and LeadMove ($149/mo) both support zip list routing natively. LeadMove adds radius routing as an additional option without a plan upgrade.
Service type filtering: keeping HVAC and roofing separate
A critical rule: service area routing must be combined with service type filtering. An HVAC contractor who serves zip 30301 should not receive a roofing lead from that zip, even if no roofing contractor is available. Delivering the wrong service type generates an immediate dispute and trains the contractor to distrust your lead quality.
Store service type as a field on the lead (HVAC, roofing, plumbing, electrical) and configure each contractor with the types they accept. The router evaluates service type before checking territory — a type mismatch disqualifies the contractor entirely. For multi-trade contractors (some large outfits handle both HVAC and roofing), the contractor profile lists all accepted types.
Priority ordering when territories overlap
Territory overlap is guaranteed in any metro area with multiple contractors. The resolution mechanism is priority ordering: when two contractors both cover a lead's zip, the router checks the higher-priority contractor first. If they're under their daily cap and within their operating hours, they get the lead. If they're unavailable for any reason, the router moves to the next contractor.
Priority can be static (Contractor A always has priority over Contractor B in Atlanta) or weighted (Contractor A gets 60% of Atlanta leads, Contractor B gets 40%). Static priority is simpler to configure; weighted distribution is more equitable when multiple contractors have similar qualifications and you want to maintain relationships with all of them.
Exclusive mode for HVAC and roofing
HVAC and roofing are high-urgency verticals where exclusive delivery is not optional. A homeowner whose AC fails in August or whose roof is leaking after a storm will commit to the first contractor who responds with a credible quote. Sending that lead to two contractors creates three problems: the homeowner is annoyed by the second call, the contractor who didn't get the job files a dispute, and you spend time arbitrating.
Exclusive mode is a pipeline-level setting that enforces one-lead-one-contractor delivery. Combined with real-time webhook delivery (sub-second from ingestion to contractor CRM), it maximizes the value of each lead and minimizes post-delivery conflicts.
Routing tool comparison for service area routing
| Tool | Zip list routing | Radius routing | Service type filter | Exclusive mode | Starting price |
|---|---|---|---|---|---|
| Sheets + Zapier | Manual lookup | No | Separate zap per type | No | $50-300/mo |
| LeadMove | Yes, native | Yes, native | Yes, per contractor | Yes, per pipeline | $149/mo |
| LeadProsper | Yes, Pro tier | Yes, Pro tier | Yes, Pro tier | Yes | $499+/mo |
| Custom build | Yes | Yes | Yes | Yes | $10,000-30,000 one-time |
Overflow and fallback rules
Every service area routing setup needs overflow rules for two scenarios: when no contractor covers the lead's zip, and when all covering contractors are at their daily cap. For uncovered zips, you can either reject the lead (return a 422 with "no contractor available in this area") or route to a regional catch-all contractor who handles out-of-territory leads at a discounted rate. For capped contractors, route to the next-ranked contractor or queue the lead for delivery when a cap resets.
Silent drops — where the lead arrives, no match is found, and the system discards it without logging — are the worst outcome. Every routing engine should log the reason for non-delivery so you can identify coverage gaps and contractor capacity constraints over time.
Service area routing for HVAC and roofing is operationally straightforward once the data model is right — clean zip lists, standardized service type enums, and explicit overlap resolution via priority or weights. The complexity is in the edge cases: overlapping territories, uncovered zips, emergency leads on weekends. Handling those with explicit rules, rather than manual intervention, is what separates a scalable routing system from a daily headache.
Frequently asked questions
what's the difference between zip list routing and radius routing for contractors?
how do I handle HVAC and roofing contractors who cover the same zip?
can I route HVAC and roofing leads on the same pipeline or do I need separate ones?
what tools support zip routing for HVAC and roofing leads natively?
how do I handle HVAC leads that arrive on weekends when most contractors don't work?
does exclusivity matter for HVAC and roofing leads?
how do I migrate from a spreadsheet-based zone system to a dedicated router?
Continue reading

Lead Routing Software: The Complete Guide for B2B Teams
Optimize your B2B pipeline with lead routing software. Automate distribution, enforce SLAs, and increase qualification rates with rule-based logic.
What's the best lead distribution software for mortgage agencies?
Mortgage lead distribution tools compared: ping/post aggregators vs rules-based routers. Pick the right model.
What's the best lead routing software for solar agencies?
Lead routing tools built for solar workflows: zip territories, installer caps, exclusivity. LeadMove vs LeadProsper compared.