Ask a consultant to fix your scheduling and there is a fair chance they will hand you ideas borrowed from a car plant. Find the bottleneck. Protect it. Keep it running at all costs and the rest of the line will follow. It is good advice — for a car plant. For a custom manufacturer it is close to useless, and understanding why is the most important thing you can know about scheduling your own floor.
Two factories, two different problems
A high-volume plant makes the same part, or a handful of parts, all day. Its flow is fixed: material enters here, moves through the same stations in the same order, and leaves there. Somewhere in that line is the slowest station — the constraint. The entire discipline of scheduling such a plant, formalised decades ago as the Theory of Constraints, comes down to one instinct: find that constraint and never let it starve. Everything else has spare capacity, so everything else can wait on it.
A custom manufacturer does not have a line. It has thirty orders, each with its own routing through a shared set of machines, each with its own material, tooling, tolerances and due date. Order A goes turning, then milling, then grinding. Order B goes milling, then drilling, then back to milling. They collide on the machines they share, in a different pattern every week. There is no single line to balance, and so there is no single constraint to protect.
The bottleneck will not hold still
This is the heart of it. In a custom shop the bottleneck moves. This week your three-axis milling centre is the constraint, because the order book happens to be milling-heavy. Next week a run of deep-hole drilling work lands and suddenly the drill is the choke point while the mills have slack. The week after, it is the grinder, or heat treatment, or the one operator who can run the new five-axis machine.
A schedule that protects last week's bottleneck is optimising the wrong machine. And because the mix changes continuously, the bottleneck is not a fixed asset you can invest around — it is a moving target that has to be re-found as the work changes. Chase it by hand and you are always a week behind where the real constraint has already drifted.
Capacity is not just machines
There is a second trap. When people say a machine is 'free,' they usually mean the machine is idle. But a job needs more than an idle machine. It needs the right fixture, which may be on another job. It needs a tool that has to be ground first. It needs an operator who has run this part before, not just any operator. It needs the material to have actually arrived, not merely been ordered. And it needs a slot at inspection afterwards.
Real capacity is the tightest of all those constraints at once — machine, tooling, skilled operator, material, inspection. A plan that looks at machine availability alone will happily schedule a job that cannot actually run, and you discover the gap at the worst possible moment: on the floor, with an operator standing idle and a due date ticking.
Why the tools you were sold don't fit
This explains a frustration almost every manufacturer has felt and few can name. The standard planning tools were built for the car-plant world, and they carry its assumptions.
Basic ERP scheduling, and the material planning built into it, quietly assumes infinite capacity. It schedules backward from the due date as if every machine can take on whatever you throw at it, then hands you dates that were never physically possible. There is a better class of tool — finite-capacity scheduling, sometimes sold as advanced planning — that does respect real machine limits. But it was designed for stable, repeating routings, and it demands something a custom shop rarely has: clean, current master data. Accurate cycle times for every part on every machine. Live machine status. A disciplined, up-to-the-hour record of what has actually finished.
Feed a finite-capacity engine that kind of clean data and it works beautifully. Feed it the reality of a custom shop — cycle times that are half guesses, a machine that has been running hot since lunch, a job the ERP still thinks is open because nobody closed it — and it produces a confident, precise, wrong answer. The engine is not broken. It is being fed fiction.
The gap is not discipline. It's where the truth lives.
The usual diagnosis is that the shop lacks discipline — if only the operators entered data properly, the expensive scheduler would work. Every owner who has tried to enforce this knows how it ends. Within a month the real updates are back in WhatsApp and the supervisor's notebook, because those channels are faster and more human than any data-entry screen, and a factory moves at factory speed.
So the truth about your floor — what actually finished, what broke, what changed — does live somewhere current and reliable. It just does not live in the system the scheduler reads. That is the real gap. Not a shortage of discipline, but a mismatch between where reality gets reported and where the plan gets computed.
What scheduling built for a custom shop has to do
Put the pieces together and the requirements are clear — and they are different from anything designed for volume production.
- Model finite capacity across everything that actually constrains a job — machine, tooling, operator skill, material and inspection — not machine hours alone
- Re-find the moving bottleneck continuously as the mix changes, instead of defending a constraint that has already drifted
- Take reality from the channels the floor already uses — the messages, the notes, the calls — rather than demanding a second layer of data entry that will not survive the month
- Explain its sequence in plain words, with the reason, so the planner can trust it and the floor can follow it
- Propose, and let a human approve — because the last judgment on a shop floor belongs to a person
You do not have an undisciplined floor. You have a problem whose shape the common tools were never built to match. The science of scheduling under constraints is sound and decades old; the missing piece has always been feeding it the truth without turning your operators into clerks. Solve that, and the moving bottleneck stops being the thing that runs you and starts being the thing you run.