# Queueing Concept Card: [Your service process or course]

> A concept card on waiting lines for the operations core of an MBA: why queues form even when capacity exceeds demand,
> how arrival and service variability and utilisation drive waiting time, how to compute waits with the M/M/1 and
> M/M/c (Erlang C) models, how to approximate any single-server queue with Kingman's formula, why pooling works, and how
> managers turn these results into staffing and service design decisions. It is for MBA students in the operations
> course, applicants preparing for quantitative interviews, and managers who run clinics, call centres, help desks or
> checkout lines. The setting is the emergency department of Tallow Creek Medical Center, a fictional regional hospital;
> all data are invented.
> Source basis: Erlang (1917), Kendall (1953), Little (1961), Kingman (1961) and Halfin and Whitt (1981), written up in
> original words, notation and examples. Every number was computed in Python and is shown with the Excel formula.
> Replace every [bracketed] value and every row marked *Example*.

<!--
Guidance: How to use this template
- Read "The idea in plain language" and the waiting-time curve first. If you remember only one thing, remember the
  shape of that curve: waits explode as utilisation approaches 100 percent.
- Rebuild Worked example A in Excel with the formulas shown. Check that you get the same numbers before moving on.
- Complete Worked example B by filling every [ ] before you look at the answer key. Do Exercise C on paper, then in Excel.
- Then replace the Tallow Creek data with a process you know (a clinic, a call centre, a bank branch, a support desk).
- Answer the self-test from memory, then check the answer key. Revisit after two days and after a week (spacing).
- Related templates: mba/mba-operations-guide, mba/mba-process-analysis-card, mba/mba-inventory-card,
  mba/mba-quality-card, mba/mba-decision-analytics-guide, mba/mba-formula-sheet, mba/mba-concept-flashcards,
  mba/mba-error-log, academic/stats-probability-basics, academic/stats-distributions-sheet, ops/capacity-plan,
  ops/service-level-agreement.
-->

## Document control

<!-- Guidance: Record the process you model and where the data came from, so that a reader can reproduce every number. Update the version when you replace the example data. -->

| Field | Value |
|---|---|
| Course or project | [Operations management core / field project / work process] |
| Learner or analyst | [Your name] |
| Process modelled | [Tallow Creek Medical Center emergency department (fictional) / your process] |
| Data source and period | [Arrival log and service-time sample, YYYY-MM-DD to YYYY-MM-DD] |
| Tools | Excel (POISSON.DIST, basic arithmetic); Python 3 with numpy and scipy for the checks |
| Reviewed by | [Tutor, study group or mentor] |
| Last updated | YYYY-MM-DD |
| Version | [0.1] |

## When to use it

<!-- Guidance: Use this card whenever customers, patients, jobs or tickets wait for a resource. Check the "do not use" column before you apply a formula. -->

Use queueing analysis when units arrive at a resource that serves them one at a time (or a few at a time), and the
question is how long units wait, how many are in line, or how much capacity is needed to meet a waiting-time target.

| Use when | Do not use the simple formulas when |
|---|---|
| Arrivals are not scheduled, or appointments are often missed or late | Arrivals are fully scheduled and punctual (use a schedule, not a queue model) |
| You need a staffing level for a service target ("80 percent seen within 15 minutes") | Demand exceeds capacity for long periods (the queue grows without limit; use a fluid or simulation model) |
| You want to compare designs: pooled versus separate lines, standard work, a fast track | Customers abandon, balk or are blocked in large numbers (use Erlang A or simulation) |
| You need a quick, defensible estimate before running a simulation | The process has many linked stages with feedback (use a network model or discrete-event simulation) |
| Demand is fairly stable over the period analysed (one hour, one shift) | Demand changes sharply within the period (analyse each hour separately) |

Typical MBA uses: emergency department and clinic staffing, call-centre agents, bank tellers, airport security lanes,
IT help desks, restaurant kitchens, and server capacity for online services.

## The idea in plain language

<!-- Guidance: Explain the three drivers (utilisation, variability, process time) to someone outside the course in two minutes. If you cannot, reread this section. -->

A queue forms whenever, for a while, more work arrives than the resource can process. That happens even when average
capacity is larger than average demand, because arrivals and service times vary. Three patients may walk in within
two minutes, then nobody for twenty; one patient needs two minutes of triage, the next needs twelve. Idle time lost in
a quiet spell cannot be stored and used later, so the backlog from a busy spell has to be worked off while new
patients keep arriving.

