Calculating Staffing Requirements
The Requirements tab is the heart of Turnella. It takes your forecast and your staffing assumptions and calculates the headcount needed per interval to meet your service level target. The calculation method differs by channel type and is selected automatically based on your workstream settings.
Voice: Erlang C Model
For inbound telephone calls, Turnella uses Erlang C — the industry-standard queueing formula for telephone traffic. Erlang C was developed in 1917 by Danish telephone engineer Agner Erlang and remains the most accurate model for multi-agent queues where callers wait if all agents are busy.
Erlang C models a queue where:
- Calls arrive randomly (Poisson process)
- Each call takes a random amount of time to handle (exponentially distributed around the mean AHT)
- Callers wait indefinitely until an agent becomes available
- Multiple agents handle calls in parallel
The key insight is that the relationship between agents and service level is non-linear — going from 10 to 11 agents might raise your SL from 72% to 85%, but going from 15 to 16 agents might only raise it from 89% to 91%. The last few percentage points of SL are very expensive.
Voice assumptions
| Assumption | What it does | Typical range |
|---|---|---|
| AHT (seconds) | Mean time per call including talk time and after-call wrap-up | 120–480 seconds |
| Service level target (%) | Share of calls answered within the target wait time | 70%–90% |
| Target answer time (seconds) | The "within X seconds" threshold | 10–30 seconds |
| Max occupancy (%) | Cap on how busy agents are kept at any interval | 75%–90% |
| Shrinkage (%) | Share of paid hours not available for contacts | 20%–40% |
AHT must include wrap-up time (after-call work), not just talk time. If your phone system reports talk time and after-call work separately, add them together. Using talk time alone underestimates headcount and will lead to a schedule that looks correct on paper but is understaffed in practice.
Seated vs scheduled agents
Turnella produces two headcount figures for each interval:
- Seated required — the number of agents who need to be at their workstation actively handling contacts. This is the direct output of the Erlang C formula.
- Scheduled required — the total number of agents who must be rostered to ensure the seated requirement is met. Higher because some rostered agents are always unavailable (on break, in training, absent).
Scheduled required = Seated required ÷ (1 − Shrinkage)
Example: if Erlang C says 10 seated agents are needed and shrinkage is 30%, then scheduled required = 10 ÷ 0.70 = 14.3, rounded up to 15. You need 15 people on the rota to ensure 10 are actually available.
Max occupancy guardrail
Occupancy is the percentage of time agents spend actively handling contacts. At high occupancy, agents have little breathing time between calls, which drives errors, burnout, and high attrition.
The max occupancy setting acts as a guardrail: if the Erlang C formula would result in occupancy above this threshold, Turnella adds extra agents until occupancy falls below it. The recommended setting is 85%. Sustained occupancy above 85–90% is a serious wellbeing and quality risk.
Max occupancy is not a target — it is a ceiling. Most well-staffed operations run at 70–80% average occupancy, with peaks touching the ceiling in busy intervals.
Live Chat: Concurrency Model
A chat agent can handle multiple sessions simultaneously — a customer is typing, so the agent responds, then waits for the customer to type again while attending to another conversation. This multitasking is called concurrency.
Applying Erlang C to chat would overstate your headcount because it assumes one agent per contact. Turnella uses a concurrency model instead.
Chat assumptions
| Assumption | What it controls | Typical range |
|---|---|---|
| AHT — Chat (seconds) | End-to-end session duration from first message to resolution | 300–900 seconds |
| Max concurrent sessions/agent | How many chats an agent handles at once | 2–4 sessions |
| Active time ratio | Fraction of session time the agent is actively engaged | 0.60–0.75 |
| First-response SL target (%) | Share of chats getting a first reply within the target time | 80%–95% |
| Shrinkage (%) | Same components as voice | 20%–30% |
The concurrency model accounts for the fact that handling multiple simultaneous sessions effectively lengthens the real handling time per session. Higher concurrency reduces headcount but raises response time. Turnella calculates the trade-off and shows predicted first-response SL at different concurrency levels.
Email and Back-Office: Throughput Model
For deferred work — emails, tickets, cases, back-office tasks — there is no instantaneous service level requirement. Instead, you need enough agents to keep up with incoming volume and clear any existing backlog within an SLA deadline.
Backlog model assumptions
| Assumption | What it controls | Typical range |
|---|---|---|
| Items per day | Daily volume of new emails, tickets, or tasks (from forecast) | Varies |
| Existing backlog | Work already in the queue at the start of the planning period | 0–1000+ items |
| AHT (seconds) | Average time to fully process one item | 300–900 seconds |
| Efficiency (%) | Share of paid time actually spent on productive work | 60%–80% |
| Available hours per FTE per day | Productive hours available per agent per day | 6–7.5 hours |
| Backlog reduction target (%) | How much of the existing backlog to clear in the planning window | 50%–100% |
The model calculates how long it will take to clear the existing backlog at different staffing levels and flags SLA breach risk when the projected clearance date exceeds your SLA deadline.
Reading the Requirements Output
Coverage percentage
Coverage % is the share of intervals where your scheduled headcount equals or exceeds the calculated requirement. 100% means every interval is fully staffed. 85% means 15% of intervals are understaffed.
Target: 95%+ for critical queues. Below 85% is a health grade C — expect noticeable service level impact.
Sensitivity panels
Below the main coverage chart, sensitivity panels answer: how does our headcount requirement change if our assumptions shift?
- AHT sensitivity: headcount at ±30–60 seconds from assumed AHT
- Volume sensitivity: headcount at ±10–30% from forecast volume
- Shrinkage sensitivity: scheduled headcount if shrinkage is higher than assumed
These are invaluable for risk planning. If your AHT varies widely, the sensitivity table shows your worst-case headcount need. Build your schedule to cover that, not just the central estimate.
Intraday and DOW charts
The intraday chart shows the staffing requirement curve for a typical day. The DOW (day-of-week) balance chart shows average requirement per day of the week. Use these to identify which intervals are hardest to cover and which days need the most agents.
Adjusting Assumptions
You can change any staffing assumption directly on the Requirements tab without going to Settings. Click the assumptions panel to expand it, adjust any value, and the requirements recalculate instantly. Changes are saved automatically.