Service Level Mathematics for Voice, Chat and Email

From WFM Labs

Service Level Mathematics for Voice, Chat and Email is the account of how a workforce function computes the staffing requirement for each of its channels against that channel's service goal, and how it combines them when the same agents serve more than one. It matters because the three channels have three different goal statements, so three different models, and a function that runs its voice model on its email channel, or its email arithmetic on chat, produces a requirement that is precise and wrong. The page is part of the Workforce Data Definitions Framework, and its second purpose is the framework's: every input a model consumes is named with the ledger tier or register row it comes from, so that a requirement can be traced to measured time. Erlang C, Erlang-A, Service Level, Little's Law Applied to WFM and Simulation Methods in Workforce Management carry their own derivations; this page states what each model assumes, when it applies and what it needs, and does not restate what those pages hold.

A result is Established when published in peer-reviewed queueing or operations literature, and Inferred when it applies established material to a planning method the literature does not itself validate. The two most used shortcuts in multichannel planning, the concurrency-adjusted chat load and the email workload model with a backlog, are both Inferred: defensible, in common practitioner use [A], and without a peer-reviewed closed form.[1] Numbers in the worked examples are synthetic and graded [E]; values computed from them are [C] on [E] inputs, per Human Gates and Number Grades.

Voice

Goal. X percent of calls answered within t seconds, defined on Service Level, optionally paired with an abandonment ceiling. The unit is the interval, because arrivals vary within the day and a daily average hides the intervals that fail.[2]

Model. Erlang C assumes Poisson arrivals at a stationary rate, exponential handling times, identical agents, a single first-come queue and patient callers (Established).[3] The one output this page needs is the delay tail: with c agents, offered load a=λs in erlangs and mean handling time s,

P(W>t)=C(c,a)e−(c−a)t/s

where C(c,a) is the probability of any wait, derived on Erlang C. Erlang A replaces patient callers with an exponential patience distribution and returns abandonment as a second output (Established).[4][5] Erlang-A states when each applies: Erlang C where abandonment is small and patience stable, Erlang A wherever abandonment is itself a managed metric. Both are solved per interval; the requirement is the smallest c that meets the goal.

Inputs. Arrivals per interval, from the telephony contact record (CON-01). Handling time as talk, hold and after-contact work, from ledger tier 6 for voice (AHT-01, sourced from ST-001). The goal and threshold, from the definitions register. Mean patience, for Erlang A, estimated from abandonment timestamps as Erlang-A describes. Shrinkage enters after the interval requirement, through Workload Units and the Roll-Up to FTE; it is not a model input.

Worked example. One interval: 240 calls per hour [E], handling time 300 seconds [E], goal 80 percent in 20 seconds [E]. Offered load is 20 erlangs [C]. Erlang C gives 77.2 percent at 24 agents and 85.0 percent at 25, so the requirement is 25 agents [C] at an implied occupancy of 80.0 percent [C]. Erlang A with mean patience 120 seconds [E] gives 81.6 percent at 22 agents with 6.5 percent abandonment, and 86.1 percent at 23 with 4.8 percent [C]. The service level here is calls answered within 20 seconds divided by all offered calls; if calls that abandon within 20 seconds are not counted as failures, 21 agents give 80.8 percent [C], so the definition chosen on Service Level moves the requirement by one agent. On the first definition, the Erlang A requirement with the service goal alone is 22; with an abandonment ceiling of 5 percent [E] it is 23. The three agents between the models are the cost of assuming nobody hangs up; the one agent between the two Erlang A answers is the price of the ceiling, the trade-off Erlang A makes explicit.

Multi-skill. Once agents carry several skills and calls route across them, no closed form exists. The requirement comes from discrete-event simulation of the routing as configured, or from a fast multi-skill heuristic for what-if work (Established).[6][7] Simulation Methods in Workforce Management carries the method and a worked case; Pooling Architecture in Service Workforces carries the pooling penalty and the result that two well-chosen skills per agent capture most of the benefit of full cross-training in simulated multi-skill centres. The multi-skill model needs one input the single-skill model does not: the skill assignment table, a register object with an owner.

Failure modes. Pooled skills treated as one queue, which understates the requirement by the dedication penalty. Erlang C where abandonment is material, which overstates it. A handling time contaminated by non-voice work done in a voice state, the availability bleed on Production Accounting for Blended Agents, which the model cannot detect.