Three drivers decide the average wait:

1. **Utilisation** (how busy the resource is, on average). Waiting time grows with $u/(1-u)$: going from 50 to 75
   percent busy triples this factor (1 to 3), and going from 75 to 90 percent triples it again (3 to 9). Near 100
   percent, the wait has no upper bound.
2. **Variability** of inter-arrival times and service times, measured by their coefficients of variation (standard
   deviation divided by mean). Less variability means shorter waits at the same utilisation.
3. **Process time** itself. Every minute of service time scales the whole waiting time.

Kingman (1961) combined these three into one approximation, often taught as the VUT equation: wait = Variability x
Utilisation x Time. The managerial message: you can cut waits by adding capacity (lower U), by standardising work and
smoothing arrivals (lower V), or by speeding up service (lower T). Pooling resources is a fourth lever: one shared line
served by several servers waits less than several separate lines with the same total capacity.

Two more ideas complete the picture. **Little's law** (Little 1961) links the average number in the system, the
arrival rate and the average time in the system, for almost any stable system. **Kendall notation** (Kendall 1953),
written A/S/c, names the arrival process, the service distribution and the number of servers: M for Markovian
(exponential, memoryless), G for general, D for deterministic. M/M/1 is a single server with Poisson arrivals and
exponential service; G/G/1 is a single server with any distributions.

## Formulas and notation

<!-- Guidance: Keep units consistent: if the arrival rate is per hour, the service rate must be per hour and the waits come out in hours. Multiply by 60 for minutes at the end. -->

| Symbol | Meaning | Unit (example) |
|---|---|---|
| $\lambda$ | Arrival rate | patients per hour |
| $\mu$ | Service rate of one server, $\mu = 1/t_p$ | patients per hour |
| $t_p$ | Mean process (service) time | minutes or hours |
| $t_a$ | Mean inter-arrival time, $t_a = 1/\lambda$ | minutes or hours |
| $c$ | Number of parallel servers | people, rooms, machines |
| $a$ | Offered load, $a = \lambda/\mu$ | busy servers needed on average |
| $u$ (or $\rho$) | Utilisation, $u = \lambda/(c\mu)$ | fraction between 0 and 1 |
| $CV_a$, $CV_s$ | Coefficients of variation of inter-arrival and service times | dimensionless |
| $L_q$, $L$ | Average number waiting, average number in the system | patients |
| $W_q$, $W$ | Average wait in line, average time in the system | minutes or hours |
| $C(c, a)$ | Erlang C: probability that an arrival has to wait | probability |

**Little's law** (any stable system, any distributions):

$$L = \lambda W, \qquad L_q = \lambda W_q, \qquad W = W_q + t_p$$

**M/M/1** (Poisson arrivals, exponential service, one server, $u < 1$):

$$u = \frac{\lambda}{\mu}, \qquad L_q = \frac{u^2}{1-u}, \qquad W_q = \frac{L_q}{\lambda} = \frac{\lambda}{\mu(\mu - \lambda)}$$

**M/M/c** (Erlang C, $u = a/c < 1$):

$$C(c, a) = \frac{\dfrac{a^c}{c!}\dfrac{1}{1-u}}{\displaystyle\sum_{k=0}^{c-1}\frac{a^k}{k!} + \frac{a^c}{c!}\frac{1}{1-u}}, \qquad W_q = \frac{C(c, a)}{c\mu - \lambda}, \qquad P(\text{wait} > t) = C(c, a)\, e^{-(c\mu - \lambda)t}$$

Excel has no Erlang C function, but the formula can be written with Poisson probabilities, which makes it a one-cell
formula:

$$C(c, a) = \frac{P(N = c)}{P(N = c) + (1 - u)\,P(N \le c - 1)}, \qquad N \sim \text{Poisson}(a)$$

`=POISSON.DIST(c, a, FALSE) / (POISSON.DIST(c, a, FALSE) + (1 - u) * POISSON.DIST(c - 1, a, TRUE))`

**Kingman's approximation for G/G/1** (Kingman 1961), accurate when utilisation is high:

$$W_q \approx t_p \left(\frac{u}{1-u}\right)\left(\frac{CV_a^2 + CV_s^2}{2}\right)$$

