How to Measure an AI Voice Agent: KPIs per Call and per Flow Step
Published 5 November 2026
Measure an AI voice agent by what happens to each call, not by one containment rate. Every call ends one of three ways: completed by the voice agent, transferred to a person, or dropped. Track those three per step of the flow, because the step where callers hang up or ask for a person is where the flow needs work. Then check routing accuracy, repeat calls within a few days, and cost per resolved call. A containment rate on its own can rise while service gets worse: a caller who hangs up is never transferred, so many systems count that call as contained.
In short: the KPIs that matter
- Three outcomes per call: completed, transferred, dropped.
- The same three per flow step, so you see where calls fail, not only how many.
- Routing accuracy: did a transferred call reach the right team?
- Repeat calls: did the caller call back about the same question within a few days?
- Cost per resolved call: total cost divided by the calls that were actually resolved.
Why containment rate misleads
Containment rate is the share of calls that are not transferred to a person. It is the number most voice automation projects report first, and on its own it rewards the wrong behaviour.
The US Postal Service’s Office of Inspector General found this in a report on the Postal Service’s phone system: “Callers who hang up before being transferred to an agent, even if their issue is not resolved, are counted as contained calls by the Postal Service. As a result, the Postal Service’s containment rate is overstated.” Its recommendation was to track “the rate of complete, contained calls and the rate of incomplete, abandoned calls” separately (USPS OIG, RISC-WP-21-010, 21 Sep 2021). The report was about a menu-based IVR, but the counting problem is the same for any automated phone line.
A Smart Customer Service column puts it as a rule: “If the metric can go up while customers get worse outcomes, it should not be your primary KPI.” Containment, the same column argues, can rise because the system “refuses to escalate, loops the customer, or confidently completes the wrong action” (Smart Customer Service, 4 May 2026).
Self-service resolves less than it appears to. Gartner found that only 14% of customer service and support issues were fully resolved in self-service, in a survey of 5,728 customers (Gartner, 19 Aug 2024).
There is a second reason to measure closely. A human agent who misreads a policy affects their own calls. A voice agent that misreads it repeats the mistake on every call it takes, from the first day. An AI voice agent scales behaviour, not only volume, so you need to see that behaviour per call and per step.
Outcome per call: completed, transferred, dropped
Give every call exactly one outcome:
| Outcome | What it means | What it tells you |
|---|---|---|
| Completed | The voice agent handled the request to the end, without a person | The calls the agent truly resolves |
| Transferred | The call went to a person, by design or because the agent could not continue | Where the agent hands over, and whether that is planned |
| Dropped | The caller hung up or stopped responding before the call was completed or transferred | Where callers give up |
Platform documentation uses the same logic, under different names:
- Amazon Lex V2 classes conversations as success, failed or dropped. “Dropped” means “The customer doesn’t respond before the intent is categorized as a success or failed” (AWS documentation).
- Microsoft Copilot Studio reports sessions as resolved, escalated, abandoned or unengaged. It also separates “Resolved confirmed” from “Resolved implied”, where the session is “completed without user confirmation but instead based on the agent’s logic” (Microsoft Learn).
- Google Dialogflow CX counts “End Interaction”, described as “The number of conversations that were abandoned”, next to “Live Agent Handoff” (Google Cloud).
Two details are worth copying. First, split transfers into planned and unplanned. Copilot Studio distinguishes “System intended”, “System unintended” and “User requested” escalations, and notes that an unintended escalation usually “indicates that the user is stuck in the conversation”. A planned transfer for a complaint is the agent working as designed; an unplanned one after three failed attempts is a flow problem. Second, treat a “resolved” that nobody confirmed with some care, and check it against repeat calls.
Outcome per flow step: find where calls fail
Per-call totals tell you how much goes wrong. Per-step figures tell you where. A flow is a series of steps: greeting, identification, the question, a lookup, a confirmation. Each step has its own completed, transferred and dropped counts.
Platform documentation measures at this level too. Amazon Lex V2 marks a slot (one piece of information the agent asks for) as failed when “The bot wasn’t able to fill the slot, even after reaching the maximum number of retries” (AWS documentation). Dialogflow CX reports a “No match rate” per page: the “Percentage of total conversation turns that resulted in a no-match for the page” (Google Cloud). The USPS report made the same point for its phone menu: abandonment data per part of the call flow can “identify parts of the IVR system’s call flow that negatively impact customer satisfaction”.
What a per-step view can show:
- A step where many callers drop. For example identification, when the agent asks for a number the caller does not have at hand.
- A step where many callers ask for a person. The question is unclear, or the answer the caller needs is not in the flow.
- A step with many retries. Speech recognition struggles with a product name, a postcode format or a street name.
The fix is then specific: rephrase one question, add one answer, accept one more way to identify. Then compare the next week’s figures for that step.
The KPI set for an AI voice agent
| KPI | Definition | Why it matters |
|---|---|---|
| Completion rate | Calls completed by the voice agent ÷ all calls the agent answered | The share the agent truly handles |
| Transfer rate, planned and unplanned | Calls transferred to a person ÷ all calls the agent answered, split by reason | Planned transfers are design; unplanned ones are problems |
| Drop rate | Calls dropped ÷ all calls the agent answered | Callers who gave up, the cost you do not see |
| Outcome per flow step | Completed, transferred and dropped calls per step | Where to change the flow |
| Routing accuracy | Transferred calls that reached the right team ÷ all transferred calls | A transfer to the wrong team is a second transfer |
| Repeat call rate | Callers who call again about the same question within a set number of days | The check on “completed” |
| First contact resolution | Requests resolved in the first contact, with no follow-up | The customer’s view of resolution |
| Cost per resolved call | Total annual cost of the agent ÷ calls resolved without a person | The fair cost comparison |
On first contact resolution, SQM Group defines FCR as a measure of “resolving customer interactions on the first call or contact, eliminating the need for follow-up”, and puts the call center industry benchmark average at 71% (SQM Group, updated 20 Aug 2026). For cost per resolved call, see what an AI voice agent costs and what cost per contact is.
Customer satisfaction scores are useful if you survey after the call, but they come from the callers who answer the survey. Outcomes per call cover every call.
Setting targets without borrowed benchmarks
Published benchmarks for voice automation vary widely and rarely say how they were measured. The USPS report states that across industries “there are no universal benchmarks for containment, transfer, or abandonment rates”. Use your own baseline instead:
- Measure before you change anything. Record the outcomes per call and per step for two to four weeks.
- Set targets per flow, not for the whole line. An order status flow and a claims flow should not share a completion target.
- Watch pairs, not single numbers. Completion should rise while repeat calls stay flat or fall. If completion rises and repeat calls rise too, the agent is closing calls it did not resolve.
- Compare versions. After each change to a flow, compare the same step before and after.
If you need a common frame for contact center service requirements, ISO 18295-1 specifies service requirements for customer contact centres and “specifies performance metrics (KPIs) as and where required”; ISO has decided to revise it (ISO).
A weekly review routine
Numbers tell you where a flow chafes; calls tell you why. A routine that works:
- Monday: outcomes. Completed, transferred and dropped per flow, against last week.
- The worst step. Pick the step with the most drops or unplanned transfers.
- Listen. Open the calls that ended at that step and listen to a handful of them to find the cause.
- Change one thing. Adjust the question, the answer or the handover for that step.
- Check repeat calls. Make sure the change did not move the problem to a callback.
This is also how you keep control of what the agent does at scale. Escalation thresholds that are too sensitive add work for your team; thresholds that are too strict frustrate callers. Both show up in the per-step figures before they show up in complaints. QA sampling still matters for the conversations people handle; see why your QA team reviews only 1% of calls.
Frequently asked questions
Which KPIs should you track for an AI voice agent? Track the outcome of every call (completed by the agent, transferred to a person, or dropped), the same three per step of the flow, routing accuracy of transfers, repeat calls about the same question within a few days, and cost per resolved call. Together they show what the agent resolves, where it fails and what it costs.
What is a good containment rate for a voicebot? There is no universal benchmark, and containment alone is a weak target: a caller who hangs up is not transferred, so many systems count that call as contained. Set targets per flow from your own baseline, and judge completion together with drop rate and repeat calls.
What is the difference between containment and resolution? Containment means the call was not transferred to a person. Resolution means the caller’s request was actually handled. A call can be contained without being resolved, for example when the caller gives up and hangs up, or calls back later about the same question.
How do you find where callers drop off in a voice flow? Count completed, transferred and dropped calls per step of the flow, not only per call. The step with the most drops or unplanned transfers is where to look. Then listen to the calls that ended at that step to find the cause.
How do you calculate cost per resolved call? Divide the total annual cost of the AI voice agent, including setup, integrations, usage and maintenance, by the number of calls it resolved without a person. Check “resolved” against repeat calls, so calls that come back are not counted as resolved.
How AssistYou shows it
In AssistYou, Agent Statistics shows how many calls the AI Voice Agent completed, transferred to a person or dropped. Drop-offs are shown per step, directly on the flow in the Flow Designer, and one click opens the calls that ended at that step. You then adjust that step in the Flow Designer, with us or on your own. See the AI Voice Agent product page, or contact our sales team to see it on your own flows.
← Back to blog