Messaging inputs
One queue or skill at a time, at the peak hour.
For 80% of customer messages answered within 15 minutes, planning on interactions.
Floor number divided by (1 - shrinkage), not multiplied: 11 / 0.70.
| Response target | Agents needed | Occupancy |
|---|---|---|
| 2 minutes | 12 | 83% |
| 5 minutes | 11 | 91% |
| 15 minutes (yours) | 11 | 91% |
| 60 minutes | 11 | 91% |
| 240 minutes | 11 | 91% |
Past a few minutes the answer barely changes, because each reply is a small job and the queue has plenty of room. A longer promise to the customer does not shrink the team in the busy hour.
| Method | Workload | Agents | Versus correct |
|---|---|---|---|
| Correct: interactions x time per interaction | 10.0 Erlangs | 11 | - |
| Shortcut 1: conversations x time per interaction | 2.0 Erlangs | 3 | too few by a factor of 3.7 |
| Shortcut 2: voice style, open time as handle time | 180 Erlangs | 195 | about 18 times too many |
Shortcut 1 undercounts the work by exactly the number of interactions per conversation. Shortcut 2 counts the hours a thread sits open as work, which the agent never spends. The fix for both is the same: plan on interactions.
Save or share these results
Take a snapshot of the exact inputs and outputs on screen.
Get the full Excel/VBA version
The full Excel/VBA version with live formulas, RTM tracking, and dashboards is free for now.
Results are estimates for planning purposes only and should not replace professional workforce management judgment.
The calculator counts the real work: interactions per hour times the handle time of one interaction. That workload goes through the same Erlang C model used for voice, with your response target as the service goal. The two shortcuts in the comparison table show what happens when you plan on conversations only, or treat open time as handle time.
Assumptions
- Follow up messages arrive at a steady rate across the hour.
- One agent handles one reply at a time; no concurrency between threads.
- Every reply takes the same average handle time, including reading and wrap up.
- Shrinkage is divided out of the roster, not multiplied onto the floor number.
Using it well
- Results are a model: replace the defaults with your own conversation, interaction and handle time data.
- Track interactions per conversation as its own forecast line; it moves more than conversation volume.
- If agents handle several threads at once, check the chat concurrency guide before trusting the numbers.
- Size the underlying queue with the Erlang C Calculator and set shrinkage with the Shrinkage Calculator.
Frequently asked questions
Which handle time should I plan with?
The handle time of one interaction: one agent reply, including reading and wrap up. A conversation stays open for hours, but the agent is only working while writing a reply, so open time massively overstates the work.
What is an interaction?
One time an agent picks up the thread and replies. A conversation with a first reply and 4 follow ups is 5 interactions. Forecast interactions per conversation as its own line, because it moves more than conversation volume.
Why does the response target barely change the answer?
Each reply is a small job, usually a couple of minutes, so even a 15 minute target gives the queue plenty of room. Past a few minutes the staffing in the busy hour is set by the workload, not the promise.
Why divide by (1 - shrinkage) instead of multiplying?
Shrinkage is a share of the roster, not of the floor number. If 30 percent of the roster is off the floor, the roster must be the floor number divided by 0.7. Multiplying by 1.3 understates it.
Related reading: read the full guide on which handle time to plan with.
More tools
See all toolsService Level Recovery Calculator
Behind on service level mid-month? Get the volume-weighted SL you need for the rest of the period, and see instantly if the target is already unreachable.
Open calculatorErlang C Staffing Calculator
Turn call volume, AHT and service level targets into required agents, occupancy, ASA and shrinkage-adjusted headcount.
Open calculatorErlang A Calculator
Staffing with abandonment built in: when callers give up and hang up, Erlang A sizes the team more honestly than Erlang C.
Open calculator