Definition · Coefficient of variationFor a positive random quantity with mean m and standard deviation σ, the coefficient of variation is c = σ/m, and c² is what appears in the formula below. Clockwork — every gap or every service time identical — has c² = 0. A memoryless quantity has c² = 1. Anything burstier than memoryless has c² > 1. c_a describes the gaps between arrivals and c_s the service times; these are the only cs on this course and neither is ever a count of servers.
Kingman's approximation for a single server is then, for ρ < 1:
W_q ≈ (ρ/(1 − ρ)) × ((c_a² + c_s²)/2) × S
utilisation variability the work itself
ρ = 4/5, S = 2 slots
c_a² = 1, c_s² = 1 (4)(1)(2) = 8 the M/M/1 answer
c_a² = 1, c_s² = 0 (4)(1/2)(2) = 4 deterministic service
The first of those two lines is a useful check rather than a coincidence: at c_a² = c_s² = 1 the formula returns exactly ρS/(1 − ρ), which is the W_q = L_q/λ of the M/M/1 lesson. If it did not, the disagreement further down this page would be an arithmetic bug rather than a modelling fact.
The second line is the design lever. Making the service time deterministic — same work, same duration, every time — takes c_s² from 1 to 0 and halves the queueing time, at the same utilisation and the same mean service time. Nothing was bought. An M/D/1 queue waits half of what an M/M/1 queue waits, and the formula says so in one factor.
Where it misses, and by how much
The slotted chain of “Why Queues Form at ρ < 1” has coefficients of its own, and they are not free parameters: Bernoulli arrivals leave geometric gaps with c_a² = 1 − p, and geometric service has c_s² = 1 − q. At p = 2/5 and q = 1/2 that is c_a² = 3/5 and c_s² = 1/2. Feeding the formula its own model's coefficients is the fairest test available.
p = 2/5, q = 1/2, ρ = 4/5, S = 1/q = 2 slots
chain's own c_a² = 1 − p = 3/5 c_s² = 1 − q = 1/2
Kingman (4)((3/5 + 1/2)/2)(2) = 22/5 = 4.4 slots
exact Geo/Geo/1 L_q/p = (8/5)/(2/5) = 4 slots
about 10% high, in the direction it is always high at moderate ρ
The formula is not wrong in the sense of a mistake; it is an approximation being read outside the regime it was derived for, and the error it makes is of the size approximations make. The exact answer here belongs to the discrete chain; the Pollaczek–Khinchine formula that would give the continuous-time answer for general service times is not derived anywhere in this library either, and this course says so rather than implying otherwise.
The lab prints four bars: the formula at whatever coefficients you set, the formula at the chain's own coefficients, the exact chain, and a seeded simulation of the same chain. The simulation is a sample and moves with the seed; the two exact bars do not move; and the gap between Kingman's bar and the exact one is the point of the page.
Used as a sensitivity tool the approximation is excellent, and that is how to use it. It answers “what would halving the variance of this stage be worth?” with a factor, and factors survive an approximate model far better than absolute numbers do. Used as a promise it is a number with an unstated error bar.
- Lower c_s²: make the work uniform — fixed batch sizes, a bounded unit of work, the same code path for every request.
- Lower c_a²: smooth the arrivals — a token bucket in front, jittered retries, client-side pacing rather than synchronised polling.
- Raise neither by accident: unbounded retries and synchronised timeouts are variability injected into c_a², and this formula prices them.