Queueing Theory Calculator - M/M/1 and M/M/c Performance

Free queueing theory calculator for M/M/1 and M/M/c models. Compute utilization, average wait time, queue length, and Erlang-C probability of waiting.

Updated: June 16, 2026 • Free Tool

Queueing Theory Calculator

M/M/1 uses one server; M/M/c uses several identical servers and the Erlang-C probability of waiting.

Average number of customers that arrive per unit of time. Must be greater than 0.

Average number of customers one server can handle per unit of time. For M/M/c the system needs c * mu strictly greater than lambda.

Only used for M/M/c. Leave at 2 if you are testing the M/M/1 case.

Results

Traffic intensity (rho)
0%
Average number in system (L) 0customers
Average number in queue (Lq) 0customers
Average time in system (W) 0time units
Average time in queue (Wq) 0time units
Probability system is empty (P0) 0%
Probability of waiting (Pw) 0%

What Is the Queueing Theory Calculator?

A queueing theory calculator is a math tool that turns an arrival rate and a service rate into a full steady-state performance picture for a waiting-line system. Enter the average arrival rate lambda, the per-server service rate mu, and (for multi-server systems) the number of servers c, and the calculator returns traffic intensity, average queue length, average wait time, and the probability that a new arrival must wait. The model is useful for call-center staffing, retail checkout design, hospital triage capacity, manufacturing line balancing, and any other workflow where customers or jobs queue up for a shared resource.

  • Call-center staffing: Estimate the probability that a caller will wait, the expected wait time, and how many agents are needed to hit a target service level.
  • Retail and checkout design: Compare expected wait and queue length when adding a register during a peak hour versus tolerating slightly longer lines.
  • Hospital and clinic triage: Test how the average number of patients waiting changes when arrival or service rate shifts between shifts.
  • IT and DevOps capacity: Model request queues in front of a fixed pool of workers or a fixed set of servers to understand backlog growth.

The calculator implements the two most widely taught Markovian models: the single-server M/M/1 queue and the multi-server M/M/c queue. Both assume Poisson arrivals and exponential service times, which is the cleanest closed-form setting taught in operations research and the one most searchers want when they look up queueing theory formulas.

Because both queueing models assume Poisson arrivals, the Poisson distribution calculator is the natural companion tool for checking the arrival-rate assumption that feeds into this calculator.

How the Queueing Theory Calculator Works

Under the hood, the calculator evaluates the steady-state birth-death balance equations for the chosen queueing model. For M/M/1 every output is a closed-form function of traffic intensity rho = lambda / mu. For M/M/c the same balance equations are applied across c identical servers, and the probability of waiting collapses to the Erlang-C expression built from the offered load a = lambda / mu.

M/M/1: rho = lambda/mu, L = rho/(1-rho), W = 1/(mu-lambda), P0 = 1-rho | M/M/c: rho = lambda/(c*mu), Pw = Erlang-C(a, c), Lq = Pw * rho/(1-rho)
  • lambda (arrival rate): Average number of customers arriving per unit of time, assumed to follow a Poisson process.
  • mu (service rate per server): Average number of customers one server can complete per unit of time, with exponential service times.
  • c (servers, M/M/c only): Number of identical parallel servers; total service capacity is c * mu.
  • rho (traffic intensity): Fraction of total service capacity consumed by arrivals; must stay below 1 for a stable system.

The M/M/c version uses the offered load a = lambda / mu and the standard Erlang-C normalization. The probability of waiting Pw becomes the blocking numerator divided by the blocking denominator, after which Little's law (L = lambda * W) gives the remaining metrics for free.

Worked example: M/M/1 with lambda = 4, mu = 6

Arrival rate lambda = 4 customers per hour, single server with service rate mu = 6 per hour.

rho = 4/6 = 0.6667, L = 0.6667 / (1 - 0.6667) = 2, W = 1 / (6 - 4) = 0.5 hours, Wq = 4 / (6 * (6 - 4)) = 0.3333 hours.

