Queueing & Staffing Lab: Erlang C, Stability and Little’s Law Cross-Checks
A showcase-specific guide to utilization, waiting, service levels and unstable staffing.
Model and assumptions
The analytical showcase uses an M/M/c queue: Poisson arrivals at rate λ, exponential service with rate μ per server, c identical parallel servers, one pooled queue, unlimited waiting and no abandonment. Utilization is ρ = λ/(cμ).
Stability comes first
If ρ ≥ 1, the steady-state M/M/c queue is unstable: expected backlog does not converge to a finite steady-state value. The corrected showcase therefore does not display an attractive finite service level for an unstable staffing point; it treats finite-horizon service level as zero for the comparison curve and searches required staffing only above the stability boundary.
Erlang C and service level
For stable staffing, Erlang C gives the probability an arrival must wait. The waiting tail follows P(Wq>t)=C exp[−(cμ−λ)t], so service level within target t is 1 minus that tail. Mean waiting and queue length can then be cross-checked with Little’s Law, Lq=λWq.
Controls and interpretation
Arrival rate, service time, staffing and response target jointly determine utilization and service level. The nonlinear rise in congestion near ρ=1 is the key behavior to observe; average utilization alone is not an SLA.
Validation checks
Any configuration with ρ≥1 must be flagged unstable. Adding an otherwise identical server should not worsen the analytical service level. With λ approaching zero, waiting should approach zero. Little’s Law should reconcile Lq and Wq using consistent time units.
Limits
Real inspection or service systems may violate pooling, exponential service, stationary arrivals or interchangeability. Skills, travel, priorities, breaks and time-varying demand are reasons to graduate to a richer analytical approximation or discrete-event simulation.