SimpliScale Case Study · 2026-06-07

How a 9-Location Roofer Centralized Intake Across 5 States Using Custom AI

The Wegner Roofing & Solar build: unified intake across 9 branches in 5 time zones, lead-drop rate cut 80%, single dashboard for the owner — and why off-the-shelf SaaS literally cannot replicate this.

9 min read · Roofing · Multi-Location
📘 Definitive Guide
Real Results: 60+ AI Deployments Anonymized →
The detailed case-by-case breakdown of every major SimpliScale build. Real numbers, real outcomes.

Most multi-location service businesses we look at have the same problem, and they describe it the same way: "I have nine locations and it feels like nine different companies." Different intake processes, different scripts, different scheduling systems, different price sheets — and a single owner trying to glue it together by switching between nine dashboards a day.

This is the case study for one of our most operationally complex roofing builds to date — a 9-branch operator running across 5 states with materially different markets, pricing, regulations, and time zones. The build unified intake into one AI front-door across all locations, dropped per-location lead-drop rate by roughly 80%, and gave the owner a single live dashboard for the first time in his operating career. Identifying details are anonymized; the operational story is real.

The Operator

The company runs nine residential and storm-restoration branches anchored across five U.S. states. Total revenue floats in the $40M-$55M range depending on storm cycle. Each branch has its own general manager, its own field crews, its own pricing logic (steep-roof multipliers and material costs vary by state), and its own answering service or CSR team. The owner had been operating that way for almost twelve years.

Branch 1
Front Range, CO
Branch 2
DFW Metro, TX
Branch 3
Austin, TX
Branch 4
Kansas City, MO
Branch 5
Oklahoma City, OK
Branch 6
Tulsa, OK
Branch 7
Denver Metro, CO
Branch 8
Houston, TX
Branch 9
Wichita, KS

The Problem Before AI

Three operational pain points, each one independently expensive.

One: inconsistent customer experience. The Denver branch had a tight, salesy CSR script. The Wichita branch had a quiet, low-pressure script. A homeowner in suburban Kansas who called the Wichita number then drove ten minutes south into Oklahoma and called the Tulsa office got a totally different brand experience. Online reviews were all over the map — 4.8 stars at one branch, 3.6 at another — even though the field work was equivalent quality across all nine.

Two: leads dropping between branches. A homeowner in a Kansas City suburb close to the state line would call the Kansas City branch, find out it wasn't quite their service area, get told to "call the Wichita branch" — and then never call again, because they'd already given up on this company. The owner's estimate was that 15-22% of inbound leads were being lost to mis-routing or branch-boundary friction.

Three: response-time disparity. Branches with strong CSR teams averaged 18-second pickup. Branches with shaky staffing or remote answering services averaged 90-180 seconds. The owner couldn't enforce a service standard he couldn't measure across nine independent systems.

Why Off-The-Shelf SaaS Could Not Solve This

We spent two weeks before the build evaluating the existing SaaS landscape with the owner. He had already trialed three different "multi-location AI answering services." Each of them failed for a different concrete reason:

Off-the-Shelf Tooling

  • One prompt for the whole company
  • Routing capped at 1-3 locations
  • No per-state pricing logic
  • No real calendar integration
  • No per-branch escalation
  • Single time zone assumption

Custom AI Build

  • 9 location-specific prompt variants
  • Caller-ID + zip code real-time routing
  • Per-state pricing & regulatory rules
  • Direct dispatch calendar booking
  • Branch-specific escalation paths
  • Time-zone aware booking

The fundamental limitation of off-the-shelf is the one-prompt-fits-all architecture. You cannot tell a SaaS AI agent "if this caller is in Tulsa zip code 74104, use the Tulsa pricing sheet, the Tulsa branch manager's escalation phone, the Tulsa CRM, and book to the Tulsa field calendar — but if the same caller drives 30 miles north into Kansas, switch to the Wichita config in real time." That logic must be custom.

The Build

The architecture has three layers.

Layer one: identification. Every inbound call hits the AI within two rings. The AI cross-references caller ID against a database of 4.2M U.S. residential phone numbers tagged to zip code. If caller ID is blocked or unmatched, the AI's first question is "What's the zip code of the home you'd like serviced?" That single answer determines everything that follows.

