Built and fact-checked by the DocNectar team — see our editorial standards
Key Features
Instant Calculation
Get accurate results in real time with our optimized algorithm.
Mobile Friendly
Fully responsive design. Works on all devices & screen sizes.
Privacy Focused
Your data stays on your device. We don't store any inputs.
100% Free
No hidden costs. This tool is completely free forever.
The M/M/1 queue is the simplest and most widely taught standard queueing model in operations research: "M" (Markovian/memoryless) arrivals following a Poisson process, "M" (Markovian) exponentially distributed service times, and "1" single server handling everyone one at a time, first-come-first-served. Despite its simplicity, it captures the essential, often counterintuitive behavior of any waiting line — most notably that average wait times don't increase gradually as a system gets busier, they blow up dramatically as utilization approaches 100%. M/M/1 queueing math underlies capacity planning across a huge range of systems: call centers use it to decide how many agents are needed to keep hold times reasonable, network engineers use it to model packet queuing delay at a router or server, hospitals and clinics use queueing models to plan staffing against patient arrival patterns, and web and database server capacity planning uses the same math to predict request latency as traffic grows.
How it works
Enter the arrival rate λ (customers or requests arriving per unit time) and the service rate μ (customers or requests the single server can complete per unit time, assuming it's never idle). The calculator first computes the utilization ρ = λ/μ, the fraction of time the server is busy — this requires ρ to be less than 1 for the queue to be stable; otherwise arrivals pile up faster than they can ever be served, and the queue grows without bound. From ρ, it derives the average number of customers in the whole system, L = ρ/(1−ρ), and in the queue alone (excluding whoever is currently being served), Lq = ρ²/(1−ρ). Using Little's Law (L = λW), it then finds the average time in the system, W = L/λ, and the average time spent just waiting in line, Wq = Lq/λ (equivalently, W − 1/μ).
- Enter arrival rate (λ, customers per unit time).
- Enter service rate (μ, customers per unit time).
- Click Calculate to see your results.
Examples
λ = 4, μ = 5
ρ = 4/5 = 0.8. L = 0.8/(1−0.8) = 4 customers on average in the system. W = L/λ = 4/4 = 1 time unit on average in the system. Lq = 0.8²/0.2 = 3.2, and Wq = 3.2/4 = 0.8 time units on average just waiting.
λ = 3, μ = 4
ρ = 3/4 = 0.75. L = 0.75/0.25 = 3 customers on average in the system. W = 3/3 = 1 time unit. Lq = 0.75²/0.25 = 2.25, and Wq = 2.25/3 = 0.75 time units waiting — leaving W − Wq = 0.25, exactly 1/μ, the average service time itself.
λ = 2, μ = 10 (a lightly loaded system)
ρ = 2/10 = 0.2. L = 0.2/0.8 = 0.25 customers on average — very short. W = 0.25/2 = 0.125 time units. Lq = 0.2²/0.8 = 0.05, and Wq = 0.05/2 = 0.025 — a system with plenty of spare capacity barely queues at all.
Common mistakes to avoid
- Entering λ and μ in different time units (e.g., λ per hour but μ per minute), which invalidates every downstream metric — both rates must share the same time unit.
- Assuming a utilization of 90% means "the queue is 90% as bad as being overwhelmed" — because L = ρ/(1−ρ) is nonlinear, wait times at 90% utilization are already many times worse than at 50%, not just moderately worse.
- Forgetting that this model assumes a single server — applying its formulas directly to a multi-server system like a call center with several agents gives incorrect results.
- Confusing L (average number in the whole system) with Lq (average number only in the queue, excluding whoever is currently being served) when reporting results.