Chat

Goal. A share of sessions accepted within a threshold, as for voice, with a quality floor stated beside it, because the throughput gained from concurrency is paid for in customer time in service.

Model. The peer-reviewed treatment models each chat agent as a processor-sharing server with a concurrency limit: attention is divided among the sessions in hand, and per-session speed falls as sessions are added (Established).[8] Staffing and routing with impatient customers have asymptotically optimal linear-programme solutions,[9] customers abandon during service as well as before it,[10] and the shape of the service and patience distributions materially changes the answer.[11] The desk model is a shortcut, graded Inferred: measure the agent's focus time per session sf, treat it as the handling time, and apply Erlang C or Erlang A to the load in agent-erlangs,

aagent=λsf,sf≈selapsedk

where the second relation holds only if realised concurrency k is a time-weighted average measured consistently with elapsed session time; Chat Concurrency and Handle Time defines the measurement. The shortcut must be checked by simulation of the concurrency rule and the routing, the general fallback when in-service abandonment and routing interact.

Inputs. Session arrivals per interval, from the chat session log (CON-01 for chat, sourced from ST-011). Focus time per session (AHT-01 for the chat channel, sourced from ST-013), from the log's attention stamps or desktop capture, landing in ledger tier 6; elapsed session time is a lifecycle fact, not a ledger entry. Realised concurrency per interval, measured, never the platform maximum. Abandonment flags before and during service. The goal and quality floor, from the register.

Worked example. One interval: 90 sessions per hour [E], elapsed session time 12 minutes [E], focus time 5 minutes [E], so realised concurrency 2.4 [C], goal 80 percent accepted in 60 seconds [E]. Load in agent-erlangs is 7.5 [C]. Erlang C gives 62.3 percent at 9 agents and 81.4 percent at 10, so the requirement is 10 agents [C] at 75.0 percent occupancy [C]. Had elapsed time been used as handling time, the load would read 18 erlangs and the requirement 22 agents [C], more than double for the same work. The simulation check then asks whether 10 agents holding 2.4 sessions each sustain the quality floor; field evidence is that multitasking lengthens in-service delay and lowers resolution,[12] so a requirement computed at high concurrency may be unachievable at the quality the goal states.

Failure modes. Concurrency used as a target, which double counts the gain because per-session speed and concurrency are not independent. Elapsed time as handling time. One daily concurrency applied to every interval. One mean across mixed session types. Abandonment ignored on either side of acceptance.

Email and cases

Goal. A share of items closed within a window in hours or days: a statement about the age distribution of closed work, not about a wait at an instant, which is why the voice model does not transfer.

Why Erlang C collapses here. The delay tail above is exponential in the ratio of the goal window to the handling time (Established formula, Inferred implication). The research brief's check, reproduced here: at 20 erlangs (120 items an hour at 10 minutes each) and 21 agents, the probability of waiting more than 20 seconds is 0.74, and of waiting more than eight hours about 10−21 [C]. Any hours-scale target is met by one agent above the offered load, so the model reduces to "staff to workload plus one" and says nothing about the day-to-day variation that actually breaches a time-to-close goal. Three further assumptions fail, and they do not share a grade. The arrival rate is not stationary across a window spanning the daily cycle (Established in principle). Service is not first-come by whichever agent frees up, because email is batched, sorted and pended by agent choice (Inferred). Pace depends on queue length, since email-agent throughput history is censored by work availability and by the incentive to slow down when work is scarce (Established).[13]

Model. The workload model (Inferred, with practitioner support) plans capacity per shift or day rather than delay per item.[14] With item types i arriving at Ai per day with handling time hi minutes, an opening backlog B0 to be cleared whose items have mean handling time h¯, and p productive hours per agent per day on this channel,

H=∑iAihi60+B0h¯60,N=H+bufferp

where the buffer is sized from the variance of daily arrivals and handling time to the percentile the goal demands. Backlog is a stock rolled forward, Bt=Bt−1+At−Xt, with arrivals At and closures Xt in the period and closures bounded by capacity; Workload Model for Asynchronous Channels carries the lifecycle and the ageing profile. Little's Law supplies two checks (Established): the mean age of queued work is about backlog divided by throughput when throughput is steady, and a backlog that grows period after period means demand exceeds capacity whatever the average shows.[15][16] It gives the mean only; the goal is met or missed on the tail, so the ageing profile is checked after the arithmetic, not inferred from it.

