Quodsi Docs

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.

There's no published call center model yet, so you'll build this one yourself. This page covers the setup and what to look for. It has no sample figures: every number should come from your client's data.

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 centerIn QuodsiNotes
CallsEntityUse separate entity types if billing and technical calls behave differently.
Calls coming inGeneratorStart with a single average time between calls.
Talk time and wrap-upActivityOne Activity for each stage you want to measure.
AgentsResourceCapacity is the number of agents. Requires the Intermediate view or higher.
Transfers to a second tierConnectors with probability routingSet weights from the client's transfer rate. They don't need to add up to 100.

Set it up

  1. Draw the path of a call: arrival, talk, wrap-up, and an optional transfer to a second tier.
  2. Convert the diagram to a model. See Quodsi for draw.io.
  3. On the Generator, enter the average time between calls.
  4. On each Activity, enter the talk or wrap-up time. Use a range rather than one number, so that variability is in the model.
  5. Add agents as a Resource, and have the talk and wrap-up Activities use it.
  6. 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

What to change

In the Advanced view Use an arrival pattern on the Generator for calls that peak by time of day, and a Work Schedule on the Resource for shifts. Both are worth adding once the simple model works.
This setup assumes that callers wait until they're answered. If hang-ups matter to your client, keep that limit in mind when you present the results.

What to look for

Next