TL;DR: A voice AI agency runs on a handful of numbers, and most owners only watch one of them (revenue). The ones I track are monthly recurring revenue, gross margin per client, minutes used versus minutes included, cost per minute all in, client churn, time to live, agent issues per hundred calls, hours spent per client per month, and how often clients log in to see their results. Put the client-facing numbers in a portal the client can read, keep the business numbers in one sheet you review weekly, and you will catch a bad client, a broken agent or a pricing mistake before it costs you a month of margin.
I build production voice agents for US clients on Retell AI, n8n, GoHighLevel and Twilio, and we run VoiceDash, the white-label client portal for voice AI agencies. When agency owners show me their setup, the agents are usually fine. What is missing is a clear view of whether the business behind those agents is healthy. Here are the KPIs I use, how I calculate each one, and what I do when one moves the wrong way.
Why voice AI agencies need their own KPIs
A voice AI agency is not a normal service business and it is not a normal SaaS business. It is a bit of both, and that is why generic agency dashboards miss things.
You have a recurring retainer like SaaS, but you also have a variable cost that grows with every call. Retell bills per minute, telephony bills per minute, and some clients will suddenly use three times more minutes than they did last month because their ads started working. You also have service hours like an agency: prompt changes, new FAQs, calendar fixes, and "can you make it sound friendlier" requests.
So the numbers have to cover three things at once:
- Revenue: what clients pay and whether they keep paying
- Usage cost: what each client costs you in minutes and platform fees
- Delivery: how much of your time each client eats, and whether their agent is working
If you only watch revenue, a client with a big retainer can look great while quietly losing you money on minutes and maintenance hours.
The 9 KPIs I track
1. Monthly recurring revenue (MRR)
The total of every retainer and subscription you bill each month, not counting one-time setup fees. Setup fees are nice, but they do not tell you whether the business can pay you next month.
I split MRR into base fees and usage charges (overage minutes or per-call fees). If most of your MRR is usage, your revenue will swing with your clients' call volume, which is fine as long as you know it.
2. Gross margin per client
This is the most important number on the list, and the one most owners have never calculated.
For each client, every month:
Gross margin = (what the client paid) minus (Retell minutes + telephony + any per-client tools) minus (your hours on that client times your hourly cost)
Do it per client, not across the whole agency. An agency-wide margin hides the one client who is underwater. When I find a client with thin or negative margin, it is almost always one of two causes: their minutes grew past what the plan covers, or they generate constant change requests that were never priced in. I wrote up how I set retainers to avoid both in voice AI agency pricing.
3. Minutes used versus minutes included
If your plans include a bucket of minutes, track each client's usage against their bucket every month. Three patterns matter:
- Consistently under 50 percent: the client may not be getting enough calls routed to the agent. This is a churn warning, because low usage usually means low perceived value.
- Close to 100 percent: the client is a candidate for an upgrade conversation. My approach is in how to upsell voice AI clients.
- Over the bucket with no overage price: you are paying for their growth. Fix the plan before the next billing cycle.
4. All-in cost per minute
Your real cost per minute is not the Retell list price. Add the voice model, the LLM, telephony, and any per-minute add-ons, then divide your total platform bill by total minutes for the month. I break down the parts in Retell AI pricing explained.
Recalculate it every month. If you switch a client to a bigger LLM or add a premium voice, this number moves, and your per-minute price to the client should move with it.
5. Client churn
The share of paying clients who cancel in a given month. For a small agency I also keep a simple list of every client who left and the reason they gave, because with ten or twenty clients a percentage hides more than it shows.
The reasons repeat. In my experience it is rarely "the AI was bad." It is more often "we were not sure it was doing anything." That is a reporting problem, not an agent problem, and I cover how to fix it in voice AI client retention.
6. Time to live
Days from signed contract (or paid invoice) to the agent answering real calls. A long gap is where clients get cold feet. I aim to keep this short by cloning a base agent per niche and using a fixed onboarding checklist, which I shared in how to onboard voice AI clients.
Track the slowest step too. For most agencies it is not the build. It is waiting on the client for their FAQ, their calendar access or their phone forwarding.
7. Agent issues per 100 calls
Pick a sample of calls each week, review them, and count the real problems: wrong information, a failed booking, a transfer that did not happen, a caller who got stuck. Divide by the number of calls you reviewed.
The exact number matters less than the trend per client. If one agent's issue rate jumps after a prompt change, you know where to look. Post-call analysis in Retell can tag some of this automatically, which I walk through in Retell AI post-call analysis, and my broader review routine is in voice AI agent monitoring.
8. Hours per client per month
Log your time per client, even roughly. Agent tweaks, client calls, support emails, building reports. This is the input to gross margin, and it is also the number that tells you when you need help. Once the total across clients is more than you can cover, you are close to a hiring decision, which I wrote about in how to hire for a voice AI agency.
The biggest drain I see is manual reporting: exporting call logs, screenshotting dashboards and writing monthly emails. That time is invisible until you log it.
9. Client portal engagement
Do clients actually look at their results? If a client never opens their dashboard and never listens to a recording, they are forming their opinion of you from their gut, and their gut usually remembers the one call that went wrong.
I treat a client who has gone quiet as a check-in trigger. A short call where you play two good recordings and point at their booked appointments does more for retention than any discount.
Which numbers the client sees and which stay internal
Not all nine belong in front of the client. I split them like this:
| KPI | Client sees it | Internal only |
|---|---|---|
| Calls handled, duration, outcomes | Yes | |
| Recordings and transcripts | Yes | |
| Minutes used and cost | Yes | |
| MRR, gross margin, cost per minute | Yes | |
| Churn, time to live, hours per client | Yes | |
| Agent issues per 100 calls | Summarized | Detail stays internal |
The client-facing side is where VoiceDash fits. Every client gets a branded portal on your domain with their own call analytics, recordings and transcripts, and their usage. If you bill through your own Stripe in VoiceDash, Retell minutes are billed automatically and clients see their usage and cost in their portal, so "minutes used versus included" stops being a spreadsheet job. For what else belongs in a client report, see voice AI client reporting.
The internal side lives in one simple sheet. One row per client per month, columns for revenue, minutes, platform cost, hours, margin, and a notes field. Nothing fancy.
A weekly and monthly review routine
Every week (30 minutes):
- Review a sample of calls per client and log issues
- Check any client whose call volume dropped sharply
- Note hours spent per client
Every month (an hour or two):
- Pull revenue, minutes and platform costs per client
- Calculate gross margin per client and sort lowest first
- Flag clients near or over their minute bucket
- Recalculate all-in cost per minute
- Write down the reason for any churn or downgrade
- Pick one fix: a repricing, an upsell conversation, or an agent improvement
The "pick one fix" step is the point. Numbers you do not act on are just homework.
What to do when a KPI goes red
- Margin falling on one client: check minutes first, then hours. Usually you reprice at renewal or add an overage rate.
- Usage dropping: confirm call forwarding is still active. I have seen a client's office change phone settings and accidentally stop routing calls to the agent.
- Issue rate rising: compare against the last agent change and roll back if needed. My process for safe edits is in how to update a live voice AI agent.
- Time to live growing: shorten your onboarding form and ask for access on day one.
- Hours per client rising across the board: that is a systems problem. Fix reporting and onboarding before you hire.
The bottom line
Healthy voice AI agencies are not the ones with the most clients. They are the ones that know their margin per client, catch usage changes early, and keep clients looking at their own results. Track nine numbers, review them on a schedule, and change one thing a month.
Want the client-facing half of this done for you, with branded portals, call analytics, recordings and usage visible to every client? Start free on VoiceDash or book a demo and I will show you how a client portal goes live in under 10 minutes. VoiceDash works with Retell AI today, with VAPI and Bland support coming soon.