Skip to content
DemoIndustriesBlogToolsComparePricingGet Started Free

Finite Capacity Scheduling: What It Actually Means for a Small Shop

The term nobody tells a shop owner

Most owners run into finite capacity scheduling the hard way, years before they hear the phrase. You promise six jobs for Friday. Friday arrives with four of them done. Nobody was lazy and no machine broke. The week just never had room for six, and nothing in your planning ever said so.

That gap has a name. Understanding it is the difference between a schedule you argue with and a schedule you can run.

What finite capacity scheduling means

Finite capacity scheduling means building a schedule against the capacity you actually have. Every machine runs one job at a time. Every operator is in one place at a time. The schedule can only place work where there is genuinely room for it, so a mill booked from 9 to 2 cannot take another job from 9 to 2, no matter how urgent the second one is.

That is the whole idea. It sounds obvious written down, which is exactly why it catches people out: almost every tool a small shop actually uses breaks the rule.

Infinite capacity is what you are running now

The opposite approach is infinite capacity scheduling, and it is probably what your shop uses today whether you chose it or not.

Infinite capacity planning starts at the due date and works backwards. The job takes six hours, the customer wants it Thursday, so it starts Wednesday afternoon. Nothing in that arithmetic asks whether the machine is free Wednesday afternoon. Do it for forty jobs and you get a plan where every job looks fine on its own line and the shop is booked at 180 percent on Wednesday.

Three tools do this to shops constantly:

MRP and most ERPs. MRP was designed to answer what to buy and when to start, not how to sequence twelve machines on a Tuesday. It explodes the bill of materials, subtracts the lead time, and hands over a start date. Capacity checking is either absent or sold separately as a finite scheduling module, which is one of the reasons full ERP is a poor fit for a small shop.

Spreadsheets. A cell will hold anything you type. Two jobs on the same machine on the same day is not an error to a spreadsheet, it is just text. The overload is invisible until an operator finds it.

Calendars and whiteboards. Google Calendar will happily stack four events at 10am. A whiteboard row runs out of physical space, which is a crude sort of capacity limit, but it does not tell you that the job you just squeezed in pushed three others past their due dates.

None of these are dishonest. They just have no concept of a machine being full, so the overload gets discovered on the floor instead of in the plan.

If you want to see the two approaches run against the same week of work, finite vs infinite capacity scheduling schedules the same five jobs both ways and shows where the plans diverge.

Why high-mix shops feel it worst

If you run high-mix, low-volume work, infinite capacity planning hurts more than it does anywhere else, for two reasons.

Setup is a large share of every job. In a long production run, changeover time disappears against the cutting hours. In a job shop, setup is often the main event, and infinite capacity planning tends to ignore it entirely or apply one flat number to every changeover. The capacity you thought you were scheduling was never there.

The mix moves under you. A rush order lands, an inspection kicks a job back, a customer pulls a date in. Each one re-sequences the floor. A backwards-scheduled plan cannot absorb that, because it was built on an assumption about a week that no longer exists by Tuesday.

Add both together and the plan promises capacity the shop does not own, then loses track of what it did own. That is the Wednesday scramble, and it is structural rather than personal.

What you get when capacity is finite

Three things change, and only one of them is about software.

You find out early. An overload that shows up while you are still planning is a decision: work late, move a date, subcontract, say no. The same overload discovered at 2pm on Thursday is a fire. Nothing about the underlying shortage changed, only how much room you had to respond, and that is worth more than any feature on a comparison table.

Your lead times get honest. When the schedule refuses to book a machine that is already busy, the date it gives you is a date the shop can actually hit. That is what lets you quote lead times you can defend instead of padding everything by two weeks and losing the order to a shop that quoted straight.

Double-booking stops being possible. Not less likely, not caught at standup. Not possible. That single constraint removes an entire category of lost hours, which is why it is the highest-value thing most shops fix first. The habits that get you there are further down this page.

Working out what your capacity actually is

Scheduling against a finite number means knowing the number. Most shops have never worked it out, and the ones that have usually reached for the theoretical figure, which is the one that flatters the schedule and then leaves you short every Thursday.

Start with the basics. No spreadsheet required for this first pass.

Step 1: Count your available machine-hours

For each machine, multiply:

  • Hours per shift x shifts per day x days per week

Example: You run one 8-hour shift, 5 days a week, and you have 6 machines.

6 machines x 8 hours x 5 days = 240 machine-hours per week

That is your theoretical maximum. The actual number is lower.

Step 2: Subtract non-production time

Not every hour is production time. You need to subtract:

  • Setup/changeover time. Most shops lose 15-25% of available time to setups. If your setups average 20% of machine time, subtract 48 hours from the 240.
  • Planned maintenance. If each machine gets 1 hour of maintenance per week, subtract 6 hours.
  • Breaks and shift transitions. Maybe 30 minutes per machine per day for operator breaks and shift handoffs. That is 15 hours per week.

