Cost per contact is the most quoted number in customer service finance, and one of the most misleading. A leader sees it fall, celebrates, and then wonders why total cost and customer complaints keep rising. This guide breaks down what really drives cost per contact, which levers deliver the biggest saving, and why cost per resolved issue is the number a WFM team should track instead.
What cost per contact really measures
Cost per contact is total cost of the service divided by the contacts handled. In a staffing model, most of that cost is people, so it comes from four things:
- Cost per paid hour of an agent (salary, benefits, seat, tools, management share).
- Average handle time (AHT): how long each contact takes.
- Occupancy: the share of logged in time agents spend on contacts.
- Shrinkage: the share of paid time agents are not available (leave, training, breaks, meetings).
A simple version of the formula is:
Cost per contact = cost per paid hour x AHT in hours / (occupancy x (1 minus shrinkage))
Notice there is no quality term in it. That is the weakness.
The test case
We used an illustrative contact centre with these assumptions. The dollar figure is only an index, so replace it with your own cost per hour.
| Input | Value |
|---|---|
| Loaded cost per paid hour | $20 (illustrative) |
| AHT | 360 seconds |
| Occupancy | 80% |
| Shrinkage | 30% |
| First contact resolution (FCR) | 75% |
That gives a cost per contact of about $3.57 and, because 25% of issues need another contact, a cost per resolved issue of about $4.76. The second number is what the business actually pays to fix a problem.
Which lever saves the most?
Here is what each change does to both metrics.
| Lever | Cost per contact | Cost per resolved issue |
|---|---|---|
| AHT cut by 10% | down 10.0% | down 10.0% |
| Occupancy from 80% to 85% | down 5.9% | down 5.9% |
| Shrinkage from 30% to 27% | down 4.1% | down 4.1% |
| FCR from 75% to 80% | no change | down 6.2% |
| AHT cut by 10% but FCR falls to 70% | down 10.0% | down 3.6% |
Two points stand out.
- FCR is invisible in cost per contact. Raising FCR by 5 points saves 6.2% per resolved issue, yet the cost per contact does not move at all. A team that focuses only on that metric would never invest in it.
- A faster AHT can be a false saving. The last row shows an AHT cut of 10% that costs 5 points of FCR. Cost per contact improves by 10%, but the cost to resolve the problem improves by only 3.6%, so most of the saving is lost in repeat contacts. This is the same trap described in chasing low handle time is costing you agents.
Why small teams always cost more per contact
Cost per contact is not only about efficiency. It is also about scale. Using an Erlang C model at 80/20 service level, with the same cost assumptions, the cost per contact changes a lot with the size of the workload.
| Workload per half hour (Erlangs) | Agents needed | Occupancy | Cost per contact |
|---|---|---|---|
| 2 | 4 | 50% | $5.71 |
| 5 | 8 | 63% | $4.57 |
| 10 | 14 | 71% | $4.00 |
| 20 | 25 | 80% | $3.57 |
| 50 | 57 | 88% | $3.26 |
| 100 | 109 | 92% | $3.11 |
| 200 | 211 | 95% | $3.01 |
A small queue costs almost 90% more per contact than a large pooled one (about $5.71 against $3.01), with exactly the same agents, wages and AHT. The reason is that small teams need spare agents to protect the service level, so they cannot reach high occupancy. This is the maths behind pooling skills, cross training and combining small queues. See the Erlang C calculator to check it for your own queues.
It also means comparing the cost per contact of two queues is unfair unless you compare their size.
The AI and automation effect
Automation lowers cost per contact on the contacts it handles, but it changes the mix for the agents. The simple contacts leave, so the remaining ones are longer and harder. AHT rises, and the cost per agent contact rises with it. The correct measure is the blended cost per resolved issue across humans and automation. If you are planning for this, read why AI deflection breaks your staffing model and use the cost per contact and AI ROI calculator.
What WFM should report instead
| Metric | Why it helps |
|---|---|
| Cost per resolved issue | Includes repeat contacts, so it rewards fixing the problem |
| Cost per contact by queue size | Shows scale effects, not just performance |
| Repeat contact rate within 7 days | A direct warning when AHT pressure is working against quality |
| Occupancy next to cost | Stops the team from buying savings with burnout |
| Cost per paid hour vs cost per productive hour | Exposes the price of shrinkage |
A safe order for cutting cost per contact
- Fix shrinkage first. Unplanned absence and long breaks cost money without any customer impact. Check yours in the shrinkage calculator.
- Pool and cross train small queues so they can run at healthy occupancy.
- Improve FCR through knowledge, tools and better routing before touching AHT.
- Reduce AHT only where quality is stable, by removing wasted steps and system delays, not by rushing callers.
- Raise occupancy carefully. Moving from 80% to 85% saves about 6%, but pushing to 92% or above saves more on paper and often raises attrition, which has its own cost. Check the band in the occupancy calculator.
- Track cost per resolved issue every month and show it next to cost per contact.
Key takeaways
- Cost per contact has no quality term, so it can improve while the real cost of service gets worse.
- In this model, a 10% AHT cut saved 10% per contact but only 3.6% per resolved issue when it cost 5 points of FCR.
- FCR does not appear in cost per contact at all, yet 5 extra points saved 6.2% per resolved issue.
- A small queue can cost about 90% more per contact than a large one, so compare queues of similar size.
- Use cost per resolved issue as the headline number and cost per contact as a supporting one.
The dollar figures are an illustration based on an assumed $20 cost per paid hour and the stated inputs. Replace them with your own cost, AHT, occupancy, shrinkage and FCR.