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:

  • 40 inbound calls per day from Google Ads, Yelp, and referrals
  • Only 12 calls answered (30% answer rate — the rest went to voicemail)
  • 3 appointments booked from those 12 answered calls (25% conversion)
  • 28 calls completely missed every single day
  • 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

  • Connected the team to Desert Shield's ServiceTitan CRM
  • Trained agents on Phoenix-specific roofing terminology (monsoon damage, tile vs. shingle, HOA requirements)
  • Set up call routing: all inbound calls hit the BPO team first, overflow to Marcus's receptionist
  • Installed call recording and quality scoring
  • Week 2: Ramp-Up

  • Answer rate jumped from 30% to 78%
  • Agents began qualifying leads using a 5-question script we built together
  • 7 appointments booked per day (up from 3)
  • First quality review: 2 agents scoring 85%+, one needed additional coaching on pricing questions
  • Weeks 3-4: Optimization

  • Refined the qualification script based on close-rate data
  • Added a "storm damage urgency" qualifier that prioritized insurance claims
  • Implemented a same-day callback protocol for missed calls (within 5 minutes)
  • Daily appointments climbed to 10
  • 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:

  • Calling back every lead that didn't book on the first call
  • Following up on estimates that went cold (no response after 48 hours)
  • Reactivating past customers for maintenance inspections
  • 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:

  • BPO team (3 agents, full-time): $4,800/month
  • Previous receptionist (reassigned to customer service): $4,200/month
  • Total appointment-setting cost: $4,800/month for 286 appointments
  • Cost per appointment: $16.78
  • 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:

  • Speed-to-lead dropped to 8 seconds (industry average: 47 seconds)
  • Answer rate stabilized at 94%
  • Bilingual capability unlocked Phoenix's massive Spanish-speaking market — roughly 30% of new leads came in Spanish
  • Added a 4th agent specifically for Spanish-language calls
  • Implemented an after-hours answering service (Phoenix homeowners call about leaks at 11 PM during monsoon season)
  • 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):

  • 198 appointments booked (66/month)
  • 69 jobs closed (35% close rate)
  • Revenue: $586,500
  • Marketing spend: $18,600
  • Receptionist cost: $12,600
  • Net from lead generation: $555,300
  • First Quarter with BPO (Q2 2026):

  • 836 appointments booked (avg 278/month, ramping)
  • 293 jobs closed (35% close rate)
  • Revenue: $2,490,500
  • Marketing spend: $18,600 (same budget — just capturing more)
  • BPO team cost: $16,800
  • Net from lead generation: $2,455,100
  • 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

    Related Reading

  • [BDR vs SDR: What's the Difference and Which Do You Need?](/blog/bdr-vs-sdr-difference-which-do-you-need)
  • [How to Build a Remote Sales Team in 2025](/blog/how-to-build-remote-sales-team-2025)
  • [Plumbing Company Growth Strategies: How BPO Teams Help You Scale Past $2M Revenue](/blog/plumbing-company-growth-bpo-strategies)