240 - 48 (setups) - 6 (maintenance) - 15 (breaks) = 171 practical machine-hours per week

That is your real capacity. About 71% of the theoretical max. This is normal for a well-run small shop.

Step 3: Know your bottleneck

Not all machines are equal. Your capacity is really determined by your most constrained machine.

If your VMC runs at 90% utilization but your lathe runs at 40%, your VMC is the bottleneck. Adding more lathe time doesn’t help. Every new job that needs the VMC competes with everything already on it.

Identify your bottleneck. That machine’s capacity is your shop’s true capacity for any job that needs it.

When to say no

Saying no to work is hard. Every job is revenue. But taking on a job you can’t deliver on time is worse than declining it.

Here are clear signals to say no (or push the deadline):

  • Your bottleneck machine is already at 80%+ utilization for the period the job needs it
  • The job requires a setup that would bump an existing job with a tighter deadline
  • You would need overtime to fit it in, and the margin doesn’t justify the overtime cost
  • You don’t have the material in stock and lead time puts the job at risk

Saying no today, with a clear explanation, keeps the relationship intact. Missing the deadline later does not.

Knowing the number is one half. Making the schedule respect it is the other, and there are two ways to buy that.

Two ways to do it, and the price gap between them

Finite capacity scheduling is a principle, not a product. There are two ways to put it into practice, and the industry tends to talk about only the expensive one.

The solver. Advanced Planning and Scheduling software models your capacity in detail, shift calendars, setup matrices, operator skills, tooling, then sequences the work for you and re-sequences when something changes. In a large plant with stable routings, that is genuinely powerful and earns its cost. In a shop with 3 to 30 machines, the licence is the small part of the bill. The real cost is the modelling: an APS is only as good as the data you feed it, and keeping setup matrices accurate for a shop that runs forty different parts a week is a job nobody in a 12-person shop has time to do.

The board. Every machine and every job on one shared schedule, laid out against real time, where the system will not let two jobs occupy the same machine or the same person at once. No solver decides the sequence. You do, which in a small shop you were going to do anyway, because you know which customer waits and which one does not. The capacity is still finite. It is enforced by the tool instead of optimised by it.

This is the option most small shops are never shown, because it does not have a sales team. It is what a scheduling board is for, and for a shop under 30 machines it captures most of the benefit at a fraction of the cost and effort. Machestra is one of these: 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.

Keeping two jobs off the same machine

Finite capacity is the principle. A double-booking is what its absence looks like on a Tuesday morning, with two operators and one machine. Five habits close the gap, and only one of them is software.

Keep one schedule

Not a whiteboard and a spreadsheet. Not a spreadsheet and your head. One system that everyone looks at and everyone updates.

Per-job paperwork is not a second schedule, so it does not count against this. A job traveler travelling with the parts tells one operator what to do with the job in their hands. It has no idea what the other twelve jobs are doing, which is exactly why it cannot catch a double-booking and the schedule has to live somewhere else.

When there’s one place to check, people check it. When there are three places, people check none of them.

Add conflict detection

This is the fix. When you assign a job to a machine, the system should check whether that machine is already booked at that time. If it is, the system should warn you before you save.

Spreadsheets can’t do this reliably. Whiteboards can’t do this at all. This is where scheduling software earns its cost. A $19/mo* tool that catches two double-bookings per month is paying for itself in the first week.

Conflict detection doesn’t just prevent mistakes. It changes how you schedule. Instead of guessing whether a machine is free and hoping you’re right, you know. You schedule with confidence because the system checks for you.

Make the schedule visible to everyone

Your operators shouldn’t have to walk to the office to see the schedule. The schedule should be available on a phone, a tablet, or any browser. When the operator can check the schedule from the machine, they catch conflicts too.

More eyes on the schedule means more chances to catch a problem before it reaches the floor. If Operator A sees that Operator B is scheduled on the same machine at the same time, they’ll say something. But only if they can see it.

Handle rush jobs through the system

This is the hardest habit to build. When a rush job comes in, the instinct is to just commit and figure it out later. Force yourself to check the schedule first.

Open the schedule. Look at the machine. Is it free at the time you need? If yes, assign the job. If no, see what’s on it and decide whether to bump or reschedule.

This takes 30 seconds. It prevents an hour-long mess on the floor. The math works out.

Limit who can schedule

Not everyone needs to assign jobs to machines. The more people who can change the schedule, the more chances for conflicts. Pick 1 to 2 people who manage the schedule. Everyone else views it.

This doesn’t mean your team can’t give input. They can flag problems, suggest changes, and update job statuses. But the act of assigning a job to a machine at a specific time should go through a small number of people who coordinate with each other.

The part software cannot do for you

Finite capacity scheduling only works if the capacity numbers are true, and this is where most implementations quietly fail.