On average 2 customers in the system, 1.33 waiting, 30 minutes in the system, 20 minutes waiting in queue, and 10 minutes of service time.

Use this to size support coverage: a single agent handling 4 calls per hour with a 10-minute average handle time is busy two-thirds of the time, and a third of all arrivals still get served immediately.

According to Wikipedia, M/M/1 queue, for an M/M/1 queue the steady-state mean queue length is Lq = rho^2/(1-rho) and the mean waiting time in queue is Wq = rho/(mu - lambda), provided the utilization rho = lambda/mu is strictly less than 1.

According to Wikipedia, Little's law, Little's law states that the long-term average number of customers in a stationary system equals the long-term average effective arrival rate multiplied by the average time a customer spends in the system (L = lambda * W), and the relationship is not influenced by the arrival-process distribution, the service distribution, or the service order.

When you aggregate wait times over many customers, the resulting distribution looks approximately normal, so the normal distribution calculator is useful for turning an average wait into a service-level target.

Key Concepts Behind the Calculator

Four ideas drive every number the queueing theory calculator returns. Skim them once and the formulas stop feeling arbitrary.

Poisson arrivals

Customers arrive independently at a constant average rate lambda, so the number of arrivals in any fixed window follows a Poisson distribution. The Poisson distribution calculator shares the same underlying assumption, which is why the two tools often appear together in operations research coursework.

Exponential service

Each service time is drawn from an exponential distribution with mean 1 / mu, which gives the memoryless property the M/M/c balance equations need. Real service times are rarely perfectly exponential, but the model is a useful first cut.

Traffic intensity rho

The single most important number in queueing theory. For M/M/1 it is lambda / mu; for M/M/c it is lambda / (c * mu). When rho approaches 1, wait times grow without bound even though the system is still technically working.

Erlang-C and the probability of waiting

For M/M/c, the chance that a new arrival must wait rather than be served immediately is the Erlang-C value, a closed-form function of the offered load a = lambda / mu and the number of servers c. It is the same quantity call centers use to set service-level targets.

To estimate lambda and mu from a real workload you typically need a few hundred observations, and the sample size calculator helps you decide when your measured rates are stable enough to plug into the model.

How to Use the Queueing Theory Calculator

Walk through these steps whenever you open the tool. The defaults correspond to a classic textbook M/M/1 example so you can verify behavior before plugging in your own numbers.

  1. 1 Pick the queueing model: Choose M/M/1 for a single-server system or M/M/c for several identical servers. The server-count field below stays available either way; M/M/1 effectively assumes c = 1.
  2. 2 Enter the arrival rate lambda: Use any consistent time unit (per hour, per minute, per day). All other rates and times will use the same unit.
  3. 3 Enter the service rate mu: Per-server service rate in the same time unit. For M/M/1 you need mu strictly greater than lambda; for M/M/c you need c * mu strictly greater than lambda.
  4. 4 Set the number of servers (M/M/c only): Use a whole number greater than 0. Try incrementing it to see how traffic intensity, wait time, and Erlang-C probability of waiting drop as you add capacity.
  5. 5 Read the results panel: Traffic intensity rho is the headline number. Average wait time, queue length, P0, and the probability of waiting are listed below it so you can scan all the steady-state metrics in one pass.

Imagine a small support inbox that averages 4 new tickets per hour and one agent who clears 6 per hour. Selecting M/M/1 with those defaults gives rho = 66.67 percent, an average wait of 20 minutes, and 1.33 tickets in the queue. Switch to M/M/c with c = 2 to see how adding a second agent during the same hour roughly halves the average wait.

Benefits of Using This Queueing Theory Calculator

The tool is built so you can move from a vague intuition about wait times to a defensible number in under a minute.

  • Two models in one place: Switch between M/M/1 and M/M/c without re-deriving formulas, so you can quickly test whether adding a server is worth the cost.
  • All steady-state metrics together: Returns rho, L, Lq, W, Wq, P0, and Pw side by side, which is what operations research and capacity-planning slides need.
  • Stable and unstable cases handled: If lambda approaches or exceeds capacity, the calculator reports unstable behavior rather than silently returning nonsensical wait times.
  • Numerically stable Erlang-C computation: Computes the offered-load sum with a recursion that avoids overflow at high traffic intensities where naive implementations blow up.
  • Pairs with related probability tools: Use it alongside the Poisson distribution calculator to sanity-check the arrival-rate assumption, and alongside the normal distribution calculator for steady-state averages at scale.

