How to calculate occupancy in a contact centre
The occupancy formula with a worked example, how occupancy differs from utilisation and adherence, and why a queue cannot be planned to 100 per cent.
Published
Occupancy is the share of an agent’s available time spent handling contacts. It is the number that tells you whether a staffing plan is sustainable for the people working it, and it is the reason Erlang C’s answer is sometimes not the right one. This guide covers the formula, the three metrics that get confused with each other, and the maths behind why you cannot plan to 100 per cent.
The occupancy formula
occupancy = handling time ÷ available time
Available time is logged-in time in a ready or handling state; it excludes breaks, meetings and other off-phone states, which are shrinkage. Handling time is talk, hold and wrap.
For a planning interval the same thing falls out of volume and staffing. Take 200 contacts in 30 minutes, an average handle time of 300 seconds, and 40 agents:
handling time = 200 × 300 s = 1,000 minutes
staffed time = 40 agents × 30 minutes = 1,200 minutes
occupancy = 1,000 ÷ 1,200 = 83.3%
Equivalently, occupancy is workload in erlangs divided by agents: 33.3 erlangs ÷ 40 = 83.3 per cent. Each agent spends about five minutes of the half hour waiting for the next contact.
Occupancy, utilisation and adherence are three different things
They are routinely used interchangeably and they are not the same.
| Metric | Numerator | Denominator | What moves it |
|---|---|---|---|
| Occupancy | Handling time | Available time | Staffing level against volume |
| Utilisation | Handling time | Paid time | Occupancy and shrinkage together |
| Adherence | Time in the scheduled state | Scheduled time | Agent behaviour |
An agent can be 83 per cent occupied, 56 per cent utilised (once a third of paid time goes to shrinkage), and 97 per cent adherent, all at once. Occupancy is a planning outcome; utilisation is a cost figure; adherence is a behaviour. Targeting agents on occupancy is a mistake, because they do not control it.
Why you cannot plan to 100 per cent
If contacts arrived evenly, 33.3 erlangs of work would need 34 agents at 98 per cent occupancy. They do not arrive evenly. Random arrivals bunch, and every bunch that exceeds the agents available becomes a queue. The slack between agents and workload is what absorbs the bunching, and Erlang C is the formula that says how much slack a given service level needs.
The amount of slack depends heavily on scale. For an 80/20 target with a 300-second handle time:
| Workload | Agents for 80/20 | Occupancy |
|---|---|---|
| 6.7 erlangs | 10 | 66.7% |
| 33.3 erlangs | 39 | 85.5% |
| 200 erlangs | 210 | 95.2% |
A small team needs a third of its time idle to hit the same target that a large one hits at 95 per cent. This is the pooling effect, and it is the strongest argument for consolidating skills and queues: the same agents in one pool deliver a better service level than in three.
It also means Erlang C can return an answer that is mathematically right and humanly wrong. 210 agents at 95 per cent occupancy will hit the target on paper and burn out in practice, which is why planners put a ceiling on occupancy and raise the requirement to meet it.
What high occupancy does
Sustained occupancy above about 90 per cent shows up as:
- Handle time creep as agents take longer wrap to get a breather.
- Rising absence and attrition, which raise shrinkage, which raise occupancy further.
- Fragile service level. With no slack, any within-interval spike or late log-in turns straight into a queue.
Most voice operations plan to a ceiling of 85 per cent, lower for small teams and for emotionally demanding work.
What to do when occupancy is wrong
Too high. Add agents, move off-phone activities out of the interval, or open the pool by adding skills. If the pattern is persistent, the forecast or the shrinkage assumption is probably low.
Too low. Bring internal shrinkage into the trough: training, coaching, one-to-ones and project work all belong in the intervals where occupancy is 60 per cent, not the ones where it is 90. If low occupancy is structural, the team is overstaffed for the work or the work should be blended.
Try it with your own numbers
- Workload
- 33.3 erlangs
- Handling time in the interval
- 1,000.0 min
- Available time per agent
- 5.0 min
- Agents for target occupancy
- 40
Time each agent spends waiting for the next contact.
Show the working
- Handling time = 200 × 300 s ÷ 60 = 1000.0 minutes of work in the interval.
- Staffed time = 40 agents × 30 min = 1200 minutes.
- Occupancy = 1000.0 ÷ 1200 = 83.3% (the same as 33.3 erlangs ÷ 40 agents).
- Agents for 85% occupancy = 33.3 ÷ 0.85 = 39.2, rounded up to 40.
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
- How to calculate Erlang C staffing: where the slack figure comes from.
- How to calculate a staffing requirement: applying an occupancy ceiling as part of the full chain.
Frequently asked questions
- Is occupancy an agent performance metric?
- No. Occupancy is the consequence of how many agents were staffed against how much work arrived. An agent cannot raise their own occupancy except by handling contacts faster, which is a handle time metric with its own risks. Manage occupancy through staffing; manage agents through adherence and quality.
- What occupancy should I plan for chat and email?
- Chat agents handle several conversations at once, so occupancy is usually measured per session and can run higher because a wait in one conversation is filled by another. Email and back-office work has no live customer waiting, so occupancy of 90 per cent or more is normal and the constraint becomes backlog age rather than queue time.
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.