What 2,684 AI-handled calls reveal about a clinic's booking revenue
We analysed 2,684 calls our AI voice agent handled for a dermatology clinic over three months: 456 bookings and $104,550 secured, plus an estimated $38,000 in recoverable leaked bookings. Here is the full breakdown.
Most “AI answers your phones” pitches stop at the word “answers”. We think that is the wrong place to stop. Answering a call is easy. Turning it into a booked appointment is the part that actually pays for the clinic.
So instead of talking in generalities, here is a real breakdown. We pulled the numbers on 2,684 calls our AI voice agent handled for a dermatology clinic over roughly three months, and mapped every call to what it was actually worth.
The headline numbers
Of the 2,684 calls analysed:
- 794 calls (29.6%) were genuine booking opportunities - a patient who wanted, or could have been moved toward, an appointment.
- 456 of those became secured bookings - 241 new patients and 215 returning patients.
- That worked out to $104,550 in booked revenue directly attributable to calls the AI handled.
That is the revenue that is already working today. But it is not the number we find most interesting.
Captured revenue: what is working today
Splitting the secured bookings by patient type, and applying the clinic’s own average booking values, gives a clear picture of where the money came from.
| Secured bookings | Calls | Value per booking | Value |
|---|---|---|---|
| New-patient bookings | 241 | $300 | $72,300 |
| Returning / existing bookings | 215 | $150 | $32,250 |
| Total captured (period) | 456 | $104,550 |
New patients are worth twice as much per booking here, so the agent capturing 241 of them is the single biggest revenue driver in the dataset.
The number that matters more: leaked bookings
Here is the figure we care about most.
Of the 794 booking opportunities, 338 booking-intent calls leaked - real patients who wanted an appointment but did not end up booked. They hit a dead end, got stuck, hung up, or asked for something the agent could not yet handle, and the booking never happened.
That is not lost marketing. Those patients already called. The demand was paid for. It simply failed to convert.
If the agent’s booking flow is improved and recovers even half of those leaked calls, that is roughly 169 additional bookings. Using the same blended new-versus-returning mix and booking values above, that is an estimated $38,000 or more in additional revenue - from the exact same call volume, with no extra advertising spend.
Same phone. Same patients. Better conversion.
Why “answering calls” is the wrong metric
This is the part most voice-AI conversations skip. A phone that gets answered 24/7 sounds great, but “answered” and “booked” are very different outcomes, and only one of them shows up in the clinic’s bank account.
When you measure conversion rather than pick-up rate, three things become obvious:
- Booking intent is common. Nearly 3 in 10 calls were a booking opportunity. Reception is not just fielding admin.
- Leakage is where the upside lives. The gap between 794 opportunities and 456 bookings is the number worth attacking, and it responds to tuning the agent, not to spending more on ads.
- New-patient calls deserve special handling. They are worth the most and are the easiest to lose, because a new patient with a bad first phone experience simply calls the next clinic on the list.
The full call breakdown
We categorise every call, not just the ones that book, so a clinic can see exactly what its phone line is really doing. Here is the complete picture for the period.
| Call type | Calls | % of all |
|---|---|---|
| Total calls analysed | 2,684 | 100.0% |
| Calls that drove revenue (booking opportunity) | 794 | 29.6% |
| - booking secured / captured | 456 | 17.0% |
| - booking leaked (not captured) | 338 | 12.6% |
| New-patient booking calls | 377 | 14.0% |
| Existing booking / appointment-admin calls | 997 | 37.1% |
| Information-only calls | 128 | 4.8% |
| Calls for a nurse / clinical question | 79 | 2.9% |
| Patient asked to speak to a person | 555 | 20.7% |
| Patient stuck in a loop / breakdown | 174 | 6.5% |
| AI hit a knowledge gap (could not answer) | 184 | 6.9% |
| No-conversation calls (hang-up / silence) | 471 | 17.5% |
These flags are not mutually exclusive. One call can be a new booking and a request for a human and a loop all at once, which is why the rows intentionally sum to more than the total. That overlap is deliberate: it is how you find the specific failure points, like the 174 loop calls or the 184 knowledge-gap calls, that are quietly costing bookings.
Why we report it this way
A clinic should never have to take a vendor’s word for whether the AI is working. The numbers should just say it.
That is why our reporting is built around this exact structure: captured versus leaked, new versus returning, and a dollar value attached to each outcome. It turns “the AI handled a lot of calls” into “the AI booked $104,550 and there is $38,000 sitting in the leaked column we can go after next”. One of those is a vanity metric. The other is a decision.
It also keeps us honest. If the agent is leaking bookings, the report shows it, and the leaked column becomes the roadmap for the next round of tuning.
What this could look like for your clinic
The specific figures above belong to one dermatology clinic, but the method travels. Any clinic with meaningful inbound call volume has a captured column and a leaked column, whether or not anyone is measuring them today.
If you run a clinic and want to see what this breakdown looks like for your own call volume, we are happy to walk through it. Read more about voice AI for medical clinics, or book a 20-minute call and we will map captured versus leaked against your actual numbers.
Figures in this article are drawn from a real, anonymised client dataset over an approximately three-month period. The recovery estimate applies a 50% recovery assumption to leaked booking-intent calls using the clinic’s own average booking values ($300 new, $150 returning); actual recovery depends on your call mix and workflows, which we scope on a call.