With exponential arrivals and service ($CV_a = CV_s = 1$) it gives exactly the M/M/1 result. With Poisson arrivals
($CV_a = 1$) and any service distribution it gives exactly the Pollaczek-Khinchine result for M/G/1. For multi-server
queues, course texts use an extension that replaces $u/(1-u)$ with a term in $u^{\sqrt{2(c+1)}-1}/(c(1-u))$; treat that
as an approximation and check it against Erlang C or a simulation.

**Square-root staffing** (from the heavy-traffic analysis of Halfin and Whitt 1981): with offered load $a$, staff
$c \approx a + \beta\sqrt{a}$, where $\beta$ (often 0.5 to 2) sets the service level. It explains why large systems run
at high utilisation with short waits: the safety capacity grows with $\sqrt{a}$, not with $a$.

## Assumptions and limits

<!-- Guidance: List which assumptions your process breaks before you report any number. A model that is wrong in a known direction is still useful if you say so. -->

- **Steady state.** The formulas describe the long-run average with constant $\lambda$ and $\mu$. An emergency
  department has a daily arrival curve (low at 04:00, peak near midday and early evening), so analyse each hour or
  block separately, and remember that a backlog from one hour carries into the next.
- **Stability.** All results require $u < 1$. At $u \ge 1$ the queue grows until something else (abandonment, diversion,
  closing time) stops it.
- **Exponential times.** M/M/c assumes memoryless inter-arrival and service times ($CV = 1$). Walk-in arrivals are often
  close to Poisson; service times usually have $CV$ below 1 for standard tasks and above 1 for mixed case types.
- **First come, first served, infinite patience.** Triage priority, abandonment ("left without being seen") and
  blocking (no free bed) all change the result. Priority does not change the average wait across all patients much in
  a conserving system, but it moves the wait from urgent to less urgent patients.
- **Independent servers with identical speed.** Experienced and new physicians differ; handovers and interruptions
  slow everyone.
- **Kingman is an approximation.** It is good at high utilisation and can be poor below about 50 percent, where waits
  are small anyway.

## How managers use it

<!-- Guidance: Each use below is a decision, not a calculation. Write down the decision you face before you pick the formula. -->

- **Staffing to a service level.** Compute $W_q$ and $P(\text{wait} > t)$ for $c$, $c+1$, $c+2$ servers and choose the
  smallest $c$ that meets the target. This is the logic behind call-centre workforce tools and many ED staffing grids.
- **Valuing capacity against waiting cost.** Compare the hourly cost of one more server with the reduction in
  $L_q$ (people waiting) times a cost per person-hour of waiting, or with the clinical and reputational cost of long waits.
- **Reducing variability.** Standard work, checklists, scheduled arrivals for non-urgent work and splitting simple from
  complex cases cut $CV_s$ and $CV_a$. Kingman shows how much wait this saves without adding staff.
- **Pooling and specialisation.** Shared lines (one line, many servers) cut waits; dedicated lines (fast track for minor
  injuries) cut service-time variability. The design question is which effect is larger.
- **Managing the experience of waiting.** Maister (1985) argued that perceived waits depend on more than minutes:
  unoccupied, unexplained, uncertain and unfair waits feel longer. Information screens, a visible triage, and
  explaining the order of service change satisfaction even when $W_q$ is unchanged.
- **Setting realistic targets.** A target of 95 percent utilisation and short waits at the same time is impossible with
  variable demand. The curve below makes the trade-off visible to a board.

```mermaid
flowchart TD
  A["Define the resource and the service target"] --> B["Measure arrival rate and service time per hour block"]
  B --> C{"Utilisation below 1?"}
  C -- "No" --> D["Add capacity or divert demand first"]
  C -- "Yes" --> E{"One server or several?"}
  E -- "One" --> F["M/M/1 if CV close to 1, else Kingman G/G/1"]
  E -- "Several" --> G["Erlang C (M/M/c) for staffing"]
  F --> H{"Target met?"}
  G --> H
  H -- "Yes" --> I["Check peak hours and sensitivity"]
  H -- "No" --> J["Levers: add capacity, cut variability, pool, speed up service"]
  J --> B
  I --> K["Validate with data or a simulation, then decide"]
```

## The waiting-time curve

<!-- Guidance: Read the chart from left to right and note where each line starts to bend upward. That bend is where small changes in demand cause large changes in waiting. -->

