Finding the Bottleneck: A Practical Guide to Constraint Management on Series Manufacturing Lines
If you run a series manufacturing line (a sequence of machines that each perform one step and hand the product to the next) you already know the frustrating truth, the line is only ever as fast as its slowest link. What's less obvious is which link that is, why it keeps changing, and what to do about it once you know.
This is Theory of Constraints applied to the plant floor. It's not complicated in principle, but it's easy to get wrong in practice, and getting it wrong is expensive.
Let's take a look at how to navigate this complicated issue. Starting from choosing your constraint on purpose, to finding what's actually causing your downtime, to the counterintuitive physics of why faster isn't always better.
Step One: Choose Your Choke Point on Purpose
Every line has a bottleneck (sometimes referred to as "constraint" or "choke point"), whether or not it was planned that way. Ideally, bottlenecks are pre-planned after careful consideration.
Your most expensive piece of capacity should be your choke point. If you're going to spend the most money on a machine, that machine should be the one running at its absolute limit, because idle expensive capacity is the most costly kind of idle capacity. Every other machine on the line should be specified with a little more capability than the choke point needs, enough headroom that they are never the reason the line is slow, but not so much that you're paying excessively for capacity you don't use.
This single design decision, deciding in advance which machine is allowed to be the constraint, is what makes everything downstream of it (troubleshooting, tuning, and capacity planning) tractable. If you don't choose your constraint, your constraint chooses itself, and it will move around depending on which machine happens to be having a bad day. And that makes line tuning considerably more difficult.
Step Two: Understand How Downtime Actually Travels
Once you have a defined choke point, now you can move to asking a new question when the line stops. "What actually caused the stoppage?"
Every machine on the line other than the constraint has some slack built in, meaning it can run a little faster than the choke point requires. When something upstream of the constraint goes down, machines between the failure and the constraint keep running until they run out of product to work on. They go into a starved state where they have no product to process and are waiting on the machine behind them.
When something downstream of the constraint goes down, machines between the constraint and the failure keep running until they run out of room to put finished product. They go into a blocked state with nowhere to send output They are just waiting on the machine in front of them.
The critical thing to understand is that starved and blocked states propagate. They travel down the line, machine by machine, at a rate determined by how much buffer sits between stations. This is exactly why identifying the actual root cause of a stoppage is harder than it looks. By the time your choke point actually stops, several machines have already gone starved or blocked in sequence.
This gives you a diagnostic method, not just a description of the problem. When the choke point goes down, count how many machines away from it are already starved or blocked at that moment. That count tells you how many stations away the original failure occurred, and in which direction. A failure two machines upstream of the constraint will starve the machine immediately upstream, then the constraint itself. If you only ever look at the machine sitting right next to the choke point, you'll consistently misdiagnose the problem because you're looking at the messenger, not the cause.
Remember, the status of the line is the status of the choke-point. If the choke point is down, the line is down regardless of what else is going on.
Step Three: Don't Ignore Micro-Stops
Full stoppages are the obvious downtime. Micro-stops are the downtime that hides in your data.
If a machine adjacent to the choke point is cycling even slightly slower than the choke point (even a fraction of a second per cycle) it will not show up as a fault, an alarm, or a stoppage in most data collection systems. What it will show up as is a long series of momentary, sub-second waits that never individually cross the threshold your system uses to log a stop. Add them up over a shift and they can represent a meaningful chunk of lost throughput that never appears on a Pareto chart of downtime reasons because no single instance was long enough to count.
The fix starts with recognizing that "no alarms" doesn't mean "no losses." If your OEE performance numbers are soft but your downtime log looks clean, one of the first things to look for is a machine near the constraint that is very slightly out of pace with it.
If your chokepoint has a sawtooth run pattern (downtime every cycle), that's a clear indication of a speed loss induced by an upstream or downstream machine running slightly slower than the choke-point.
Step Four: Tune the Choke Point With Real Data, Not Estimates
At this point, the highest-leverage thing you can do is tighten the actual cycle time of the constraint. This is not a job for a stopwatch and a clipboard.
Here's the method that works:
Put a timer displaying hundredths of a second in frame, in front of a high-speed camera, and record the machine's full cycle. Then go through the footage and mark the start and stop time of every discrete step in the process: every motion, every dwell, every wait.
This does two things very quickly that are otherwise slow and unreliable to determine:
It gives you an accurate total cycle time, broken into its component steps, instead of a single number that hides what's actually consuming the time.
It reveals dwell time and sequential steps that don't need to be sequential. Once you can see the whole cycle broken into segments, it's often obvious that two motions happening one after another could happen at the same time, or that a step is holding for longer than the process actually requires.
Continue to go through the footage one step at a time looking for dwell times or actions that can be removed from the critical path. This single exercise (timing the choke point step-by-step on video) routinely finds cycle time reduction opportunities that months of general "improvement" work would miss because it makes the invisible structure of the cycle visible.
Step Five: Check for Cycle-to-Cycle Variation
A single measurement of cycle time tells you almost nothing about consistency. Once you have a baseline cycle time from Step Four, time at least 50 consecutive cycles and look at how much they vary from one to the next.
You can do this with a stopwatch. If you timed a single cycle at 18 seconds, then a 50 cycle examination should yield an average of 18 seconds. If there are faster or slower cycles in your sample, you should determine why.
If the machine is cycling at a consistent time every run, you have a stable process to build the rest of your line balance around. If you're seeing meaningful cycle-to-cycle variation, that variation is itself a problem worth solving that is independent of the average cycle time.
A machine that averages a fast cycle time but swings widely from cycle to cycle is a more difficult problem to design around than a machine that is a little slower but rock-solid.
Variation at the choke point ripples through every buffer and every downstream station on the line. Clean up the variation before you finalize your line speed assumptions.
V-Curving vs. Flat-Curving: Should Everything Else Run Faster?
With the constraint identified and tuned, the next design question is how fast to run everything else.
Flat-balancing the line means every machine on the line runs at essentially the same rate as the choke point so there is no meaningful speed advantage anywhere. V-curve balancing the line means the supporting machines are deliberately specified to run faster than the constraint, so they can build a small buffer of product ahead of or behind the constraint.
V-Curving in it's most basic form would be to run just slightly faster than the choke point so that you're sure the choke point can run full speed. On it's own, this is a good idea.
Done well, V-curving can be a good insurance policy you can build into a line. Done carelessly, it introduces a problem of its own.
If you have enough accumulation between machines, you can run the supporting equipment faster to fill accumulation before the choke point and starve accumulation behind it so that you have assurance that stops on supporting equipment won't stop the choke point. However, you have to have enough accumulation to hold a valuable portion of your stops both in-front-of and behind the choke point so that they can account for stops you expect to have.
Look at stops and determine what size stops you're trying to account for. You may find that your stops don't follow a random distribution. Imagine you have 2 common stops and they're always about the same. In this case, that gives you a clear target for how much accumulation you need.
If you have random variation, you would want to find your MTTR (Mean Time to Recovery) on stops and a standard deviation on it. Then you could determine what % of stops your accumulation is designed to accommodate.
Now make sure your speed advantage on the supporting equipment is designed to clear the downstream accumulation or fill the upstream accumulation before another stop by a supporting piece of equipment causes an issue. If you know that you're just trying to account for a 2 minute reel change every 1000 units, that can be a simple design. If you've got wild variation in stops, then faster becomes more valuable almost exponentially.
V-curving exists because of a straightforward economic tradeoff. If you buy just enough capacity on your supporting equipment to exactly match the choke point, you're one hiccup away from losing constraint capacity every time a cheaper machine has a normal, minor stop. Since supporting equipment is, by design, cheaper than the constraint, it's usually worth buying a bit more speed on the supporting stations than you strictly need. That extra speed lets a supporting machine take a short, normal stop, catch back up, and never touch the constraint's output at all.
It's also important to evaluate whether you're getting any kind of variation or cost in all the stops by the supporting equipment. All equipment runs better when it runs consistently. Starting and stopping your support equipment in a V-curve process comes at a cost in product consistency in most cases.
Now, I'd like to point-out that it's pretty easy for this V-curving practice to get out-of-control and it can even become destructive if it's not controlled. Increases in speed aren't free and neither is accumulation. That said, V-curving is not a bad idea or a bad practice.
The Physics Problem With Running Fast
Here's the part of this discussion that gets skipped most often and it's the part that actually explains why lines almost always run more consistently when you slow them down.
Kinetic energy scales with the square of velocity. Double the speed of something moving through your line and it isn't carrying twice the energy, it's carrying four times the energy. That energy has to go somewhere every time a product transfers from one station to another, every time it's gripped, every time it's indexed, and every time it's set down. When a handoff is smooth and everything is mechanically tight, extra energy just means extra speed. When something is even slightly imperfect such as a fixture that's worn, a handoff slightly mistimed, or a bearing that has some mechanical looseness, that same extra energy shows up as instability and you see bouncing, jamming, misalignment, product damage, and downtime.
This is why an aging or slightly-out-of-spec machine that runs acceptably at a lower speed can become wildly unreliable at a higher speed even though the only thing that changed was the speed. It's why slowing down a struggling line is so often a more effective first move than any other intervention. You're not just buying time, you're removing energy from the whole system and the chaos and damage that energy was creating are removed with it.
Making V-Curving Work in Practice
Ideally, V-curving is designed so that supporting machines carry a modest speed advantage and a modest accumulation buffer relative to the constraint. That combination lets a supporting machine experience a normal stop and restart without the choke point ever noticing.
I consider it good practice to design V-curving around predictable stops (reel changes, things that happen on a knowable schedule) rather than as a practice against chaos.
In theory, you could size that buffer precisely because you should know each machine's Mean Time Between Failures and Mean Time to Recovery. In practice, MTBF and MTTR shift constantly as conditions change because tooling wears, operators change, etc. Treat any number you calculate as a starting point, not a permanent spec.
Given that reality, here's the practical guidance I give:
When you v-curve at the design stage, buy enough speed on the cheaper supporting equipment to genuinely protect the constraint and consume process stops that you know will happen. If you know you're going to spend 1 minutes every 20 minute changing reels on a piece of support equipment, it makes sense to add accumulation to account for that.
Maintain the line to standard from day one. V-curving assumes the supporting equipment is mechanically sound enough to handle its rated speed reliably. A v-curved line built on machines that aren't maintained to spec just means you're running unreliable equipment faster than absolutely necessary, which, per the physics above, makes things worse, not better.
If the line isn't in great shape, slow it down before you do anything else. Because energy drops with the square of speed, even a modest speed reduction can produce an outsized improvement in consistency. Run the numbers, find a speed where the line performs acceptably, and use that stability as the platform to fix the equipment properly. Make sure you tighten up mechanically until everything is running true. Only then bring the speed back up. If your line is stopping constantly, there is a good chance production will increase and the rate of degradation will decrease if you just slow it down. Remember, a 10% reduction in speed is a 19% reduction in energy carried by the product and every moving machine component.
So, as a rule, don't speed up old, worn equipment. Speed is a reward you give a line after it's mechanically sound, not a tool you use to try to make an unsound line perform.
Bringing It Together
Constraint management on a series line comes down to a short list of disciplines.
Choose your bottleneck deliberately instead of letting it choose itself. Understand that downtime propagates as starvation and blocking allowing you to trace a stoppage back to its true origin instead of its symptom. Watch for micro-stops that never trip an alarm but still eat throughput. Tune your constraint with real, granular data instead of estimates. Finally, if you v-curve the supporting equipment, respect the physics of speed enough to maintain the line to the standard that speed demands.
V-curving is a hobby of process engineers, but a lot of them don't understand how deeply complex and challenging it is to do well. If energy goes up as a square of speed... so do stops and crashes. Always baseline your production before you try to speed up. At least then you'll know if you improved or not.
If you want to run fast, you absolutely have to keep the equipment in good condition. Speed is not free.
None of this requires exotic tooling or a large capital project. It requires discipline about where you look, what you measure, and, more often than people expect, the willingness to slow down before you speed up.






Comments