How much do missed calls cost a home services company?
At scale, missed calls are usually the biggest leak in a home services ad budget. Invoca's 2026 Home Services Lead Conversion Benchmarks found only 52% of inbound calls were answered by a person, so a company spending $60,000 a month on ads can pay full price for leads that never get a conversation. Raising answer rate and speed lowers cost per booked job without touching the ad account.
I've been running ads since 2013, and with multi-location roofing, HVAC, solar and plumbing companies the pattern repeats. The media buyer gets blamed for a cost per job problem that lives in the phones. Below are the numbers, where the leak comes from, and what a central AI voice agent with text-back and routing by location does to cost per booked job.
What do call answer-rate numbers look like in home services?
Home services companies miss a large share of inbound calls. Invoca reports 27% of calls to home services businesses are not answered, and its 2026 benchmark found just 52% reached a live person, with answer rates running from 32% to 74% depending on the trade. Of answered calls, 38% were leads, and 45% of those leads converted on the call.
Put the last two numbers side by side. When a real lead reaches a person, almost half book right there. Most of the loss happens before anyone says hello.
The clicks feeding those phones aren't cheap either. LocaliQ and WordStream's 2026 benchmarks put the home services median cost per click at $8.33, as reported by PPC Land. A homeowner who clicked, read your page and dialed has already cost you real money by the time the phone rings out.
Why do multi-location roofing and HVAC companies miss so many calls?
Four things break as you add locations: storm and season spikes, branches that answer their own way, form leads that sit until morning, and nights and weekends nobody owns. Each one gets worse as spend grows, because more spend means more calls landing at the same moments.
- Storm and season spikes. A hail storm or the first heat wave sends a wave of calls to one branch in a few hours. An office staffed for a normal Tuesday rings out, and those homeowners call the next company on the map.
- Inconsistent branches. One location answers in three rings with a script. Another forwards to a cell phone that's on a roof. Same brand, same ads, very different cost per job, and the blended report hides it.
- Form leads in an inbox. A quote request at 7:40 pm gets a call the next morning, if someone sees it.
- After hours and weekends. No heat on a Saturday night is a high-intent call, and it usually hits voicemail.
Hiring fixes part of this, but you end up staffing for peaks you can't predict and paying for idle chairs the rest of the month.
What happens to cost per booked job when more calls get answered?
Cost per booked job falls as answer rate rises, because ad spend stays flat while booked jobs go up. In the hypothetical below, moving from a 52% live answer rate to 90% with text-back cuts cost per booked job from $256 to $141 on the same $60,000 monthly budget.
This is a hypothetical worked example, not client data. Say six locations spend $60,000 a month combined and get 1,000 calls from new customers. The baseline uses Invoca's 52% answer rate and 45% on-call conversion. I held booking at 45% of answered calls in every column and assumed 1 in 5 missed callers books after an instant text-back.
| Hypothetical (6 locations) | Branch desks only | Branch desks + text-back | AI voice agent + text-back |
|---|---|---|---|
| Monthly ad spend | $60,000 | $60,000 | $60,000 |
| New-customer calls | 1,000 | 1,000 | 1,000 |
| Answered live | 520 (52%) | 520 (52%) | 900 (90%) |
| Booked on the call (45%) | 234 | 234 | 405 |
| Missed callers booked by text (1 in 5) | 0 | 96 | 20 |
| Total booked jobs | 234 | 330 | 425 |
| Cost per booked job | $256 | $182 | $141 |
Hypothetical. Answer rate and on-call conversion from Invoca's 2026 benchmarks; text-back recovery and the 90% answer rate are assumptions.
Swap in your own numbers and the shape holds. The missed call calculator will show your own monthly leak before you change anything.
Front desk, call center or AI voice agent: which handles volume best?
For multi-location home services, an AI voice agent on every line, with people taking handoffs, covers spikes and after-hours better than branch desks or a shared call center. Branch desks are best with existing customers and complex quotes. Call centers add bodies, but they bill by the minute or seat and still queue when a storm hits.
| Per-location front desk | Outsourced call center | AI voice agent + text-back | |
|---|---|---|---|
| Hours covered | Business hours | Depends on contract | 24/7 |
| Storm or season spike | Rings out or voicemail | Hold queues | Answers many calls at once |
| Consistency across branches | Varies by branch | Scripted, often generic | Same script, branch-specific details |
| Books into the right calendar | Yes, its own | Often takes a message | Yes, by service address |
| Missed calls and form leads | Manual callback | Rarely followed up | Text and call within a minute |
| Call records | Mostly in people's heads | Vendor portal | Recording and transcript in your CRM |
| Best at | Existing customers, big quotes | Overflow volume | First contact, triage, booking |
I'd keep your people. Let the agent take first contact and booking, and send warranty disputes, large commercial bids and upset customers to a human with the transcript already attached. Here's how our voice agents handle that handoff.
How should one AI agent route calls across locations?
Route by the caller's service address, not the number they dialed. The agent asks for the ZIP code early, matches it to the right branch, checks that branch's service area and calendar, and books there. If the address is outside every service area, it says so and ends the call politely.
- Capture ZIP code and job type in the first 30 seconds (roof leak, AC down, panel quote, water heater).
- Match the ZIP to a branch, then to that branch's calendar and crew types.
- Triage urgency. An active leak or no heat in January goes to the on-call tech or a priority slot; a solar quote goes to the next estimator opening.
- Book, then confirm by text with the address and arrival window.
- If the caller hangs up mid-call, text them within a minute with a booking link for their branch.
- Log the recording, the branch and the source campaign, so each location's cost per booked job shows up on its own line.
Step 6 is the one owners skip. It also ends the argument between marketing and the branch managers, because everyone can see where the calls went.
Do form leads need the same speed as phone calls?
Yes. A form fill is a homeowner who picked you a minute ago and may be filling out three more forms. The MIT and InsideSales lead response study found the odds of contacting a lead drop 100 times when you call at 30 minutes instead of 5, and the odds of qualifying drop 21 times (summarized by Ainora).
So the same agent that answers the phones should call every form lead within a minute or two, day or night, and text if nobody picks up. Our own example comes from a smaller local service business, a window tint shop, that spent $3,128 on Meta ads and closed $20,190 in deals. At six or ten branches, the same intake rules apply to every location's leads, and the dollars are bigger.
Spending $20K or more a month and not sure where the calls go?
KenjiAI puts one AI voice agent on every location's line, texts back missed callers and form leads, routes by service address, and books into each branch's calendar inside one CRM with reporting by location. We build it with you, and we can run the Meta ads too. See how a partnership works.
What should you do first?
Pull last month's call logs for every location and write down three numbers per branch: calls from ads, calls answered by a person, and jobs booked. Divide each branch's ad spend by its booked jobs. Put the AI agent on the branch with the worst ratio first, then roll it out to the rest once those numbers move.
If you want us to build and run that with you, start at kenjiai.com/partnerup.