Home / Tools / Erlang C Staffing Calculator
FREE TOOL: NO SIGNUPHow many agents that interval actually needs
Enter the calls, the handle time and the standard you are held to. This returns the productive agents required, the roster you have to schedule once shrinkage takes its cut, and the occupancy that roster runs at. If your standard cannot be met, it says so instead of returning a comfortable number.
Everything runs in this page. Nothing you type is uploaded, stored on a server, or seen by me.
| Traffic intensity | - |
|---|---|
| Productive agents required | - |
| Added to cover shrinkage | - |
| Service level achieved | - |
| Occupancy at that roster | - |
-
One interval is not a schedule
This sizes a single interval in isolation. A real day is dozens of intervals with a demand curve, and the staffing question is where your existing roster fails to line up with it, not what one busy half-hour needs. Nothing here costs the answer, either: two rosters that both clear the standard can differ by a lot of money.
Erlang C also assumes nobody hangs up. If your abandon rate is meaningful, the model is sizing for demand that partly walked away, and it will overstate what you need. Calibrate against your own interval results before you take any of this to a budget conversation.
The paid tool plans a full day of intervals, imports interval demand from CSV, finds the gaps against the agents you already schedule, attaches labour cost, and connects answer rate and conversion to gross profit so the staffing question and the money question get answered together.
Would rather not run it yourself? The operations diagnostic applies this analysis to your actual numbers and writes the findings up for your leadership team.
The paid version carries a 30-day usefulness guarantee: load real data, follow the instructions, and if it does not produce a usable staffing or profit decision, request a refund within 30 days.
How the numbers are produced
- Traffic intensity = calls multiplied by average handle time, divided by the interval in seconds.
- Delay probability comes from Erlang C, computed from the Erlang B recursion.
- Service level = 1 minus the delay probability, decayed by how far staffing exceeds traffic over the answer target.
- The engine tries increasing productive-agent counts and takes the first that meets both the service standard and the occupancy cap. If no count up to 300 qualifies, the interval is reported as infeasible rather than given a number.
- Roster = productive agents divided by one minus shrinkage, rounded up. You cannot schedule a fraction of a person.
- Staffing at or below traffic intensity is treated as an unstable queue and reported as zero service level, because the queue grows without bound.
Common questions
- Does anything I type get sent anywhere?
- No. The model runs in your browser as JavaScript on this page. There is no account, no upload and no server call.
- What is the difference between productive and rostered agents?
- Productive agents are the people actually available to take calls in that interval. Rostered agents are how many you have to schedule to end up with that many, once shrinkage takes its cut. Shrinkage covers breaks, training, meetings, absence and anything else paid but not on the queue. Schedule the productive number and you will miss your service level every day.
- Why does occupancy matter if I am hitting service level?
- Occupancy is the share of the interval a productive agent spends handling calls. A roster can clear the service standard while running agents at 95 percent occupancy, which is where burnout, errors and attrition come from. That is why this calculator treats the occupancy cap as a hard constraint and adds agents until both tests pass.
- What does INFEASIBLE mean?
- No agent count up to 300 satisfies both your service standard and your occupancy cap for that interval. Usually the occupancy cap is doing it. The honest answer is that the standard cannot be met as specified, so the calculator says so rather than returning a number that is not real.
- When should I not trust this?
- Erlang C assumes calls arrive independently, handle time is stable, nobody abandons the queue and agents are interchangeable. It gets shaky on very small or bursty volumes, on queues with heavy abandonment, on blended or asynchronous channels, on multiple skill groups without pooled routing, and during outages or promotions. Calibrate against your actual interval results.
- What does the paid tool add?
- A full day of intervals rather than one, CSV import of interval demand, schedule-gap detection against agents you already have, monthly labour cost, an answer-rate and conversion profit bridge, a generalist-versus-specialist pilot test, and a prioritised action plan. One-time purchase, runs offline the same way.