The chart shows Kingman's average wait in line for a single server with a 5-minute mean service time, at utilisations
from 50 to 95 percent. The upper line is the M/M/1 case ($CV_a = CV_s = 1$); the lower line keeps Poisson arrivals but
halves service variability ($CV_s = 0.5$), for example through a standard triage protocol.

```vega-lite
{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
  "description": "Average wait in line versus utilisation for one server with a 5-minute mean service time (Kingman approximation, fictional example)",
  "width": 420,
  "height": 240,
  "data": {"values": [
    {"utilisation": 0.5, "series": "CVa = 1, CVs = 1 (M/M/1)", "wait": 5.0}, {"utilisation": 0.5, "series": "CVa = 1, CVs = 0.5", "wait": 3.1},
    {"utilisation": 0.55, "series": "CVa = 1, CVs = 1 (M/M/1)", "wait": 6.1}, {"utilisation": 0.55, "series": "CVa = 1, CVs = 0.5", "wait": 3.8},
    {"utilisation": 0.6, "series": "CVa = 1, CVs = 1 (M/M/1)", "wait": 7.5}, {"utilisation": 0.6, "series": "CVa = 1, CVs = 0.5", "wait": 4.7},
    {"utilisation": 0.65, "series": "CVa = 1, CVs = 1 (M/M/1)", "wait": 9.3}, {"utilisation": 0.65, "series": "CVa = 1, CVs = 0.5", "wait": 5.8},
    {"utilisation": 0.7, "series": "CVa = 1, CVs = 1 (M/M/1)", "wait": 11.7}, {"utilisation": 0.7, "series": "CVa = 1, CVs = 0.5", "wait": 7.3},
    {"utilisation": 0.75, "series": "CVa = 1, CVs = 1 (M/M/1)", "wait": 15.0}, {"utilisation": 0.75, "series": "CVa = 1, CVs = 0.5", "wait": 9.4},
    {"utilisation": 0.8, "series": "CVa = 1, CVs = 1 (M/M/1)", "wait": 20.0}, {"utilisation": 0.8, "series": "CVa = 1, CVs = 0.5", "wait": 12.5},
    {"utilisation": 0.85, "series": "CVa = 1, CVs = 1 (M/M/1)", "wait": 28.3}, {"utilisation": 0.85, "series": "CVa = 1, CVs = 0.5", "wait": 17.7},
    {"utilisation": 0.9, "series": "CVa = 1, CVs = 1 (M/M/1)", "wait": 45.0}, {"utilisation": 0.9, "series": "CVa = 1, CVs = 0.5", "wait": 28.1},
    {"utilisation": 0.95, "series": "CVa = 1, CVs = 1 (M/M/1)", "wait": 95.0}, {"utilisation": 0.95, "series": "CVa = 1, CVs = 0.5", "wait": 59.4}
  ]},
  "mark": {"type": "line", "point": true},
  "encoding": {
    "x": {"field": "utilisation", "type": "quantitative", "title": "Utilisation", "scale": {"domain": [0.5, 0.95]}, "axis": {"format": ".0%"}},
    "y": {"field": "wait", "type": "quantitative", "title": "Average wait in line (minutes)"},
    "color": {"field": "series", "type": "nominal", "title": "Variability"}
  }
}
```

Reading the chart: at 80 percent utilisation the M/M/1 wait is 20.0 minutes; at 90 percent it is 45.0 minutes; at 95
percent it is 95.0 minutes. The last 15 points of utilisation cost almost five times the wait. Halving service
variability cuts every wait by 37.5 percent (the variability factor falls from 1 to 0.625), which is the same relief as
a large capacity increase at high utilisation.

## Worked example A (fully solved): physician staffing in the emergency department

<!-- Guidance: Follow the steps in order and rebuild each cell in Excel. Check Little's law at the end: it catches most unit errors. -->

**Situation (fictional).** Between 10:00 and 14:00, patients who have been triaged at Tallow Creek Medical Center's
emergency department arrive for a physician at an average of 6 per hour. A physician spends on average 25 minutes per
patient (assessment, orders, review, disposition). The department currently staffs 3 physicians in this block. The
clinical director's target: the average wait for a physician below 15 minutes, and no more than 20 percent of patients
waiting longer than 15 minutes. Should the department add a fourth physician?

Assume Poisson arrivals and exponential service times (M/M/c) as a first estimate.

**Step 1: rates and load.** $\lambda = 6$ per hour, $t_p = 25$ minutes, so $\mu = 60/25 = 2.4$ per hour per physician.
Offered load $a = \lambda/\mu = 6/2.4 = 2.50$ busy physicians on average. Excel: `=6/(60/25)` returns 2.5.

