Kingman's formula: one more job doubled the wait
A bench running at 90% looks busy and behaves fine, right up until it does not. What sets the wait is how full it is, and how unevenly the work arrives.
- jobs arriving a day18
- what the bench can do a day20
- wait before a job starts2.8 hours
- one more job a day, as work5.6%
The work, and how evenly it turns up
Inspection benchTry a scenario
The work
Hands-on time, excluding time spent waiting.
Parallel lines
Anything that can take a job at the same time.
Capacity
20 jobs a day
one line, 24 minutes a job, an 8 hour day
How full it is
90%
18 arriving against 20 of capacity
Jobs in the system at any moment
7.2
18 jobs arriving a day
How uneven it is
How arrivals turn up
Evenly means booked intervals; bursts means forty arrive together.
How much the work varies
Alike means equal durations; very mixed ranges from minutes to hours.
How the wait grows
90% full| How full it is | 90% |
|---|---|
| Waiting for a free line | 2.8 hours |
| Waiting for its own batch | 0 minutes |
| Being worked on | 24 minutes |
| Chance of any wait at all | 90.0% |
| 3.13 hours |
The average wait carries the two variation settings above it. The chance of waiting is read at exponential arrivals and exponential work, so at Evenly or Alike it reads higher than this bench would. Both are printed rather than combined.
Where a job's time goes
90.0% of jobs wait for a free line at all. The ones that do wait 3.13 hours, which is the number the person holding the job experiences and the average never shows.
The two things this is not
This is not a headcount. A queue that is too long has four possible answers: less work arriving, faster work, more lines, or less unevenness in either. Which of those is available to you is a question about your budget and your process, and nothing on this page knows anything about either.
It is also not the same argument as a supplier who varies. That page is about buying stock to cover a lead time you cannot control. This one is about a queue your own load creates, where the wait is not caused by anybody being slow. Nothing here got slower. There is simply less room left.
Here is the maths
Release is fixed at one job at a time; the comparison uses batches of 10.
- Model version
- 1.0
The formula, in words
- Three things set the wait, and they multiply rather than add: how uneven the work is, how full the line is running, and how long one job takes. This is the standard queueing approximation known as Kingman's formula, presented as the VUT equation in Hopp and Spearman's Factory Physics. It is an approximation and a good one across the range this page plots.
- Unevenness is measured for arrivals and for the work itself, each as a coefficient of variation, which is the standard deviation divided by the mean. A value of 1 means the gaps between arrivals are as varied as they are long, which is what genuinely random arrivals look like. The three settings on this page stand for 0.25, 1.0 and 2.0 for arrivals, and 0.25, 0.75 and 1.5 for the work.
- How full it is enters as fullness divided by the room left over. At 50% that is 1. At 90% it is 9. At 95% it is 19. At 99% it is 99. That single fraction is the whole nonlinearity, and it is why the last few per cent are not like the ones before them.
- How long one job takes is the multiplier on both. Cutting the work in half halves the wait even if nothing else changes, which is often the cheapest of the four available moves.
- More lines change the shape, not just the scale. With more than one line the fullness term is softened by an exponent, because a job arriving at a busy moment can be picked up by whichever line frees first.
- Batching adds a separate wait that has nothing to do with congestion. In a batch of ten, the first job waits for nobody and the last waits for nine, so on average a job waits for four and a half jobs' worth of work before it leaves. That is why the batch control changes the second chart and leaves the first chart alone: it does not make the bench any fuller.
- Chance and length are separate. Erlang C gives the chance that every line is busy under exponential arrivals and work. The mean wait divided by that chance gives the mean wait among the jobs that wait.
A worked example
Eighteen jobs a day, twenty four minutes of work in each, one bench, an eight hour day.
The bench can do a day, so at eighteen it is 90% full.
The arrivals are typical, a CV of 1.0, and the work is typical, a CV of 0.75. The unevenness term is . The fullness term is . So the average job waits hours before anybody picks it up, and is finished 3.21 hours after it arrived.
By Little's law there are jobs sitting there at any moment, on a bench that can only work on one.
Now add a single job a day. Nineteen against twenty is 95% full, so the fullness term goes from 9 to 19 and the wait goes from 2.81 hours to 5.94 hours. The workload rose by 5.6%. The wait rose by 111%.
With one line Erlang C is the load itself, so the chance of waiting is 90.0%. Dividing 2.81 hours by 0.90 gives 3.12 hours among jobs that wait. With two lines the chance is 27.9%, the mean wait is 0.0893 hours and the conditional wait is 0.3197 hours, or 19.2 minutes.
Check it yourself
Leave the load exactly where it is and switch the arrivals to Evenly. The unevenness term falls from 0.78125 to 0.3125 and the wait falls from 2.81 hours to 1.13 hours, on the same bench, doing the same amount of the same work. Then switch the arrivals to In bursts and it goes to 8.21 hours. Nothing about the workload moved in either direction.
What this does not model
Priorities and expediting, so nothing here jumps the queue. Breakdowns, changeovers, setup time and the way a bigger batch reduces setup per job, which is the honest argument for batching and is missing here on purpose because it would need a setup time control to be worth anything. Batching also makes arrivals lumpier at the next step along, which this page leaves out. Blocking, where a full buffer stops the step behind it. Any variation over the day: a bench that is empty at nine and swamped at four is running at two very different utilisations and this page averages them. And people, who speed up when the queue is visible, which is real and is not in any formula here. The Erlang C reading also does not carry the selected variation shapes. It assumes exponential arrivals and exponential work, while the mean wait keeps the Kingman variation terms.
A queueing approximation on figures you type. It is not a staffing calculation and it produces no target, no optimum and no recommended number of people or lines. Averages of this kind describe the long run behaviour of a stable queue, and a real bench with priorities, breakdowns and a rush at four o'clock will not match them job for job.
Related
- KPI definitions: the same data looks healthy while the operation degradesSupply chain KPIs that look healthy while the operation degrades. Same data, different definition.Interactive lesson · 4 min
- Bullwhip effect: a small steady rise becomes a violent swing upstreamA small, permanent rise in demand becomes a violent swing four levels upstream. Then you switch on one piece of information and most of it disappears.Interactive lesson · 4 min