The short answer
Infinite capacity scheduling asks when a job should run. Finite capacity scheduling asks when it can.
Both produce a schedule. Only one of them produces a schedule the shop can actually run, and the gap between the two is where most late jobs come from.
Here is the same week, planned both ways.
What each one does
Infinite capacity scheduling takes each job on its own. Due date, minus the hours the job needs, minus any lead time offset, equals a start date. That is the whole calculation. It never looks at what else is on the machine, which means it will place three jobs on one mill at the same time and report all three as on schedule.
Finite capacity scheduling places jobs against each other on one timeline. A machine runs one job at a time and a person is in one place at a time, so work can only go where there is genuinely room. When there is no room, the schedule says so instead of stacking.
Same input, two very different outputs.
The same five jobs, scheduled both ways
One mill. One week, Monday to Friday, 8 hours a day, so 40 hours of machine time available. Five jobs are due.
| Job | Hours needed | Due |
|---|---|---|
| A | 12 | Wednesday |
| B | 10 | Wednesday |
| C | 14 | Thursday |
| D | 9 | Friday |
| E | 8 | Friday |
That is 53 hours of work in a 40 hour week. The shortage is already there, sitting in the numbers, before anyone schedules anything.
Scheduled at infinite capacity, each job is placed backwards from its own due date:
| Job | Starts | Finishes | Status in the plan |
|---|---|---|---|
| A | Tue midday | Wed end of day | On time |
| B | Tue afternoon | Wed end of day | On time |
| C | Wed morning | Thu end of day | On time |
| D | Thu afternoon | Fri end of day | On time |
| E | Fri morning | Fri end of day | On time |
Five out of five on time. Every line is individually correct: each job really does take that long and really would finish by its due date if it had the machine. Look at Wednesday, though, and jobs A, B and C are all running on the same mill at once. The plan has quietly invented a second and third machine.
Scheduled at finite capacity, jobs go on one at a time, in due date order, and each one starts when the mill is actually free:
| Job | Starts | Finishes | Due | Status |
|---|---|---|---|---|
| A | Mon 8am | Tue midday | Wed | On time |
| B | Tue midday | Wed 2pm | Wed | Tight, on time |
| C | Wed 2pm | Fri midday | Thu | Late by half a day |
| D | Fri midday | Mon | Fri | Late by a day |
| E | Mon following | Tue following | Fri | Late by 1.5 days |
Two make it. Three do not.
The shortage was identical
This is the part worth sitting with. Nothing changed between the two schedules. Both weeks contain 53 hours of work and 40 hours of machine. Both weeks end with three jobs late.
The infinite capacity plan did not cause the shortage and the finite capacity plan did not fix it. All that changed is when you found out, and therefore what you could do about it.
On Monday morning, 13 hours short is a set of decisions: run Saturday, move one date with a customer who will probably say yes, subcontract job E, or call the customer on job C now while there is still goodwill in it. On Thursday afternoon, the same 13 hours is a fire, three apologies, and a weekend nobody planned.
An honest schedule does not create capacity. It converts a surprise into a decision.
Finite is not the same thing as forward
These two pairs get used interchangeably and they are different axes.
Finite versus infinite is about whether the plan respects the capacity that exists.
Forward versus backward is about which end of the calendar you start from. Forward scheduling starts from now and works out the earliest a job can finish. Backward scheduling starts from the due date and works out the latest it can safely start.
In practice infinite systems tend to be backward and finite systems tend to be forward, which is why the terms get welded together. But you can schedule backwards and still respect capacity, and plenty of finite systems do exactly that in order to avoid starting everything as early as possible. If someone tells you their system does forward scheduling, that has not answered the capacity question.
How to tell which one you are running
You are running one of these today, whether or not you picked it.
| What you use | Which it does | Why |
|---|---|---|
| Spreadsheet | Infinite | A cell holds anything you type. Two jobs on one machine on one day is not an error, it is just text. |
| Google Calendar | Infinite | It will stack four events at 10am without comment. |
| Whiteboard | Roughly finite | A row runs out of physical space, which is a crude capacity limit. It will not tell you what the squeeze pushed late. |
| MRP or standard ERP | Infinite | Built to answer what to buy and when to release, not how to sequence Tuesday. |
| ERP with an APS module | Finite | Usually a paid add-on that needs shift calendars and setup matrices kept accurate. |
| A board that blocks double booking | Finite | Capacity is enforced by refusal rather than optimised by a solver. |
The quick test: try to book two jobs on the same machine at the same time. If the tool lets you, and says nothing, it is scheduling at infinite capacity.
When infinite capacity is genuinely fine
It would be dishonest to say infinite capacity planning is simply wrong, because it is the correct tool for the job it was built for.
Long range material planning. When you are working out what steel to order for eight weeks out, you do not care which machine runs on which Tuesday, and pretending to know would make the answer worse rather than better. This is what MRP does well and why it exists.
A shop with real slack. If your machines are at 45% utilization, the machine usually is free, and the assumption infinite scheduling makes is usually true. The cost of being wrong is low. Fix the utilization problem first, because a machine at 45% has a scheduling problem, not a capacity problem.
Rough feasibility on a quote. A quick backward pass tells you whether a date is even in the right postcode before you spend time on a real schedule.
Infinite capacity becomes a problem in one specific situation: using it to plan a floor that is close to full. Which is most job shops, most weeks.
Which one you should be using
If your machines are busy, finite. There is not much more to it than that.
The reason it matters more in a high-mix, low-volume shop than anywhere else is that the mix moves under you. A rush order lands on Tuesday and re-sequences everything behind it. An infinite capacity plan cannot absorb that, because it was built on assumptions about a week that stopped being true two days ago.
One caution, and it is the reason most finite implementations disappoint: finite capacity scheduling is only as honest as the hours you feed it. If you schedule from cycle time, the cutting number, you are doing infinite capacity planning with extra steps. The load, the deburr, the walk to the tool crib, the inspection queue and the setup are all real hours that a cycle time does not contain. A finite schedule built on those numbers will confidently book capacity that does not exist, which is why jobs run late even when the machines are fine.
Time your ten most common jobs door to door before you trust any schedule, finite or otherwise.
Where to start
You do not need to buy anything to switch. Finite capacity scheduling is a rule, not a product: put every machine and every open job on one timeline, and let nothing be booked twice. That rule can be enforced by software or by one person owning the board.
The full walkthrough, including the choice between an APS solver and a shared board, is in finite capacity scheduling for small shops.
Machestra does the board version. Assign an operation to a machine or a person who is already busy and it refuses the booking and tells you which job is in the way. It does not sequence the work for you, because in a shop with 3 to 30 machines you already know which customer waits.
Start free with 3 machines. No credit card, no time limit.