**Step 2: utilisation with 3 physicians.** $u = a/c = 2.5/3 = 0.8333$. Stable, but high.

**Step 3: Erlang C.** Excel: `=POISSON.DIST(3,2.5,FALSE)/(POISSON.DIST(3,2.5,FALSE)+(1-2.5/3)*POISSON.DIST(2,2.5,TRUE))`
returns 0.7022. So 70.2 percent of patients wait for a physician at all.

**Step 4: waits.** $W_q = C/(c\mu - \lambda) = 0.7022/(7.2 - 6) = 0.5852$ hours = **35.11 minutes**. Excel:
`=0.7022/(3*2.4-6)*60`. Time with the physician process included: $W = 35.11 + 25 = 60.11$ minutes.
$L_q = \lambda W_q = 6 \times 0.5852 = 3.511$ patients waiting on average.

**Step 5: share waiting longer than 15 minutes.** $P(W_q > 0.25\text{ h}) = 0.7022 \times e^{-(7.2-6)(0.25)} = 0.5202$.
Excel: `=0.7022*EXP(-(3*2.4-6)*0.25)`. More than half of patients wait longer than 15 minutes.

**Step 6: repeat for 4 and 5 physicians.**

| Physicians $c$ | Utilisation $u$ | Erlang C (P wait) | $L_q$ (patients) | $W_q$ (min) | $W$ (min) | $L$ (patients) | P(wait > 15 min) |
|---|---|---|---|---|---|---|---|
| 3 *(Example)* | 0.8333 | 0.7022 | 3.511 | 35.11 | 60.11 | 6.011 | 0.5202 |
| 4 *(Example)* | 0.6250 | 0.3199 | 0.533 | 5.33 | 30.33 | 3.033 | 0.1300 |
| 5 *(Example)* | 0.5000 | 0.1304 | 0.130 | 1.30 | 26.30 | 2.630 | 0.0291 |

**Step 7: check with Little's law.** For $c = 3$: $L = \lambda W = 6 \times 60.11/60 = 6.011$ patients, which equals
$L_q + a = 3.511 + 2.5$. The units are consistent.

**Step 8: decision.** Three physicians fail both targets by a wide margin. Four physicians meet both (5.33 minutes
average, 13.0 percent above 15 minutes). A fifth physician cuts the average wait by only another 4 minutes. Square-root
staffing gives the same answer quickly: $a + 1 \times \sqrt{a} = 2.5 + 1.58 = 4.08$, so about 4.

**What the numbers do not say.** One extra physician lowers utilisation from 83 to 63 percent, which a finance
reviewer may call idle time. The idle time is the price of short waits with random arrivals; the table shows what each
hour of it buys. Before deciding, check the other hour blocks (the 18:00 to 22:00 peak may need the fourth physician
more), check whether beds downstream are the real bottleneck (a physician who cannot discharge a patient to a bed
stays blocked), and check the exponential assumption with the service-time sample.

## Worked example B (half solved): pooling the fast-track bays

<!-- Guidance: Fill each [ ] before you look at the answer key. The point of the example is the comparison, so write one sentence on why pooling helps. -->

**Situation (fictional).** Tallow Creek's fast track treats minor injuries in two bays. Each bay has its own nurse
practitioner and its own line; patients are assigned to a bay at registration by surname. Each bay receives 2.5
patients per hour and takes on average 20 minutes per patient. The operations manager proposes one shared line served
by whichever practitioner is free first.

**Separate lines (solved).** Each bay is an M/M/1 queue with $\lambda = 2.5$, $\mu = 3$: $u = 0.8333$,
$L_q = u^2/(1-u) = 4.167$ patients per bay (8.333 in total), $W_q = \lambda/(\mu(\mu-\lambda)) = 2.5/(3 \times 0.5) =
1.6667$ hours = **100.00 minutes**, $W = 120.00$ minutes. Excel: `=2.5/(3*(3-2.5))*60`.

**One pooled line (to complete).**

