You blame the machines, but the machines are fine
A job is late. You walk the floor looking for the reason, and the story is always the same. The mill was tied up. The lathe ran long. You needed more hours in the day, or maybe another machine.
So you think it is a capacity problem. It usually is not.
The real reason most jobs run late is quieter than a busy machine. It is the gap between the cycle time you put on the schedule and the time the job actually took. You scheduled twenty minutes a part. It ran twenty six. Nobody noticed, because six minutes is nothing. Then it ran on a batch of fifty, and those six minutes became five hours, and five hours pushed every job behind it into next week.
The machines did their job. The numbers you fed the schedule did not. And once you see that, you stop trying to buy your way out of a problem that a better number would have solved for free.
Where the time actually goes
The cycle time most shops schedule from is a cutting number. It is what CAM tells you, or what you worked out by hand: feed, speed, depth, length of cut. That math is correct as far as it goes. The trouble is how far it goes.
The cutting formula only counts the cutting
A real machine does a lot of things that the cutting formula never sees. Tool changes. Acceleration and deceleration at every corner, because the published rapid traverse rate is an ideal the machine rarely reaches on short moves. Rapid positioning between features. Spindle speed changes. Coolant on and off. None of that is cutting, all of it is clock time, and the shorter your toolpaths are, the bigger a share it becomes. A part with a lot of small features and short moves can run far past its cutting estimate, because the overhead is most of the job.
Across the industry the gap between programmed cycle time and measured time commonly lands between 5 and 20 percent. A 5 to 10 percent miss does not feel like much when you quote one part. It feels like a lot when it stacks across a batch and a week.
Cycle time is not the same as process time
Here is the distinction that quietly wrecks schedules. Cycle time is how long the machine runs the part. Process time is how long the part actually ties up the work center, which is the cycle plus all the repeatable work wrapped around it. Loading and unloading. Deburr at the machine. A quick inspection. Walking to the crib because the next tool was not staged.
If you schedule from cycle time alone, you are scheduling the cutting and pretending the rest is free. It is not free. It is just invisible, and invisible work is exactly the work that makes a confident schedule come apart. This is the same blind spot behind a lot of missed lead time quotes: the work was estimated honestly and the wait around it was ignored.
Unpredictable is worse than slow
A slow machine you can plan around. A machine you cannot predict, you cannot. A cycle that averages sixty seconds but swings between forty and ninety is the real enemy, because every estimate built on the average is wrong in one direction or the other. Consistency is worth more to a schedule than raw speed. A part that always runs twenty four minutes is easier to live with than one that runs anywhere from eighteen to thirty, even though the second one is sometimes faster.
How a small miss becomes a late job
Run the math once and it is obvious why this hides so well.
Say a part is scheduled at twenty minutes and actually runs twenty six. On one part, six minutes. On a batch of fifty, that is three hundred minutes, which is five hours your schedule did not know about. Now the next job on that machine starts five hours late, and the one after that, and by Thursday a fifteen minute error per part has eaten most of a shift. Nobody made a big mistake. The schedule was just built on a number that was a little too hopeful, fifty times in a row.
This is why throwing capacity at the problem rarely fixes it. A new machine running off the same optimistic numbers just gives you a second place for the gap to compound. The fix is not more hours. It is more honest hours.
Closing the gap
You do not need sensors on every spindle to fix this. You need to stop scheduling from the best case and start scheduling from what actually happens.
Measure the jobs you run all the time
You do not have to time everything. Most shops have a handful of part families that make up the bulk of the work. Time those honestly, door close to door open, including the load, the deburr, the inspection. Compare that real number to the estimate you have been scheduling from. The difference is usually a surprise the first time, and it is the single most useful number you can put back into your schedule.
Schedule from process time, not cycle time
Once you know the real door to door time, schedule from that. It will make your capacity look smaller on paper, and that is the point. The capacity was always that size. You were just promising work against minutes that did not exist. A schedule built on process time is a schedule you can actually hit, which is worth more than one that looks roomy and lies. Knowing your true numbers is also what makes honest capacity planning possible, because you cannot plan capacity you have never measured.
Keep buffers small, deliberate, and per job type
When you know your real variance, your buffer can be small and specific instead of a blanket guess. Standard parts you have run a hundred times barely need one. New or fiddly work needs more, and now you know roughly how much. That beats padding every job by a flat amount, which is the same self protecting habit that makes lead time quotes too long to win the order.
Track quoted versus actual after every job
After a job ships, the time you scheduled and the time it took are a free lesson if you write them down. A few weeks of that and patterns show up. You always underquote the deep pocket parts. One alloy always runs slow. The estimate is fine until setup, and setup is where the time leaks. That feedback loop is how guesses turn into numbers you can trust, and it costs nothing but the discipline to look. It is the same habit that keeps jobs from getting lost across machines: one place where the real story of every job gets recorded.
The schedule is only as good as the numbers in it
Late jobs feel like a capacity problem because a busy floor is the thing you can see. The thing you cannot see is the quiet gap between the time you planned and the time it took, repeated across every part and every batch until it adds up to a missed date.
You close that gap by measuring what actually happens, scheduling from process time instead of the cutting estimate, and keeping a record of where your guesses were wrong so they stop being guesses. None of that requires new machines. It requires one schedule built on real numbers, where the cycle time on the screen is the cycle time on the floor. For CNC shops, where the expensive thing is spindle time, that honesty is the whole difference between a schedule you trust and one you are forever apologizing for.