Tool

Enter arrivals, service time, and staffing

Queue model: M/M/c (Erlang C) — random arrivals, random service times, c parallel servers

Staffing what-if

Average wait by number of servers

Comparison

What each staffing level does

ServersUtilizationChance of waitingAverage wait (min)Waiting past target

Example values are pre-loaded so you can see the tool working. Replace them with your own arrival counts and measured service times.

Instructions

How to use this app

  1. Count arrivals per hour for one busy period, for example 10:00 to 14:00, not for the whole day.
  2. Use the measured average time a patient occupies a server, including cleanup or turnover.
  3. Enter the number of parallel servers that are actually staffed and open in that period.
  4. Compare the staffing table to see how much wait each added server removes.
  5. Treat the output as directional. Real clinics have appointments, priorities, and breaks that this model ignores.

What This Patient Flow Analyzer Helps You Decide

This analyzer estimates how long patients wait when they arrive at random and are served by a fixed number of parallel providers, rooms, or stations. It turns three numbers you can measure — arrivals per hour, average service time, and the number of servers — into utilization, the chance a patient waits, and the average and target-exceeding waits.

Use it for outpatient clinics, imaging, laboratory draw stations, pharmacy counters, registration desks, and emergency department fast tracks, wherever the main question is "how many servers do we need in this period?"

Core Formulas

MeasureFormulaMeaning
Service rate (μ)60 / average service minutesPatients one server can treat per hour.
Offered load (a)λ / μAverage number of servers kept busy by arrivals, in Erlangs.
Utilization (ρ)a / cShare of time the average server is busy. Must be below 100%.
Chance of waiting (Erlang C)C(c, a)Probability an arriving patient finds every server busy.
Average wait in queueC(c, a) / (cμ − λ)Mean time waiting for a server, in hours (shown in minutes).
Waiting past target tC(c, a) × e−(cμ − λ)tProbability the wait exceeds the target.

Worked Example: Imaging Reception

An imaging department receives 10 patients per hour at midday. Each patient occupies a scanner for 20 minutes on average, and 4 scanners are staffed. The offered load is 10 × 20 / 60 = 3.33 Erlangs, so utilization is 3.33 / 4 = 83%. The model gives a 66% chance of waiting and an average wait of about 20 minutes. Adding a fifth scanner drops utilization to 67%, the chance of waiting to 33%, and the average wait to about 4 minutes.

Notice that one more server, a 25% increase in capacity, cut the average wait by roughly 80%. That non-linear effect is why high-utilization areas feel congested even when nothing looks wrong on average.

How to Interpret the Results

Limits of the Model

Patient Flow and Wait-Time Analyzer Frequently Asked Questions

What queue model does this analyzer use?

It uses the M/M/c model, also called Erlang C: random patient arrivals, random service times, and a number of identical servers working in parallel with a single shared queue. It is a standard planning model for call centers, clinics, and service counters.

Why does waiting rise so quickly above 85% utilization?

As utilization approaches 100%, there is almost no spare capacity to absorb random bursts of arrivals or long visits, so queues build faster than they clear. The relationship is strongly non-linear, which is why a small change near capacity can double average waits.

Can I use this for a scheduled appointment clinic?

Use it with caution. Appointments smooth arrivals, so actual waits are often shorter than the model predicts, but late starts, no-shows, and variable visit lengths push them back up. Treat the result as a rough guide for comparing staffing options.

What service time should I enter?

Enter the measured average time a patient occupies a server, including room turnover or cleanup, for the period you are analyzing. Time stamps from a week of real visits are more reliable than scheduled visit lengths.