1. Pooled arrival rate $\lambda$ = [ ] per hour; servers $c$ = [ ]; offered load $a$ = [ ]; utilisation $u$ = [ ].
2. Erlang C, Excel `=POISSON.DIST(2,a,FALSE)/(POISSON.DIST(2,a,FALSE)+(1-u)*POISSON.DIST(1,a,TRUE))` = [ ].
3. $W_q = C/(c\mu - \lambda)$ = [ ] hours = [ ] minutes; $W$ = [ ] minutes; $L_q$ = [ ] patients.
4. Utilisation did not change. Explain in one sentence why the wait fell: [ ].
5. A third design replaces the two practitioners with one who works twice as fast (10 minutes per patient). Its
   $W_q$ = [ ] minutes and $W$ = [ ] minutes. Which design gives the shortest total time, which the shortest wait, and
   why might the hospital still prefer the pooled design? [ ]

## Exercise C (unsolved): the CT scanner

<!-- Guidance: Work on paper first. You need Kingman, not M/M/1, because the coefficients of variation are not 1. -->

**Situation (fictional).** Tallow Creek's emergency CT scanner receives on average 3 requests per hour. Inter-arrival
times have a coefficient of variation of 1.2 (requests come in bursts after trauma calls). A scan, including
positioning and cleaning, takes 15 minutes on average with a coefficient of variation of 0.8.

1. Compute the utilisation of the scanner.
2. Estimate the average wait for the scanner and the average time from request to end of scan with Kingman's formula.
   Write the Excel formula.
3. The radiology lead wants the average wait at or below 30 minutes without buying a second scanner. What is the highest
   arrival rate per hour the scanner can accept at the current variability?
4. A standard positioning protocol would cut $CV_s$ to 0.4 at the same mean. What is the new average wait?
5. Name two operational levers, other than the protocol, that would cut $CV_a$, and one risk of each.

## Connections to other cards

<!-- Guidance: Use this list to interleave practice: after this card, solve one problem from a neighbouring card and compare the logic. -->

- `mba/mba-process-analysis-card`: capacity, bottlenecks and flow rate. Queueing adds the waiting caused by variability
  at a non-bottleneck that is "fast enough on average".
- `mba/mba-inventory-card`: safety stock buffers demand variability with inventory; queueing buffers it with time or
  capacity. Both trade a buffer cost against a service level.
- `mba/mba-quality-card`: rework sends units back into the queue and raises utilisation; reducing defects shortens waits.
- `mba/mba-operations-guide`: the course map and the mini-case that uses this card.
- `mba/mba-decision-analytics-guide` and `academic/stats-probability-basics`: Poisson and exponential distributions and
  simulation, the tools to check the formulas.
- `academic/stats-distributions-sheet`: coefficients of variation and the exponential distribution.
- `ops/capacity-plan` and `ops/service-level-agreement`: the same ideas applied to IT services and support desks.

## Common mistakes and misconceptions

<!-- Guidance: Check your own work against this list before you hand in an assignment or a recommendation. -->

- **"Capacity exceeds demand, so there will be no queue."** Average capacity above average demand only makes the queue
  stable. With variability, waits at 85 percent utilisation are long.
- **Mixing units.** Arrival rate per hour with service time in minutes gives nonsense. Convert to one unit first.
- **Planning for 100 percent utilisation.** Any plan that loads a variable process to 100 percent has an unbounded wait.
- **Averaging over the whole day.** A daily average utilisation of 70 percent can hide a midday block above 100
  percent, where the real queue builds.
- **Using M/M/1 for every process.** If service is standardised ($CV_s$ well below 1) M/M/1 overstates the wait; if case
  mix is wide ($CV_s$ above 1) it understates it. Measure the coefficient of variation.
- **Confusing $W_q$ and $W$.** Patients experience the total time; the wait in line is only part of it. State which one
  a target refers to.
- **Treating idle time as waste without pricing waiting.** Idle capacity is the buffer that keeps waits short. Compare
  its cost with the cost of waiting, not with zero.
- **Assuming pooling is free.** Pooled lines need cross-trained staff, shared information and a fair dispatch rule; they
  can also lengthen service if servers lose specialisation.
- **Ignoring abandonment.** If patients leave without being seen, the observed queue looks shorter than the true demand,
  and the model understates the need for capacity.
- **Reporting only averages.** Patients and regulators care about the tail (the share waiting longer than a threshold).
  Report $P(\text{wait} > t)$ or percentiles as well.

## Self-test questions

<!-- Guidance: Answer from memory, in writing, before scrolling to the answer key. Log every miss in your error log. -->

1. A help desk receives 20 tickets per hour; each takes 2.5 minutes on average; one agent handles them. Compute $u$,
   $L_q$ and $W_q$ under M/M/1.
