Finite capacity scheduling: why the ERP schedule keeps getting rewritten
Finite capacity scheduling builds a production schedule against capacity that actually exists, including machine count, changeover time, material availability and working calendars. It contrasts with the infinite capacity scheduling in most ERP systems, which back-calculates from the due date as though every resource were always free.
The symptom is easy to recognise
There is a pattern common to many plants.
ERP issues a production schedule. Then someone on the floor rebuilds the sequence in a spreadsheet before anything is actually run.
This is often read as a discipline problem. People not following the system.
Usually it is the reverse.
The schedule gets rebuilt because the original one could not be executed.
The cause lies in how most ERP systems calculate.
ERP schedules on an infinite capacity assumption. It back-calculates from the due date, subtracts the lead time of each step, and derives when work should start.
What it does not check is whether the required resource is actually free at that hour.
The result can be three orders scheduled on one machine simultaneously.
Arithmetically the schedule is correct.
Operationally it is impossible.
What finite capacity actually means
Finite capacity scheduling inverts the question.
Instead of asking “when must this work start to finish on time”, it asks:
“When is there genuinely a slot available for this work?”
The difference shows in what gets taken into account.
| Taken into account | Why it matters |
|---|---|
| Slots already occupied | A resource does one thing at a time |
| Changeover time | Switching products costs time, and the cost depends on sequence |
| Material availability | Work cannot start before its materials exist |
| Working calendar | Shifts, holidays and preventive maintenance reduce genuinely usable time |
| Order dependencies | Some work cannot begin until other work has finished |
One consequence has to be accepted up front.
A finite capacity schedule is almost always longer than an infinite capacity one.
That is not a regression.
The shorter schedule was never executable. Its true length simply was not visible until production ran.
The four scheduling strategies
No single approach suits every situation.
Four are in common use.
Forward scheduling works forward from the earliest possible time, placing each job as soon as it can run.
It suits situations where finishing quickly is the goal. The side effect is that work completes earlier than needed, which adds inventory.
Backward scheduling works back from the due date, placing each job as late as it can while still meeting the deadline.
It minimises inventory but leaves no room for disruption. One breakdown moves the delivery date directly.
Levelling spreads load across resources and across time, avoiding unrealistic peaks.
It is useful where capacity is reasonably balanced and the goal is steady flow.
Drum-Buffer-Rope treats one constraint as the pacing element for the whole flow. That constraint is scheduled tightly as the drum, given buffer stock so it never starves, and material release is tied to its rate.
It is most effective where there is one clear, stable bottleneck.
In practice many plants combine all four. Backward for orders with committed dates, forward for the rest, and DBR across whichever part of the flow has an identifiable constraint.
Why tanks and pumps need different treatment
Most scheduling systems are built on a quiet assumption.
Every resource is assumed to behave like a machine. It takes one job, processes it for a duration, then finishes and is free again.
That assumption fails in process manufacturing.
A tank holds a volume over a period.
Its capacity is not just time but volume and time together.
A tank still holding the previous batch cannot accept the next one, even when its schedule looks clear.
Scheduling a tank as a machine produces a schedule that is valid in time terms and impossible in practice.
A pump is constrained by flow rate.
Transfer time is not a constant. It is volume divided by flow rate.
Treating it as a fixed duration makes the calculation wrong every time batch size changes.
The consequence is not merely a less accurate schedule.
This is what drives many process plants back to scheduling by hand. The system produces schedules that are visibly impossible, so people stop trusting it entirely.
Finding the real bottleneck
One benefit of finite capacity scheduling is rarely discussed.
The process forces the bottleneck into view.
When a schedule is built against real capacity, whichever resource is permanently full stands out on its own.
The result is often surprising.
A bottleneck long assumed to sit at a particular machine turns out to be the cleaning step, the holding tank capacity, or the availability of operators with a specific qualification.
It also explains why maximising OEE on a non-bottleneck resource rarely helps.
Raising output on a machine that is not the constraint only lengthens the queue in front of the one that is.
The relationship between these two metrics is covered further in how to calculate OEE.
A schedule that survives contact with reality
Every schedule will be wrong.
Machines break. Material arrives late. An urgent order lands mid-week.
What separates a scheduling system that gets used from one that gets abandoned is not the quality of the initial schedule.
What separates them is what happens when it goes wrong.
A system that takes hours to recalculate will be abandoned at the first serious disruption. Precisely when it is most needed.
Two properties decide it.
- Fast enough to recalculate, so it can be refreshed as conditions change rather than run once at the start of the week.
- Stable enough that a small disruption does not reorder everything. A schedule that comes back completely different each time stops being trusted, because nothing can be planned on top of it.
Where VECHR MES fits
Advanced Scheduling in VECHR MES schedules against capacity that genuinely exists.
Four strategies are available, Forward, Backward, Levelling and Drum-Buffer-Rope, selectable to match the character of the flow.
Tanks and pumps are treated as constraints in their own right rather than machines with fixed durations. Tanks are scheduled on volume and time together, and transfers are computed from flow rate against batch volume.
That keeps schedules for process manufacturing sensible when batch sizes change.
Bottlenecks are detected automatically from the scheduling result, so the real constraint emerges from the data rather than from assumption.
And because scheduling sits on the same platform as production execution, materials and maintenance, schedules are computed from actual conditions. Real material availability and already-planned maintenance windows, rather than data copied between systems.
Frequently Asked Questions
What is the difference between finite and infinite capacity scheduling?
Infinite capacity scheduling calculates when work must start to finish on time, without checking whether the resource is free then. It can place three orders on one machine at the same hour. Finite capacity scheduling only places work in slots that are genuinely open, which produces a longer schedule that can actually be executed.
Does MES scheduling replace ERP planning?
No. ERP retains enterprise-level planning, from demand and procurement through to delivery commitments. MES scheduling translates that plan into a work sequence executable on real resources, then returns realistic dates back to ERP.
When is Drum-Buffer-Rope the right choice?
When there is one clear, stable constraint that the whole flow depends on. DBR schedules that constraint tightly, then ties material release to its pace so work does not pile up in front of it. If the bottleneck moves depending on product mix, a levelling strategy is usually more stable.
Why can a tank not be scheduled like a machine?
A machine processes one job and finishes, so its capacity is time. A tank holds a volume for a period, so its capacity is volume and time together. Scheduling a tank as a machine produces a schedule that looks correct but cannot run, because a full tank cannot accept the next batch even when its time slot is free.
How often should the schedule be recalculated?
As often as conditions change materially. A breakdown, a material shortage or an urgent order invalidates the previous schedule. What matters is not rescheduling as frequently as possible, but that recalculation is fast enough to run when needed and stable enough that a minor disruption does not reorder everything.