If you schedule from cycle time, the cutting number, you are still 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. Schedule from that number and your finite schedule confidently books capacity that does not exist, which is why jobs run late even when the machines are fine.

Time a few of your common part families door to door. You do not need a time and motion study, you need honest numbers on the ten jobs you run most. That is also the input the capacity arithmetic above depends on, so the work pays for itself twice.

When you actually need an APS

To be fair to the category, there is a point where a solver is the right answer. Look at buying one when you are running hundreds of jobs at once across dozens of work centres, when your routings are stable enough that a setup matrix stays accurate for more than a month, when sequencing decisions are too complex for a person to hold in their head, and when you have someone whose job includes maintaining the model.

If you are a 9-machine shop running aerospace and medical parts in small batches, you are almost certainly not there. What you need is one schedule that tells the truth about time and refuses to book a machine twice. The same question comes up now with the AI label on it, and the answer sorts out the same way: does a small shop actually need AI scheduling software.

Where to start

You can start on Monday without buying anything. Get honest process times for your ten most common jobs. Put every machine and every open job in one place. Then let nothing be booked twice, whether that rule is enforced by software or by one person owning the board.

If you want to see what the software version looks like, our guide to machine scheduling software for small shops walks through what to look for and what to skip, and the complete guide to job shop scheduling covers the mechanics underneath all of it.

Machestra is built on the second approach: your machines and your people on one board, real time blocks, and a hard stop when a job would put a machine or an operator in two places at once. Finite capacity, without the APS price tag.

*All Machestra prices shown in USD. Actual price may vary based on your location.

Frequently asked questions

What is finite capacity scheduling?

Finite capacity scheduling means building a schedule against the capacity you actually have. Every machine runs one job at a time and every operator is in one place at a time, so the schedule can only place work where there is real room for it. If a mill is booked from 9 to 2, nothing else can be scheduled on that mill from 9 to 2. The plan you end up with is one the shop can physically run.

Is finite capacity scheduling the same as capacity planning?

No, they work at different distances. Capacity planning asks whether the shop as a whole can absorb the work coming at it over the next weeks or months, and the answer changes what you hire, buy, or turn down. Finite capacity scheduling asks where a specific job goes on a specific machine on a specific day. Planning tells you the week holds 40 hours and you have sold 53. Scheduling tells you which three jobs are the ones that will not fit.

Does MRP or ERP do finite capacity scheduling?

Most MRP systems schedule at infinite capacity by default. MRP was built to work out what to buy and when to start, not to sequence 12 machines on a Tuesday, so it explodes the bill of materials, backs off the lead time, and hands you a start date without checking whether the machine is free. Some ERPs sell a finite scheduling or APS module on top, usually as a paid add-on that needs shift calendars, setup matrices, and a consultant to configure.

Do I need APS software for finite capacity scheduling?

No. Advanced Planning and Scheduling software is one way to do finite capacity scheduling, not the definition of it. APS runs a solver that sequences the work for you, which earns its cost in a large plant with stable routings. A shop with 3 to 30 machines gets most of the benefit from a shared scheduling board that shows real machine time and blocks a double-booking when you try to make one. The scheduling is finite either way. The difference is whether a solver sequences it or you do.

How do I start finite capacity scheduling in a small shop?

Start with three things. Write down honest process times, door to door, including setup, inspection, and moves, not just the cutting number. Put every machine and every open job on one shared schedule so you can see what is genuinely free. Then stop letting anything be booked twice, whether that is enforced by software or by one person owning the board. Most of the gain comes from the first and third steps, and neither one requires buying anything.

Why do machines get double-booked?

The most common cause is using a system that doesn't check for conflicts: spreadsheets, whiteboards, or memory. Two people schedule different jobs on the same machine without knowing about each other's plans. No conflict detection means no warning until it's too late.

How do I prevent double-booking machines?

Use a scheduling system with conflict detection. When you assign a job to a machine, the system should check whether that machine is already booked at that time and warn you before you save. Software is the most reliable version of this; one person owning a single shared board is the version that costs nothing.

Can spreadsheets detect scheduling conflicts?

Not on their own. You can build conditional formatting rules, but they're fragile, hard to maintain, and only catch conflicts you've anticipated. Purpose-built scheduling software handles this automatically.

How do I calculate my shop's capacity?

Start with available machine hours. Multiply the number of machines by the hours per shift, then by the number of shifts. Subtract planned downtime for maintenance and setups. The result is your practical capacity in machine-hours per week.

When should a small shop say no to new work?

When taking the job would push your schedule past the point where you can reliably meet deadlines on existing work. If you are already running above 80% utilization on your bottleneck machine, adding more work will cause delays across the board.

Start scheduling in under 10 minutes

3 machines. No per-user fees. No credit card. No time limit.

Get Started Free

Not ready? Grab the free job traveler template instead.