2. State Little's law and give one example where it lets you compute a time from two numbers you can observe.
3. Why do waits rise so sharply as utilisation approaches 1? Answer with the factor in Kingman's formula.
4. What does Kendall notation M/D/1 describe, and is its wait longer or shorter than M/M/1 at the same utilisation? By
   how much?
5. In Worked example A, why does the fourth physician cut the wait by about 30 minutes while the fifth cuts it by only
   about 4?
6. Give two reasons a pooled line may not deliver the gain the formula predicts in practice.
7. A clinic reduces service-time variability from $CV_s = 1$ to $CV_s = 0$ (perfectly standard), with Poisson arrivals.
   By what percentage does the average wait fall?
8. What does square-root staffing imply for the utilisation of a large call centre compared with a small one at the
   same service level?
9. Name two of Maister's observations about the experience of waiting and one design change for each.
10. A manager says: "Our average wait is 10 minutes, so most patients wait about 10 minutes." What is wrong with this
    statement for an M/M/c queue?

## My notes and next steps

<!-- Guidance: This section is yours. Rate your confidence honestly and plan the next review. -->

| Item | My entry |
|---|---|
| Confidence with queueing (1 = lost, 5 = could teach it) | [ ] |
| A queue I see in my work or daily life, with rough $\lambda$, $t_p$ and $c$ | [ ] |
| The lever I would try first there, and why | [ ] |
| Questions for my professor or study group | [ ] |
| Mistakes logged in `mba/mba-error-log` | [Date and short description] |
| Next review date (spacing: +2 days, +1 week, +1 month) | YYYY-MM-DD |
| Next card to study | [mba/mba-quality-card / mba/mba-inventory-card] |

## Sources and further reading

<!-- Guidance: Cite the original works when you use a result in an assignment. Textbooks are named for further reading only. -->

- Erlang, A. K. (1917). Løsning af nogle Problemer fra Sandsynlighedsregningen af Betydning for de automatiske
  Telefoncentraler [Solution of some problems in the theory of probabilities of significance in automatic telephone
  exchanges]. *Elektroteknikeren*, 13, 5-13. In Danish; English translation in Brockmeyer, Halstrøm and Jensen (1948),
  *The Life and Works of A. K. Erlang*. (The origin of the Erlang B and C formulas.)
- Kendall, D. G. (1953). Stochastic processes occurring in the theory of queues and their analysis by the method of the
  imbedded Markov chain. *The Annals of Mathematical Statistics*, 24(3), 338-354.
- Little, J. D. C. (1961). A proof for the queuing formula: L = λW. *Operations Research*, 9(3), 383-387.
- Kingman, J. F. C. (1961). The single server queue in heavy traffic. *Mathematical Proceedings of the Cambridge
  Philosophical Society*, 57(4), 902-904.
- Halfin, S., and Whitt, W. (1981). Heavy-traffic limits for queues with many exponential servers. *Operations
  Research*, 29(3), 567-588.
- Maister, D. H. (1985). The psychology of waiting lines. In J. A. Czepiel, M. R. Solomon and C. F. Surprenant (Eds.),
  *The Service Encounter*. Lexington Books.
- Further reading (by name only): Cachon and Terwiesch, *Matching Supply with Demand*; Hopp and Spearman, *Factory
  Physics*; Anupindi, Chopra, Deshmukh, Van Mieghem and Zemel, *Managing Business Process Flows*; Hillier and
  Lieberman, *Introduction to Operations Research* (queueing chapters).

## Answer key

<!-- Guidance: Check your answers only after you have written your own. For each miss, note why your first answer was wrong. -->

**Worked example B.** (1) $\lambda = 5$ per hour, $c = 2$, $a = 5/3 = 1.6667$, $u = 0.8333$ (unchanged). (2) Erlang C =
0.7576. (3) $W_q = 0.7576/(6 - 5) = 0.7576$ hours = **45.45 minutes**; $W = 65.45$ minutes; $L_q = 5 \times 0.7576 =
3.788$ patients (against 8.333 with separate lines). (4) With separate lines, one practitioner can sit idle while
patients queue at the other bay; a shared line never lets a server idle while anyone waits, so the same capacity is
used when it is needed. (5) One fast server ($\mu = 6$, M/M/1 with $\lambda = 5$): $W_q = 5/(6 \times 1) = 0.8333$ hours
= 50.00 minutes, $W = 60.00$ minutes. The fast single server gives the shortest total time (60.00 against 65.45
minutes) because service is shorter; the pooled pair gives the shorter wait in line (45.45 against 50.00 minutes)
because a second server can start when the first is busy. The hospital may still prefer the pair: working twice as
fast is rarely possible in clinical care, and two practitioners provide resilience when one is called away.

