Call center: how many agents do we need?
A support center is missing its answer-time target at busy hours, and the client wants to know whether to hire or reshape shifts. Here's how to set that up in Quodsi.
The business question
Your client asks: "How many agents do we need at each time of day to answer calls fast enough, without paying for idle time?"
Calls arrive unevenly and each call takes a different length of time. An average-based staffing sheet can look fine while callers still wait at the peak. Simulation shows you that wait.
How a call center maps to Quodsi
| In the call center | In Quodsi | Notes |
|---|---|---|
| Calls | Entity | Use separate entity types if billing and technical calls behave differently. |
| Calls coming in | Generator | Start with a single average time between calls. |
| Talk time and wrap-up | Activity | One Activity for each stage you want to measure. |
| Agents | Resource | Capacity is the number of agents. Requires the Intermediate view or higher. |
| Transfers to a second tier | Connectors with probability routing | Set weights from the client's transfer rate. They don't need to add up to 100. |
Set it up
- Draw the path of a call: arrival, talk, wrap-up, and an optional transfer to a second tier.
- Convert the diagram to a model. See Quodsi for draw.io.
- On the Generator, enter the average time between calls.
- On each Activity, enter the talk or wrap-up time. Use a range rather than one number, so that variability is in the model.
- Add agents as a Resource, and have the talk and wrap-up Activities use it.
- Set the run length and replications, then run the baseline.
If one agent stays with a call through talk and wrap-up, use Seize and Release actions, available from the Intermediate view. Without them, a call can lose its agent between the two steps. The Seize and release: one nurse stays with each patient example shows the pattern, and Connector routing: probability, entity type, state condition shows the routing. See how to open an example.
Data to ask your client for
- Call volumes by time of day and day of week
- Talk time and wrap-up time, as a range or a full history
- Transfer rate between tiers
- Agents on shift by time of day
- Loaded hourly cost per agent, if you want a cost answer
What to change
- Agent count. Put a lever on the Resource's capacity, and sweep a range in a study.
- Call volume. Test next year's growth by shortening the time between calls.
- Handle time. Test a better knowledge base or script by shortening talk time.
- Transfer rate. Test better first-call resolution by changing the Connector weights.
What to look for
- Time callers spend waiting. This is the number to compare with the client's answer-time target. Look at more than the average.
- Agent utilization alongside the queue. A high utilization leaves no slack for variability. A low one means you're paying for idle time. See the Metric glossary.
- Where the wait builds up. Is it the first tier or the second? Hiring into the wrong tier won't help.
- The cost of each option. Use the Tradeoff View to compare wait against cost across your scenarios.