Skip to main content
TurnellaBeta
WFM guide

Occupancy rate explained — the most misunderstood WFM metric

Occupancy is the proportion of an agent's logged-in time spent on contact-related work. Most operations chase high occupancy as a cost efficiency goal. Most are wrong to. This page explains why, and what the right target actually is.

The formula

Occupancy = (AHT × contacts per hour) ÷ 3600

Or equivalently, in Erlang C terms:

Occupancy = Erlangs (A) ÷ number of agents (N)

Where Erlangs A = arrival rate (calls/hour) × AHT (hours). This means occupancy is determined entirely by how many agents are staffed relative to the volume arriving. You cannot set occupancy independently of headcount.

A worked example

Calls per hour120
AHT4 minutes (240 seconds)
Erlangs (A)120 × (240 ÷ 3600) = 8.0
Agents staffed10
Occupancy8.0 ÷ 10 = 80%

At 80% occupancy, each agent is busy for 48 minutes of every hour. The remaining 12 minutes is idle time: buffer that absorbs call arrival variance and prevents queue build-up.

Why high occupancy is dangerous

Call arrivals are random. Even if average volume is constant, there will be intervals where more calls arrive than average — and intervals where fewer do. At 85% occupancy, there is enough idle time to absorb these spikes before the queue grows. At 95% occupancy, there is almost none.

70%
ExcellentLow

Agents have 18 min/hour idle. Queue spikes clear instantly. High staff cost relative to volume.

80%
GoodLow–Medium

12 min/hour idle. The standard target for most operations. Sustainable.

85%
AdequateMedium

9 min/hour idle. Approaching the edge. Small volume spikes cause visible queue build-up.

90%
DegradingHigh

6 min/hour idle. Queue grows rapidly under any spike. SL breaches become frequent.

95%+
FailingCritical

3 min/hour idle. Queue is almost always non-zero. Agents have no recovery time. Burnout accelerates.

Occupancy and service level are linked — you cannot optimise both

Erlang C models the exact relationship between occupancy and service level. The key insight: the minimum number of agents needed to hit your SL target also defines your maximum sustainable occupancy.

Erlang C constraint

Given: 120 calls/hour, AHT 4 min, SL target 80% in 20 seconds:

Minimum agents = 11 → occupancy = 8.0 ÷ 11 = 72.7% → SL ≈ 93%

With 10 agents → occupancy = 8.0 ÷ 10 = 80.0% → SL ≈ 73%

With 9 agents → occupancy = 8.0 ÷ 9 = 88.9% → SL ≈ 42%

To hit 80/20 SL, you need 11 agents — which gives 72.7% occupancy. You cannot set a 80% occupancy target AND a 80/20 SL target simultaneously with this volume.

Occupancy vs. utilisation — they are not the same

Occupancy

Proportion of logged-in time spent on contact work (talk + hold + ACW). The denominator is available time — not shift time. Shrinkage events (breaks, training) are not included.

Utilisation

Proportion of scheduled time spent logged in and available. Captures shrinkage: breaks, training, sickness, admin. An agent can have high occupancy but low utilisation if they are logged in for less of their shift than expected.

Rule of thumb: Occupancy measures efficiency when agents are available. Utilisation measures how often agents are available. Both are needed to convert seated headcount into scheduled FTE via the shrinkage formula.

What drives occupancy changes

Volume increases

Occupancy rises (more contacts per agent)

Volume decreases

Occupancy falls (less to do per agent)

Agent count increases

Occupancy falls (same work, more agents)

Agent count decreases

Occupancy rises (same work, fewer agents)

AHT increases

Occupancy rises (more time per contact)

AHT decreases

Occupancy falls (less time per contact)

Occupancy targets by operation type

Operation typeTarget range
High-complexity calls (vulnerable customers, complaints)70–78%
Standard inbound voice (general enquiries)78–85%
Outbound (predictive dialler)85–92%
Live chat (concurrent sessions)N/A — different model
Back-office / email (async work)N/A — throughput model

Frequently asked questions

What is occupancy rate in a contact centre?

Occupancy rate is the proportion of an agent's logged-in time that is spent on contact-related work — call handling (talk + hold) and after-call work (ACW). The remainder is idle time waiting for the next contact. Formula: occupancy = (AHT × contacts per hour) ÷ 3600, or equivalently: occupancy = Erlang traffic ÷ number of agents. It is always a function of how many agents are logged in relative to the volume arriving.

What is a good occupancy rate for a contact centre?

The sustainable occupancy range for most contact centre operations is 75–85%. Below 75%, agents have too much idle time and staffing costs rise. Above 85%, queue dynamics deteriorate rapidly: small volume spikes cause disproportionate queue build-up, agents have no recovery time between contacts, and burnout risk increases. An occupancy above 90% sustained over multiple hours is a leading indicator of service level failure and high attrition.

Is occupancy the same as utilisation?

No. Occupancy and utilisation measure different things. Occupancy measures the proportion of logged-in time spent on contacts (talk + hold + ACW). Utilisation measures the proportion of scheduled time spent logged in and available — it captures shrinkage. An agent can be on shift for 8 hours (utilisation base), logged in for 6 hours (utilisation = 75%), and busy with contacts for 5.4 of those 6 hours (occupancy = 90%). Both metrics are needed to understand full capacity efficiency.

Why does Erlang C produce a maximum occupancy?

Erlang C has a mathematical stability condition: the queue only converges (callers are eventually answered) if the number of agents is greater than the Erlang traffic intensity A = λ × AHT. At exactly A agents, occupancy = 100% and the queue grows without bound. Erlang C therefore requires you to have more agents than the traffic intensity. The occupancy that results from the minimum agent count needed to hit your SL target is the maximum occupancy consistent with that target. You cannot achieve a lower occupancy without adding agents.

Calculate your occupancy rate

Enter your volume, AHT, and agent count. See your current occupancy — and what SL it produces via Erlang C.

Open the occupancy calculator →

Related