The six numbers below run almost every contact center: first call resolution, average handle time, transfer rate, repeat contact, abandonment, and customer satisfaction. Each has a formula, a benchmark people quote without context, and a failure mode when you optimize the number instead of the call. And as of recently, each has a second meaning: the math changes when a voice agent, not a person, answers the phone.
This guide is for operations leads and the engineers building alongside them. It covers the definitions, the benchmarks worth trusting, and how to measure an automated queue honestly. If you are still deciding what to automate, read our contact center automation guide first.
The core call center metrics
| Metric | Formula | What it actually tells you |
|---|---|---|
| First call resolution (FCR) | Issues resolved on first contact / total issues x 100 | Whether callers get a working answer the first time |
| Average handle time (AHT) | (Talk + hold + after-call work) / calls handled | What a call costs in labor, and how staffing holds up |
| Transfer rate | Calls transferred / calls handled | Where coverage or routing breaks |
| Repeat contact rate | Callers who contact again within N days / total | Whether “resolved” was real |
| Abandonment rate | Callers who hang up before an answer / total | Where wait time loses people |
| CSAT | Satisfied responses / survey responses | How the experience felt, per call type |
Two supporting numbers sit underneath these: service level (calls answered within a target time) and cost per contact. Everything else is a diagnostic for the six.
First call resolution
First call resolution measures the percentage of customer issues resolved completely on the first interaction: no follow-up, no transfer, no callback. Multiply issues resolved on first contact by 100 and divide by total issues. Salesforce puts the industry standard at about 75%, and Aspect’s guidance lands around 70%.
FCR is the metric customers feel. Nobody calls back hoping to talk to someone new; a second contact means the first one failed them. That is why FCR tracks satisfaction better than any speed metric: Wikipedia’s overview calls it the most-watched metric in the industry for a reason.
The catch is that FCR is only as honest as its definitions. Three decisions change the number before anyone picks up the phone:
- What counts as resolved. Agent logs the ticket closed? The customer confirms? The backend shows the change? Pick one and write it down.
- What counts as a repeat. A callback within 7 days for the same reason is a common window. A caller who switches from phone to chat and starts over is a repeat too, if you can stitch the channels.
- Which calls are in scope. Blended FCR across every call type hides the queue that is failing. Measure per call type, or the easy password resets will average away your broken billing flow.
Average handle time
Average handle time is the average length of one interaction from start to finish: talk time, plus hold time, plus after-call work, divided by calls handled. Benchmarks cluster around six minutes cross-industry (Zendesk says “around six,” RingCentral puts the average near 6.5), and they spread widely by sector: RingCentral’s breakdown runs from about 4.5 minutes in retail to 8.8 in telecom, because the calls are harder.
AHT is a cost and staffing metric, not a quality metric. Treat it as one and it is useful: workload is call volume times AHT, and workload sets staffing. Treat it as a quality score and agents learn to rush, which quietly trades FCR for AHT: shorter calls, more callbacks, worse everything. The useful read is directional, per call type, over time. A rising AHT on one queue usually means the calls got harder or the tooling got slower, and either is worth knowing before the next forecast.
One component deserves its own attention: hold time is the part of AHT the caller experiences as wasted. Cutting hold time is almost always safe; cutting talk time is where quality goes to die.
When a voice agent takes the call
Every metric above was designed for human agents. They still work on automated queues, but two of them change meaning and one new one appears.
FCR becomes verified resolution. For an automated call, “the agent says it went fine” is free. The honest version is the share of calls where your backend confirms the request was completed: the appointment exists, the payment posted, the address changed. Track repeat contact and incorrect actions next to it. Managed Agents score every call with built-in metrics like call success and let you add LLM-judged ones such as “was the caller’s issue resolved?” Spot-check transcripts against your own systems anyway; a judge model can be wrong too.
AHT stops being a cost proxy. An agent answers instantly, so hold time becomes a routing decision rather than a staffing outcome. The number to watch instead is response latency: how long the caller waits after they stop talking. Humans tolerate about a second before the line feels dead, which is why streaming pipelines budget it in milliseconds and track the p95 and p99 tail, not the average.
Containment is not resolution. Containment counts calls that never reached a person, and it is the easiest number in the building to game: an agent that hangs up on everyone has perfect containment. Use it only as a routing statistic, and report verified resolution wherever you used to report containment.
Transfer rate becomes your roadmap. Every transfer from an agent to a person carries a reason, and the reasons ranked by volume are the next quarter’s integration work. A rising transfer rate on one call type usually means a backend tool broke, not that the calls changed.
Benchmarks are per call type, not per industry
A telecom benchmark tells a retail team almost nothing. Calls differ in complexity, emotional charge, and what “resolved” requires, so a 4.5-minute AHT or an 80% FCR is only meaningful against the same call type, same channel, same definitions. When you read a benchmark, ask which calls were in it. When you set targets, baseline your own queue for four weeks first, then compare like with like.
How to improve the numbers
- Fix transfer reasons first. They are a ranked list of what your coverage is missing, whether the gap is a person or an integration.
- Automate the right queue. A high-volume call type with one narrow goal and a backend that can confirm the outcome. The five-traits screen walks through the choice.
- Cut hold time, not talk time. Routing and instant pickup remove the part callers hate without touching the part that resolves the issue.
- Measure resolution before and after any change. Four weeks of baseline, then the same definitions on the new system. Teams running this in production, like Forethought, report real movement (a 30% deflection increase over nine months), but their numbers are their queues, not yours.