When a deadline model still applies. Where the window is tens of minutes to about two hours and the queue is live, worked first-come by dedicated agents, a delay-probability model is defensible (Inferred, on Established components): Erlang A or simulation rather than Erlang C, used for the delay tail, not for abandonment, which has no meaning for an item waiting in a tool. Simulation-based staffing optimisation is the general method when variance must be carried explicitly.[17]

Inputs. Arrivals by item type, from the work-item tool's arrival stamp (CON-01 for the channel, with the items-per-contact factor). Handling time per item as the sum of touch durations (AHT-02, RG-008, sourced from ST-007), from a work-item timer or desktop capture (Email Handle Time Measurement), landing in ledger tier 6; this is the row most estates lack, and where it is a sampled figure the whole requirement is [E]. Backlog and its age distribution, from the tool's open-item snapshot. Productive hours per agent on this channel, from ledger tier 5 net of time in other channels. Daily variance, from the same rows over a planning history.

Worked example. One day: 1,200 items [E] at 9 minutes each [E], opening backlog 300 items [E] to be cleared within the day, 6.2 productive hours per agent per day on this channel [E], goal 90 percent closed within 24 hours [E], standard deviation of daily arrivals 150 items [E]. Base workload 180.0 hours, backlog 45.0 hours, 225.0 hours in all, or 36.3 agents before any buffer [C]. A buffer at the ninetieth percentile of daily arrivals, 1.28 standard deviations, adds 192 items or 28.8 hours, 4.6 agents, for a requirement of 41 agents [C]. Two cautions on that buffer. It covers a share of days, while the goal is a share of items, and the two coincide only if the days above the buffer miss the goal on a small share of their items; the ageing profile, not the buffer, settles that. And handling-time variance is left out of the example; in practice it enters the buffer beside arrival variance. The backlog in the example is cleared within the day, so the Little's Law check does not bite on it; it would on a standing backlog, where 300 items at a steady throughput of 1,200 a day implies a mean age of six hours [C], inside the window on average and silent about the tail.

Failure modes. Elapsed open-to-close time as handling time, which inflates the requirement by the pend time. Erlang C against an hours-scale target. Availability bleed, in which the work is done but invisible to the channel. Handling speeds from a history censored by scarce work. A buffer omitted, so the plan meets the goal on the mean day and misses it on the days that matter.

Combining channels

When the same agents serve voice and email, the peer-reviewed form of the problem is a delay-constrained class sharing servers with a deferrable class (Established). A threshold rule, which assigns agents to the deferrable class only when the number of free agents exceeds a reserve, is optimal for equal service-time distributions and a close approximation otherwise.[18] The two-class problem as a constrained Markov decision process yields priority policies whose parameters come from a linear programme.[19] An adaptive threshold reserves agents for calls under time-varying arrivals while maximising email throughput within a call-wait limit.[20] Markov chain models of a blended centre have been benchmarked against detailed simulation, the reference model when closed forms stop being tractable.[21] The lower class in the earliest of these papers is outbound calling; reading it as email is Inferred, and the 2015 paper makes the reading explicit.

The planning consequence (Inferred) is that voice holds priority, deferrable work starts only when idle capacity exceeds the reserve, and the reserve is the control variable. A share of an available state is not a policy; a reserve rule is. The reserve cannot be read off the voice model. In the voice example, 25 agents against 20 erlangs leave five agent-hours idle per hour on average [C], and a static reading of the Erlang C state distribution puts about 3.5 agents above a reserve of two [C]. A discrete-event simulation of the same pool, with voice priority and non-preemptive nine-minute email items started whenever free agents exceed the reserve, shows why that reading fails: at a reserve of two, email absorbs about 4.6 agents, 37 hours a day, and the voice service level falls to about 39 percent [C], because an agent inside an email item is not free when the next call arrives. Holding 80 percent in 20 seconds needs a reserve of about 10 of the 25 agents, at which email gets about 1.1 agents, roughly 9 hours a day [C], all by simulation. The reserve is set by the two-class model or by simulation against the voice goal, never by subtracting a number from idle time.

