What is bottleneck?
The single step in a process that limits the output of the whole system, because it has the least capacity.
Bottleneck diagram example
A bottleneck is the part of a process with the lowest capacity relative to what flows into it, so it limits the output of the whole system. Work piles up before it, and the steps after it wait for input. Finding the bottleneck is the first step in improving a system, since improving anything else does not raise the output.
How it works
The bottleneck sets the pace of the entire process. The signs are a growing queue in front of it and idle time in the steps after it. If you widen the bottleneck, the output rises until another step becomes the limit, so the bottleneck moves. Improvement is therefore a series: find the constraint, relieve it, then look for the next.
A bottleneck can also be dynamic. It may depend on the mix of work, the time of day or the number of staff on a shift. In systems thinking, this is a limit to growth: a reinforcing loop meets a constraint that slows it, and pushing harder on the loop without relieving the constraint gives little.
Example
Say a call center has 10 agents who each handle 6 calls an hour (60 total), a triage desk that routes 50 calls an hour, and a billing team that settles 70 an hour. The triage desk is the bottleneck, so the center completes 50 calls an hour. Hiring 5 more agents adds nothing. Adding one triage clerk who handles 10 more calls an hour raises output to 60, and then the agents become the limit. The numbers are an illustration.
How to model it in Machinations
Put a Queue before each step and give each step a Converter whose rate is its capacity. Play the diagram and look for the Queue that grows while later Pools stay empty, which marks the bottleneck. Make the capacity of each step a Lever, raise the one in question and Play again to see where the limit moves.
See bottleneck in a system you can Play
Build the rules in a Machinations diagram, change a value and Play it to watch how the system responds.