**Exercise C.** (1) $u = 3 \times 15/60 = 0.75$. (2) $W_q \approx 15 \times (0.75/0.25) \times ((1.44 + 0.64)/2) = 15
\times 3 \times 1.04 = 46.80$ minutes; time from request to end of scan $= 46.80 + 15 = 61.80$ minutes. Excel:
`=15*(0.75/(1-0.75))*((1.2^2+0.8^2)/2)`. (3) Set $15 \times (u/(1-u)) \times 1.04 = 30$, so $u/(1-u) = 1.9231$ and
$u = 0.6579$; the highest arrival rate is $0.6579 \times 4 = 2.632$ requests per hour. (4) With $CV_s = 0.4$ the
variability factor is $(1.44 + 0.16)/2 = 0.80$, and $W_q = 15 \times 3 \times 0.80 = 36.00$ minutes. (5) Examples:
book non-urgent scans from inpatient wards into fixed slots (risk: delays for patients whose condition changes);
stagger the release of orders after a trauma call through a radiology coordinator (risk: the coordinator becomes a new
bottleneck and adds delay).

**Self-test.**

1. $\mu = 60/2.5 = 24$ per hour; $u = 20/24 = 0.8333$; $L_q = 0.8333^2/0.1667 = 4.167$ tickets;
   $W_q = 4.167/20 = 0.2083$ hours = 12.50 minutes.
2. $L = \lambda W$: average number in the system equals arrival rate times average time in the system. Example: a ward
   with 30 occupied beds on average that admits 10 patients a day has an average length of stay of 3 days.
3. The factor $u/(1-u)$: as $u$ approaches 1, the denominator approaches 0, so the factor (and the wait) grows without
   bound. Each extra point of utilisation near 1 costs more wait than the last.
4. Poisson arrivals, deterministic (constant) service, one server. With $CV_s = 0$ the variability factor is
   $(1 + 0)/2 = 0.5$, so the wait is half the M/M/1 wait at the same utilisation (exact, by Pollaczek-Khinchine).
5. Waiting time is convex in utilisation. With 3 physicians the department sits at 83 percent, on the steep part of the
   curve; the fourth moves it to 63 percent, where the curve is flat, so the fifth adds little.
6. Examples: servers are not interchangeable (skills, licences, languages); travel or handover time between a shared
   line and distant stations; loss of ownership or continuity with a patient; dispatch takes time.
7. The variability factor falls from $(1 + 1)/2 = 1$ to $(1 + 0)/2 = 0.5$, so the average wait falls by 50 percent.
8. Safety capacity grows with $\sqrt{a}$, so its share of total capacity shrinks as the system grows; a large call
   centre can run at a much higher utilisation than a small one with the same waiting target (economies of scale in
   pooling).
9. Examples: unoccupied time feels longer (give patients information or a task, such as completing a form);
   uncertain waits feel longer (show an estimated wait); unexplained waits feel longer (tell patients that triage order
   follows clinical urgency); unfair waits feel longer (make the priority rule visible).
10. Waits in an M/M/c queue are highly skewed: many patients do not wait at all (probability $1 - C$) and a few wait
    much longer than the mean. The average describes almost nobody; report the share waiting and a high percentile.

## Revision history

<!-- Guidance: Add a row each time you change the data, the model or the conclusions. -->

| Version | Date | Author | Change summary |
|---|---|---|---|
| 0.1 | YYYY-MM-DD | [Your name] | First draft from the template |
| 0.2 | YYYY-MM-DD | [Your name] | *Example:* Replaced Tallow Creek data with clinic arrival log, added peak-hour analysis |

## Standard and licence note

Based on the published queueing results of Erlang (1917), Kendall (1953), Little (1961), Kingman (1961) and Halfin and
Whitt (1981), which are cited above. The text, notation choices, examples and data are original; Tallow Creek Medical
Center is fictional. This card is not affiliated with or endorsed by any business school, publisher or author. Check
your course's notation and formula sheet, which may differ in symbols. Template licence: MIT.