Simulation replaces closed form (Inferred rule, Established practice) when any of the following holds: more than two classes or skills; time-varying arrivals with shift constraints; chat concurrency or in-service abandonment; agents of different speed; routing beyond a single priority; non-exponential service, which one detailed study of call-centre data found to be lognormal.[22] Multichannel Capacity Model Assembly carries the order in which the channel requirements are then assembled and where double counting enters.

What the combined model needs from the registers. Everything the channel models consume, plus four objects none of them needs alone: the reserve threshold, as a register entry with an owner rather than a routing setting; the time-in-state split by channel for every blended agent, from ledger tier 6, so that email worked inside a voice available state is counted once and in the right channel; the routing rule as configured, under Vendor Change Control for Routing; and both goals with their pairing, because a model that holds the voice goal and reports email throughput reports against two definitions at once.

Inputs and their source rows

Input Ledger row or register Grade required
Voice arrivals per interval telephony contact record; CON-01 for voice [M]
Voice handling time (talk, hold, after-contact work) ledger tier 6, voice; AHT-01, sourced from ST-001 [M], passing T-06 Availability-bleed on Reconciliation Tests for Time Accounting
Service goals, thresholds, abandonment ceiling, quality floor definitions register entries and their pairing signed
Mean patience (Erlang A); skill assignment table (multi-skill) abandonment timestamps in the contact record; the capability register beside the definitions register [M] or [E] with the method named; named owner
Chat session arrivals per interval chat session log; CON-01 for chat, sourced from ST-011 [M]
Focus time per session ledger tier 6, chat; AHT-01 for chat, sourced from ST-013; attention stamps or desktop capture [M]; an [E] here makes the chat requirement [E]
Realised concurrency per interval; abandonment before and during service session log, time-weighted; session flags [M], never the platform maximum
Item arrivals by type (email) work-item tool arrival stamp; CON-01 with items per contact [M]
Handling time per item ledger tier 6, asynchronous; AHT-02 (RG-008), sourced from ST-007 on the Source of Truth Register; work-item timer or desktop capture [M] where a timer exists; [E] with range from a sample otherwise
Backlog and age distribution work-item tool open-item snapshot [M]
Productive hours per agent per day on the channel; variance of daily arrivals and handling ledger tier 5, net of other-channel in-work time; the arrival and handling rows over the planning history [C] from a closed ledger
Reserve threshold (blended) register entry, owner the real-time lead signed; SET LOCALLY
Time-in-state split by channel (blended agents) ledger tier 6 per channel, after the precedence rule on Agent State Taxonomy and Activity Codes [M]; a failed T-04 Cross-system double count drops the losing channel to [A]
Shrinkage (after the model, in the roll-up) ledger tiers 1 to 5; SHR-01 with its denominator stated, sourced from ST-010 [M] or [C]

A requirement inherits the weakest grade on this table, as its lineage card records (LN-004, the email model, feeding LN-003, the multichannel requirement, on Data Lineage Card for Planning Models); a chain of all-[M] inputs yields a [C] requirement, never [M]. On most mixed estates the weakest row is handling time per item, which is why the framework's audit runs before the mathematics.

Maturity Model Position

Four scales on this wiki use the word level; the launch page states which is which. On the WFM Labs Maturity Model™ a function that runs Erlang C per interval on voice and a workload calculation on email, with inputs it can name, is at Level 2. It is at Level 3 when each channel runs the model this page names for it, with concurrency measured rather than targeted, a buffer on the email requirement and a reserve rule for blended agents, and every input carries the row and grade above, because only then can a staffing rule be released on inputs whose catch rate can be published per Human Gates and Number Grades. It is at Level 4 when the combined requirement comes from a simulation of the routing as configured, read from the registers, with the closed forms kept for sensitivity checks.

See Also

