PebbleWFM

How to calculate service level and average speed of answer

How service level and ASA are defined and measured, a worked Erlang C example predicting both from a staffing level, and why the two numbers disagree.

Published

Service level and average speed of answer are the two numbers a contact centre is judged on from the outside. They are related, they are both predicted by Erlang C, and they routinely disagree with each other in ways that confuse people. This guide defines them, works through predicting both for a given staffing level, and explains the disagreement.

Definitions

Service level is the share of contacts answered within a threshold:

service level = contacts answered within T seconds ÷ contacts offered

It is written as two numbers, such as 80/20: 80 per cent within 20 seconds. Both numbers matter. 80/20 and 90/60 are different targets that can need different staffing, and one is not stricter than the other in general.

Average speed of answer (ASA) is the mean wait across answered contacts:

ASA = total time in queue for answered contacts ÷ contacts answered

Contacts answered immediately count as zero wait, which is the source of most of the confusion later.

The denominators are where definitions diverge. Offered or answered? Do abandons count? From when the call enters the queue, or from when it enters the IVR? Every ACD has a default and every centre has a convention. The only wrong choice is using one definition for the target and another for the report.

Predicting both from a staffing level

Erlang C runs in both directions. Given agents rather than a target, it predicts what the interval will deliver. Take 200 contacts in 30 minutes with a 300-second handle time, which is 33.3 erlangs:

AgentsContacts that waitService level (20 s)ASAOccupancy
3569.7%37.7%125 s95.2%
3743.2%66.2%35 s90.1%
3833.3%75.6%21 s87.7%
3925.4%82.6%13 s85.5%
4019.1%87.8%9 s83.3%

Three things stand out. Service level moves by around ten points per agent near the target. ASA moves faster than that, roughly halving with each agent added above 38. And at 35 agents, with occupancy over 95 per cent, the interval has effectively failed: two thirds of customers wait and the average wait is over two minutes.

The calculation: Erlang C gives the probability that a contact finds every agent busy. Service level is one minus that probability multiplied by the chance of still waiting after T seconds, which decays exponentially at a rate of (agents − erlangs) ÷ handle time. ASA is that probability multiplied by handle time divided by the same spare capacity. The Erlang C guide walks through the formulas.

Why service level and ASA disagree

At 38 agents the ASA is 21 seconds, which sounds close to a 20-second target, while service level is 75.6 per cent, which is a clear miss. Both are right.

ASA averages over every contact, and two thirds of them waited zero seconds. The third who did wait, waited on average 300 ÷ (38 − 33.3) = 64 seconds. Wait times have a long tail: most people wait nothing, some people wait a long time, and the mean lands somewhere that describes nobody’s experience.

Service level looks at the threshold, so it sees the tail. That is why it is the better control target: it fails when customers are actually waiting too long, while ASA can look acceptable while a quarter of customers are waiting over a minute. Report ASA because the business understands it, but plan and manage to service level, or better, to a percentile of wait time.

Choosing a target

80/20 is a convention from telephony that predates most of the centres that use it. It is not a bad default for voice, but the right target depends on what customers will tolerate for that channel and how much each point costs. Service level is expensive at the top: in the example above, going from 80 to 90 per cent within 20 seconds costs one more agent; going from 90 to 98 costs five.

Check how the two numbers interact before committing. For this interval 80/20 and 90/60 both need 39 agents; a centre that switches from one to the other expecting a saving will be disappointed. Run the alternatives through the Erlang C calculator with your own volumes.

The averaging trap

A daily service level of 80 per cent can hide a morning at 60 and an afternoon at 95. Customers do not experience the average; they experience the interval they called in. Report service level by interval, and when you must roll it up, weight by contacts offered rather than averaging the interval percentages, so that a bad busy hour counts for more than a good quiet one.

Try it with your own numbers

Inputs
Demand

Calls, chats or tickets arriving during one interval.

s

Talk plus hold plus wrap-up.

Roster

Logged in and available for the whole interval.

Targets
s
Results
Service level
75.6%

Contacts answered within 20 seconds.

Average speed of answer
21.4 s
Contacts that will wait
33.3%
90% answered within
77.4 s

The 90th percentile of the wait.

Average wait of those who wait
64.3 s
Occupancy
87.7%
Workload
33.3 erlangs
Show the working
  1. Workload = 200 contacts ÷ 30 min × 300 s ÷ 60 = 33.3 erlangs.
  2. With 38 agents, Erlang C gives a 33.3% chance that a new contact finds every agent busy.
  3. Service level = 1 − 0.333 × e^(−(38 − 33.3) × 20 ÷ 300) = 75.6%.
  4. Average speed of answer = 0.333 × 300 s ÷ (38 − 33.3) = 21.4 s across all contacts; the 33.3% who wait average 64.3 s.
  5. Occupancy = 33.3 ÷ 38 = 87.7%.

Doing this for every interval of the week? Pebble WFM computes the requirement from your forecast and builds the roster. Free month, no card needed.

Where next

Frequently asked questions

Should abandoned calls count against service level?
Count them as failures if they abandoned after the threshold, because a customer who gave up at 40 seconds was not answered within 20. Exclude short abandons, typically under five to ten seconds, as those are mostly misdials. Whatever you choose, use the same rule for the target and the report, and write it down.
What is a good ASA?
There is no universal figure. ASA follows from the service level target and the queue size: a centre hitting 80/20 with a 300-second handle time will usually see an ASA in the 10 to 20 second range. Derive the ASA you expect from the target rather than setting it independently, or the two will contradict each other.

Stop doing this one interval at a time

Pebble WFM forecasts your demand, computes the staffing requirement for every interval, builds the roster and publishes it, with self-service for agents and a copilot that can do what a planner can. Explore a sample organisation on day one.

Start your free month No card needed.