How a Phoenix Roofing Company Went from 3 to 15 Daily Appointments with BPO
· GSD 500 BPO · 7 min read · Growth Strategies
How a Phoenix Roofing Company Went from 3 to 15 Daily Appointments with BPO
Three appointments a day. That was the ceiling for Desert Shield [Roofing](/blog/roofing-companies-bpo-storm-season-surge), a mid-size roofing contractor in Phoenix, Arizona. Not because there weren't leads — their Google Ads were generating 40+ inbound calls daily during monsoon season. The problem was brutally simple: one receptionist trying to answer phones, qualify leads, schedule estimates, and handle existing customer callbacks. She was drowning, and every missed call was a lost roof.
This is the story of how they went from 3 booked appointments per day to 15 — a 400% increase — in 90 days, using a nearshore [BPO appointment setting](/blog/get-more-customers-without-knocking-on-doors) team.
The Situation: $847 Walking Out the Door Every Day
When we first spoke with Marcus, the owner of Desert Shield Roofing, he knew he had a problem but didn't understand the scale. We ran the numbers together:
At an average ticket value of $8,500 for a roof replacement and a 35% close rate from in-home estimates, each missed qualified call represented approximately $847 in lost revenue. Over a month, that was $23,716 in revenue walking out the door.
Marcus was spending $6,200/month on Google Ads to generate those calls — then losing most of them because nobody picked up the phone.
Month 1: Deploying the Team (Days 1-30)
We started with a 3-person nearshore team based in [Medellin](/blog/building-remote-sales-team-colombia-guide), Colombia. Here's exactly what the first month looked like:
Week 1: Integration and Training
Week 2: Ramp-Up
Weeks 3-4: Optimization
Month 1 Results: | Metric | Before BPO | Month 1 | |--------|-----------|---------| | Answer Rate | 30% | 82% | | Daily Appointments | 3 | 10 | | Monthly Appointments | 66 | 220 | | Cost per Appointment | $94 (receptionist salary / appointments) | $38 |
Month 2: Outbound Added (Days 31-60)
With inbound locked down, we expanded the team's role. One agent was assigned to outbound follow-up:
This outbound effort added another 3 appointments per day from leads that would have otherwise died in the CRM. Marcus's sales team was suddenly busier than they'd ever been — and they needed to hire a second estimator.
Month 2 Cost Breakdown:
Compare that to Month 0: $4,200/month for 66 appointments = $63.64 per appointment.
Month 3: The 15-Appointment Breakthrough (Days 61-90)
By Month 3, the system was fully optimized:
Month 3 Final Numbers: | Metric | Before BPO | Month 3 | |--------|-----------|---------| | Answer Rate | 30% | 94% | | Daily Appointments | 3 | 15 | | Monthly Appointments | 66 | 330 | | Cost per Appointment | $63.64 | $18.18 | | Monthly Revenue (at 35% close, $8,500 avg) | $196,350 | $981,750 | | Google Ads ROI | 3.1x | 15.8x |
The Revenue Impact: Real Numbers
Let's break down the financial transformation over the first quarter:
Quarter Before BPO (Q1 2026):
First Quarter with BPO (Q2 2026):
That's a $1,899,800 increase in net revenue over one quarter, driven almost entirely by answering the phone and booking the appointment.
What Made This Work
This wasn't magic. It was operational discipline applied to a leaking funnel:
1. Speed matters more than script. Answering in 8 seconds vs. 47 seconds increased connection rates by 340%. Homeowners with a leaking roof don't leave voicemails — they call the next company on Google.
2. Bilingual isn't optional in Phoenix. 31% of Maricopa County speaks Spanish at home. Desert Shield was ignoring a third of their market.
3. Outbound follow-up recovers 30% of dead leads. Most contractors treat a missed call as a lost lead. A 5-minute callback within the same hour recovers nearly a third of them.
4. The receptionist wasn't the problem — the model was. Marcus's receptionist was excellent. She was just doing 4 jobs: answering, qualifying, scheduling, and customer service. BPO let her focus on customer relationships while specialists handled the funnel.
5. After-hours coverage is where competitors lose. 23% of Desert Shield's appointments now come from after-hours calls. Their competitors' phones go to voicemail at 5 PM.
The Cost of Not Acting
Marcus told us something that stuck: "I spent two years thinking about this. That's roughly $570,000 in missed appointments I'll never get back."
If you're a roofing contractor — in Phoenix or anywhere else — running ads but missing calls, the math is unforgiving. Every day you wait is another day of leads calling your competitor because you didn't pick up.
The BPO team cost Desert Shield $6,000/month. It generated $327,250/month in additional revenue. That's a 54:1 return.
Ready to stop leaving revenue on the table? Book a call to see what your numbers could look like: calendly.com/manuel-gsd500bpo