References

  1. ↑ Gans, N., Koole, G., & Mandelbaum, A. (2003). "Telephone Call Centers: Tutorial, Review, and Research Prospects". Manufacturing & Service Operations Management 5(2), 79–141. doi:10.1287/msom.5.2.79.16071.
  2. ↑ Defraeye, M., & Van Nieuwenhuyse, I. (2016). "Staffing and scheduling under nonstationary demand for service: a literature review". Omega 58, 4–25. doi:10.1016/j.omega.2015.04.002.
  3. ↑ Gans, Koole & Mandelbaum (2003), section 4.
  4. ↑ Garnett, O., Mandelbaum, A., & Reiman, M. (2002). "Designing a call center with impatient customers". Manufacturing & Service Operations Management 4(3), 208–227. doi:10.1287/msom.4.3.208.7753.
  5. ↑ Mandelbaum, A., & Zeltyn, S. (2009). "Staffing many-server queues with impatient customers: constraint satisfaction in call centers". Operations Research 57(5), 1189–1205. doi:10.1287/opre.1080.0651.
  6. ↑ Wallace, R. B., & Whitt, W. (2005). "A staffing algorithm for call centers with skill-based routing". Manufacturing & Service Operations Management 7(4), 276–294. doi:10.1287/msom.1050.0086.
  7. ↑ Pot, A., Bhulai, S., & Koole, G. (2008). "A simple staffing method for multiskill call centers". Manufacturing & Service Operations Management 10(3), 421–428. doi:10.1287/msom.1070.0173.
  8. ↑ Luo, J., & Zhang, J. (2013). "Staffing and control of instant messaging contact centers". Operations Research 61(2), 328–343. doi:10.1287/opre.1120.1151.
  9. ↑ Tezcan, T., & Zhang, J. (2014). "Routing and staffing in customer service chat systems with impatient customers". Operations Research 62(4), 943–956. doi:10.1287/opre.2014.1284.
  10. ↑ Legros, B., & Jouini, O. (2019). "On the scheduling of operations in a chat contact center". European Journal of Operational Research 274(1), 303–316. doi:10.1016/j.ejor.2018.09.040.
  11. ↑ Long, Z., Tezcan, T., & Zhang, J. (2024). "Routing and staffing in customer service chat systems with generally distributed service and patience times". Manufacturing & Service Operations Management 26(5), 1674–1691. doi:10.1287/msom.2022.0114.
  12. ↑ Goes, P. B., Ilk, N., Lin, M., & Zhao, J. L. (2018). "When more is less: field evidence on unintended consequences of multitasking". Management Science 64(7), 3033–3054. doi:10.1287/mnsc.2017.2763.
  13. ↑ Hasija, S., Pinker, E., & Shumsky, R. A. (2010). "Work expands to fill the time available: capacity estimation and staffing under Parkinson's Law". Manufacturing & Service Operations Management 12(1). doi:10.1287/msom.1080.0250.
  14. ↑ Reynolds, P. (2005). "Evaluating staffing tradeoffs". Connections Magazine, July/August 2005. connectionsmagazine.com.
  15. ↑ Little, J. D. C. (1961). "A proof for the queuing formula: L = λW". Operations Research 9(3), 383–387. doi:10.1287/opre.9.3.383.
  16. ↑ Little, J. D. C. (2011). "Little's Law as viewed on its 50th anniversary". Operations Research 59(3). doi:10.1287/opre.1110.0940.
  17. ↑ Atlason, J., Epelman, M. S., & Henderson, S. G. (2008). "Optimizing call center staffing using simulation and analytic center cutting-plane methods". Management Science 54(2). doi:10.1287/mnsc.1070.0774.
  18. ↑ Bhulai, S., & Koole, G. (2003). "A queueing model for call blending in call centers". IEEE Transactions on Automatic Control 48(8), 1434–1438. doi:10.1109/TAC.2003.815038.
  19. ↑ Gans, N., & Zhou, Y.-P. (2003). "A call-routing problem with service-level constraints". Operations Research 51(2), 255–271. doi:10.1287/opre.51.2.255.12787.
  20. ↑ Legros, B., Jouini, O., & Koole, G. (2015). "Adaptive threshold policies for multi-channel call centers". IIE Transactions 47(4), 414–430. doi:10.1080/0740817X.2014.928965.
  21. ↑ Deslauriers, A., L'Ecuyer, P., Pichitlamken, J., Ingolfsson, A., & Avramidis, A. N. (2007). "Markov chain models of a telephone call center with call blending". Computers & Operations Research 34(6), 1616–1645. doi:10.1016/j.cor.2005.06.019.
  22. ↑ Brown, L., Gans, N., Mandelbaum, A., Sakov, A., Shen, H., Zeltyn, S., & Zhao, L. (2005). "Statistical analysis of a telephone call center: a queueing-science perspective". Journal of the American Statistical Association 100(469), 36–50. doi:10.1198/016214504000001808.