Layer two: branch-specific intent. Zip code maps to branch. Branch maps to a prompt variant tuned for that local market — local job-cost averages, insurance carrier prevalence in that region, hail-vs-wind damage patterns, even how local homeowners typically describe their roof problems. The AI sounds like a Denver CSR when it's talking to a Denver homeowner and a Tulsa CSR when it's talking to a Tulsa homeowner.

Layer three: dispatch. The AI books the inspection directly onto the live field-dispatch calendar for that branch, with the correct time zone, the correct crew availability, and the correct service-area boundary check. It also routes any urgent escalation (commercial property, multi-million-dollar claim, VIP-flagged customer) to that branch's GM mobile phone, not a generic queue.

The Results at 90 Days

80%
Lead drop reduction
<8s
Avg pickup, all 9 branches
100%
After-hours coverage
1
Unified owner dashboard

Lead-drop rate cut from ~18% to ~3.5%. The single biggest dollar impact. Roughly 600 inbound leads per month had been disappearing into the gap between branches. Most are now caught — homeowner gets routed, qualified, and booked in one call.

Pickup time normalized at sub-8 seconds across all 9 branches. No more "Branch 6 is great, Branch 9 is broken." Every branch sounds the same to a homeowner because the AI is the front door.

After-hours coverage is now 100%. Before: four of the nine branches had no after-hours coverage at all. After: every branch has 24/7 coverage at zero per-branch cost (the AI runs centrally).

Owner dashboard. Single web UI shows every inbound call across every branch in real time, with disposition (booked / no-fit / escalated / dropped). The owner does his daily 15-minute review in one dashboard instead of nine.

What This Means For Multi-Location Operators

If you operate any service business at 3+ locations, you've felt this pain. You either centralized intake into a single CSR pool (and made the customer experience worse because reps don't know local pricing) or you decentralized into per-branch teams (and lost consistency, coverage, and visibility). Both options have major dollar costs.

Custom AI gives you the third option that didn't exist five years ago: a centralized intake layer that behaves like a local CSR. Same accent, same script, same pricing, same dispatch — at every branch — at sub-8-second pickup, 24/7, with one dashboard.

This is the build pattern we now ship for every multi-location operator at $5M+ revenue. The economics break around 3+ branches and become overwhelming at 5+. At 9 branches, the choice is essentially custom AI or accept that 15-25% of inbound is going to leak forever.

What The Implementation Actually Looked Like

Total elapsed time from kickoff to all 9 branches live: 11 weeks. We staged it in three waves to avoid the operational risk of switching all nine simultaneously.

Weeks 1-4 (Wave 1): Two highest-volume branches in Texas. Why these first? Texas is the biggest revenue contributor and we wanted to prove the architecture against the most demanding loads before fanning out. AI ran in parallel with existing CSR teams for the first two weeks before taking the main number.

Weeks 5-7 (Wave 2): Three Colorado and Oklahoma branches. By this point the underlying prompt architecture had been hardened against three real markets. New branch onboarding shrank from 8 days (Texas branch 1) to 3 days (Oklahoma branch).

Weeks 8-11 (Wave 3): Final four branches across Kansas, Missouri, and the second Houston region. Onboarding was almost mechanical by this point — local zip-code maps, local pricing, local dispatch board integration, go-live.

The Operating Lesson

Most multi-location operators we talk to are mentally stuck in a binary: hire more humans, or accept the gaps. The third path — centralized AI intake with per-branch behavior — sounds futuristic until you see one running. Then it sounds like the obvious answer to a problem that's been bleeding money for years.

The annual financial math for this build is worth seeing. Pre-AI lead-drop cost (using their own internal estimate of 18% on ~3,400 inbound monthly leads × ~$2,800 average gross per closed deal × 32% close rate): roughly $550K/year of leakage. Post-AI lead-drop at 3.5%: roughly $107K/year of leakage. Net annual recapture: ~$440K.

Custom AI build cost: $84K/year all-in (more expensive than a single-branch build because of the per-branch customization complexity). Net annual lift on lead capture alone: ~$355K — and that's before counting after-hours coverage gains and the consolidated-dashboard time savings for the owner.

If you want to see the architecture for your specific business, or you want to read the case studies we've stacked from other multi-location operators, the case-studies guide is the place to start. Every major build, every result, every cost, every lesson.

Have multiple branches losing leads in the gaps?

Book a free AI audit. We'll map your current intake against a centralized architecture and tell you exactly where the leakage is.

Book Your Free AI Audit Schedule a Call ↗