Factors That Affect Your Results

The numbers the calculator returns are only as good as the assumptions that feed them. These are the levers that matter most.

Traffic intensity rho

Small increases in rho cause large increases in wait time and queue length near rho = 1, so a small change in either arrival or service rate can dominate the result. This is the single biggest reason that doubling capacity rarely halves wait time.

Number of servers c

Each additional server in an M/M/c system reduces rho by the same fraction, but the Erlang-C probability of waiting drops even faster because the offered load a is spread across more servers.

Service-time variability

The M/M/1 and M/M/c models assume exponential service times. Real service times are often more variable, which inflates actual wait times above the calculator's prediction.

Arrival variability and bursts

Poisson arrivals assume constant average rate. Real workloads can be bursty, especially in IT and retail, which again pushes real wait times above the model.

Population size and balking

The model assumes an effectively infinite customer population that never abandons the queue. In practice, long waits cause customers to leave, which the standard M/M/1 and M/M/c formulas do not capture.

  • The M/M/1 and M/M/c models are approximations, not exact predictions. Use them for first-cut planning, not as a substitute for simulation when the system is highly variable or non-Markovian.
  • When lambda is very close to capacity, the Erlang-C term is sensitive to small input changes, so round rho conservatively and consider adding headroom before committing to a staffing plan.

According to Wikipedia, Erlang distribution and Erlang-C formula, the Erlang-C formula gives the probability that an arriving customer to an M/M/c queue must wait rather than be served immediately, expressed in terms of the offered traffic a = lambda/mu, the number of servers c, and the term (a^c / c!) divided by a recursive normalization factor.

Service times in the real world are skewed rather than exponential, so the mean, median, mode, and range calculator is a quick way to characterize that skew and decide whether the M/M/1 assumption is reasonable.

queueing theory calculator showing M/M/1 and M/M/c utilization, wait time, and queue length results
queueing theory calculator showing M/M/1 and M/M/c utilization, wait time, and queue length results

Frequently Asked Questions

Q: What is queueing theory and what does a queueing theory calculator compute?

A: Queueing theory is the math of waiting lines. A queueing theory calculator takes the arrival rate and service rate of a system and returns the steady-state metrics that describe it: traffic intensity, average queue length, average wait time, and the probability that a new arrival must wait for service.

Q: How do I use the M/M/1 queue formulas?

A: Pick the M/M/1 model, enter the arrival rate lambda and the service rate mu in the same time unit, then read off the results. Traffic intensity is lambda / mu, and the system is stable only when this stays below 1.

Q: What is the difference between M/M/1 and M/M/c queues?

A: M/M/1 is a single-server queue; M/M/c is the same arrival and service model but with several identical servers working in parallel. M/M/c uses the Erlang-C formula to estimate the probability of waiting, while M/M/1 has the simpler closed form rho = lambda / mu.

Q: How do you calculate the probability of waiting in a queue (Erlang C)?

A: Switch the calculator to the M/M/c model, enter lambda, mu, and the server count c, and read the probability of waiting Pw. Internally, it is the Erlang-C expression in the offered load a = lambda / mu and the number of servers c.

Q: What is a good server utilization target for a queueing system?

A: Most practitioners plan for 70 to 85 percent utilization, since wait times and queue length grow sharply as traffic intensity approaches 1. If you cannot tolerate long waits, target the lower end of that range.

Q: How accurate are the M/M/1 and M/M/c assumptions for real workloads?

A: They are reasonable for first-cut planning of stable systems with low-to-moderate variability. For bursty arrivals, very variable service times, or finite populations, treat the calculator's output as a lower bound and validate with simulation or measurement.