Which phone KPIs should a restoration company track?
A restoration company should track eight phone numbers: answer rate (by hour and after hours), missed-call callback time, time to first contact, booking rate, on-call acknowledgement time, after-hours share of calls, cost per booked job, and Google Local Services Ads leads you were charged for but never answered. Together they tell you whether the phone is losing jobs, and where.
None of them needs special software. Your carrier's call log, your call tracking, your Google Ads leads page and your job software already hold the data. What most shops are missing is a fixed definition for each number and a weekly habit of looking at it. This guide gives you both: what each KPI means, the formula, where to pull it, how often to check it, and what usually moves it. It ends with a scorecard you can copy and a worked example.
We build Botcadence, which sells an AI restoration answering service, so we care about how many calls get answered. The definitions below work with any setup: the owner's cell, a technician rotation, a live answering service or an AI agent.
Before you start: decide what counts as a call
Every phone KPI is a fraction, and the bottom of the fraction decides what the number means. A 40% booking rate on all calls and a 40% booking rate on qualified calls describe two very different shops.
Write down three definitions before you measure anything:
- A call: every inbound call to your business numbers, including tracking numbers.
- A qualified call: a call from someone who might hire you for a job you do, in the area you serve. Exclude vendors, spam, wrong numbers, job seekers and existing customers calling about an open job.
- A booked call: a qualified call that ended with an inspection or job on the calendar, or an on-call tech dispatched.
If you use ServiceTitan, its CSR dashboard already uses a stricter version. ServiceTitan's help center defines a lead call as one that lasts at least 60 seconds where the call type is not excused. Excused calls are those tied to an existing job, or marked as not a service request. Its "Percent Booked" is the percent of lead calls booked into jobs. If you compare yourself with anyone else's numbers, check which definition they used first.
The 8 restoration phone KPIs
1. Answer rate
What it is: the share of inbound calls a person or your answering layer picked up, as opposed to calls that rang out, hit voicemail or got a busy signal.
Formula: answered calls ÷ total inbound calls.
Where to find it: your phone system or carrier call log (most show answered, missed and voicemail), or your call tracking reports if you use a tool like CallRail.
How often: weekly, split by hour of day and by business hours vs after hours. The overall number hides the problem; the hourly view shows it. A shop that answers 95% of calls from 9 to 4 can still miss most calls at lunch and after 6 pm.
What moves it: who carries the phone at lunch and after hours, whether the line can take a second call, how many rings before forwarding, and whether overflow goes to voicemail or to someone who answers.
2. Missed-call callback time
What it is: for calls nobody answered, how long it took someone to call back.
Formula: time of first callback minus time of the missed call. Report the median and the share called back within your target window, plus the share never called back.
Where to find it: your call log, by matching missed inbound calls with the next outbound call to the same number. Call tracking tools make this easier.
How often: weekly.
What moves it: a named person responsible for missed calls, a missed-call alert to a phone rather than an email inbox, and fewer missed calls in the first place.
3. Time to first contact
What it is: how long a new lead waits before talking to a person or your answering layer. For phone calls that are answered, it's the ring time. For web forms, texts and missed calls, it's the time until you reach them.
Formula: first two-way contact time minus first inbound contact time, for each new lead.
Where to find it: call tracking or your CRM for form fills and texts; your call log for missed calls.
How often: weekly, by channel.
What moves it: the same things as callback time, plus whether web forms and texts land somewhere someone watches after hours. See how franchises publish their response promises in our restoration response time standards guide.
4. Booking rate
What it is: the share of qualified calls that end with an inspection booked, a job scheduled or a tech dispatched.
Formula: booked calls ÷ qualified calls.
Where to find it: your job software (Xcelerate, DASH, PSA, Albi, JobNimbus or whatever you use) for jobs created, matched against your qualified call count from the call log or call tracking. If you use ServiceTitan, its "Percent Booked" uses lead calls of 60 seconds or more as the denominator.
How often: weekly overall, monthly per person or per answering service.
What moves it: the intake script, whether the person answering can book on the call or has to take a message, how price questions are handled and how fast losses get a callback. Our restoration CSR training plan has a scorecard for reviewing individual calls.
5. On-call acknowledgement time
What it is: after an emergency call comes in after hours, how long until your on-call tech confirms they have it.
Formula: acknowledgement time minus alert time, per emergency. Track the median and the longest.
Where to find it: your answering service's message log or your escalation tool's history. If the tech gets a plain text and calls the customer, use the time of that callback from the customer's call record instead.
How often: weekly, and after every storm or freeze.
What moves it: whether the alert repeats or goes out once, whether it moves to a backup, and whether the alert carries the details the tech needs to decide fast. Our guide to after-hours coverage for restoration companies has an escalation tree you can copy.
6. After-hours share of calls
What it is: the share of your inbound calls that arrive outside your staffed hours.
Formula: after-hours calls ÷ total inbound calls. Define your hours first, for example 8 am to 5 pm on weekdays.
Where to find it: your call log, grouped by hour and day.
How often: monthly, and around storm events.
What moves it: the weather, your marketing (ads that run overnight bring overnight calls) and the season. You don't manage this number down; you use it to decide how much after-hours coverage is worth paying for.
7. Cost per booked job
What it is: what your phone coverage costs for every job it books.
Formula: monthly answering cost (service bill, on-call pay for phone duty, phone system) ÷ jobs booked from phone calls that month.
Where to find it: your answering service invoice, payroll and the booked count from KPI 4.
How often: monthly.
What moves it: the pricing model of your answering service and your booking rate. Per-minute services cost more in a storm month; flat plans don't. Our restoration answering service cost guide works through the bills for 16 services.
8. LSA leads charged but never answered
What it is: Google Local Services Ads leads you paid for where nobody spoke to the caller.
Formula: count of phone leads marked "Charged" on the Leads page in Google Ads that match a missed or voicemail call in your call log.
Where to find it: the Leads page in Google Ads (Charge Status column), matched against your call log.
How often: weekly.
Why it matters now: Google's "How leads work" help page says a missed call during your business hours is a valid lead when the caller stays on the line for more than 20 seconds, and that a call reaching voicemail or a greeting counts too. Business hours are the hours in your Google Business Profile. Our guide to Google LSA missed-call charges explains the rule case by case.
What moves it: answering business-hours calls, forwarding unanswered calls to someone who answers, and keeping your profile hours honest.
A weekly scorecard you can copy
| KPI | This week | Last week | 4-week average | Target | Owner |
|---|
| Answer rate, business hours | | | | | |
| Answer rate, after hours | | | | | |
| Missed calls never called back | | | | | |
| Median callback time on missed calls | | | | | |
| Median time to first contact, web leads | | | | | |
| Booking rate on qualified calls | | | | | |
| Median on-call acknowledgement time | | | | | |
| After-hours share of calls | | | | | |
| LSA leads charged but unanswered | | | | | |
| Cost per booked job (monthly) | | | | | |
Keep it on one page, put a name in the Owner column for each row, and look at it in the same meeting every week.
A worked example (made-up numbers)
The numbers below are invented to show the arithmetic. They are not benchmarks.
A three-truck water mitigation shop pulls one week of data:
- Calls: 120 inbound calls. Business hours (8 am to 5 pm weekdays): 80. After hours: 40.
- Answered: 72 of 80 in business hours (90%), and 22 of 40 after hours (55%).
- Qualified: 60 calls, after removing vendors, spam and calls about open jobs.
- Booked: 21 inspections or dispatches, so the booking rate is 21 ÷ 60 = 35%.
- Missed after-hours calls: 18. Five were never called back.
- LSA: the Leads page shows 6 charged leads that match missed or voicemail calls during business hours.
- Cost: the answering service bill was $1,100 for the month, and phone calls booked 84 jobs that month, so cost per booked job is about $13.
What the shop learns:
- After hours is the gap. Business-hours answer rate is fine; after-hours is not, and 5 callers never heard back. The fix is the after-hours setup, not the office.
- Six paid leads went nowhere. That's ad spend for calls nobody spoke to, during hours the profile says they're open.
- The booking rate is a baseline, not a grade. Next month they'll compare against 35%, not against someone else's number.
How to set targets from your own baseline
Industry benchmarks for these numbers are rare, use different definitions, and usually come from vendors selling a fix. Your own history is a better yardstick.
- Measure four weeks without changing anything. That's your baseline.
- Pick the one KPI with the biggest gap. For most restoration shops it's after-hours answer rate or on-call acknowledgement time.
- Change one thing. For example, forward unanswered calls after four rings instead of letting them reach voicemail, or make the on-call alert repeat until someone replies.
- Measure four more weeks and compare like with like (same definitions, similar weather).
- Set the target as a number you hit in the second period and want to hold, then move to the next KPI.
Storm weeks distort everything. Mark them on the scorecard and compare them with other storm weeks, not with quiet ones.
How Botcadence helps you measure the phone
If the AI agent answers your overflow or after-hours calls, part of this data stops being guesswork:
- Every call leaves a record. Each conversation in the inbox has a transcript, a summary and the fields the agent captured, such as the address, the source of the water and the insurance company. That makes qualified and booked calls easier to count.
- Escalation you can audit. Active losses start your on-call escalation, which texts and calls your on-call list and repeats on the schedule you set, by default three times, five minutes apart, until someone replies.
- Fewer calls ringing out. The agent answers up to your account's concurrent-call limit, which closes the gap in KPI 1 and KPI 8 for the calls you forward to it.
- Plans. Analytics dashboards aren't on the Free plan; the Voice AI plan is $299 a month with 1,500 minutes, see pricing.
See the AI receptionist for restoration for the fields it captures, and AI for restoration companies for texting and chat on the same plan.