Turn your real-world experience into part of the show.
M365 FM Podcast
M365 FM Podcast
The M365 FM Podcast is your daily destination for everything happening across the Microsoft cloud. We cover the full spectrum of Microsoft 365, including Teams, SharePoint, Exchange, OneDrive, and the tools driving the modern workplace. Each episode delivers practical insights, expert interviews, and hands-on strategies for IT admins, cloud architects, developers, power users, and decision-makers in the Microsoft ecosystem. We explore the latest M365 updates, dive into Power Platform topics like Power Apps, Power Automate, Power BI, Power Pages, and share real-world guidance on automation, digital transformation, and low-code development. You’ll also get deep insights into Azure, including cloud infrastructure, Azure AD / Entra ID, identity, hybrid cloud, and Azure security. The show features focused discussions on Microsoft 365 Security, Defender, compliance, DLP, Zero Trust, and the best practices needed to protect and optimize your environment. We also highlight how AI and Copilot for Microsoft 365 are transforming productivity, collaboration, and automation across the cloud. Whether you want to improve Teams collaboration, strengthen security, enhance cloud architecture, or stay ahead of the latest Microsoft 365, Azure, Power Platform, and AI announcements, The M365 Podcast is your essential guide. M365 FM Podcast is Part of the M365.Show Network.
Sept. 14, 2026

How Finite Capacity Scheduling Actually Works in Manufacturing

How Finite Capacity Scheduling Actually Works in Manufacturing
How Finite Capacity Scheduling Actually Works in Manufacturing
M365 FM Podcast
How Finite Capacity Scheduling Actually Works in Manufacturing

Key Takeaways

  • Infinite capacity planning quickly calculates broad material requirements and demand across thousands of products, but it assumes factory capacity is limitless and cannot guarantee runnable shop floor schedules.
  • Finite capacity scheduling tests whether work can actually fit into available time alongside machines, qualified people, tools, materials, and process rules.
  • Usable time on the shop floor depends on practical constraints like maintenance, setups, breaks, and first-piece checks rather than raw calendar hours.
  • A bottleneck acts as the resource that limits the pace of the entire flow, requiring careful sequencing strategies to balance changeover times and due dates.
  • Finite capacity scheduling does not manufacture extra capacity; instead, it exposes conflicts early enough for planners to adjust sequences, add capacity, or renegotiate customer delivery dates.

Your ERP says the production order should finish next Thursday. The routing looks correct. Material is planned. Everything appears under control. Then you walk onto the shop floor and discover the machine is already overloaded, the required operator is booked elsewhere, the fixture is in use, or the material exists in ERP but has not actually been inspected and released. That is the gap between planning demand and scheduling reality. In this deep dive, we break down how finite capacity scheduling actually works in manufacturing β€” from ERP and MRP planning to a schedule that accounts for the physical constraints of machines, people, tools, materials, quality gates, maintenance and time.

INFINITE VS. FINITE CAPACITY PLANNING
Infinite capacity planning has an important purpose. ERP and MRP systems can quickly calculate demand, material requirements, planned orders and dates across thousands of products and long planning horizons. But a planned date does not prove that the factory has enough usable capacity to execute the work. Finite scheduling asks the harder question: Can this operation actually run at this time, on this resource, with everything required to execute it? That means looking beyond calendar hours to usable capacity and considering machines, qualified people, tooling, fixtures, released material and process conditions.

FROM PRODUCTION ORDER TO SCHEDULED OPERATIONS
A production order cannot simply be treated as one block between a start and finish date. A finite scheduler breaks the order into individual operations and calculates setup time, runtime, waiting and transfer time before searching for eligible resources and available slots. Once an operation occupies a slot, that capacity is no longer available to another order. Delays can therefore propagate through subsequent operations and expose a late order before it reaches the shop floor.

FORWARD VS. BACKWARD SCHEDULING
We examine the two fundamental scheduling perspectives. Forward scheduling asks: Given what is ready now and the capacity we actually have, when can this order realistically finish? Backward scheduling starts with the requested delivery date and asks: When must every preceding operation happen for us to keep this promise? Comparing the two can expose the critical decision gap between the customer promise and what current production conditions can actually deliver.

SEQUENCING, BOTTLENECKS AND CHANGEOVERS
Having enough capacity somewhere in the calendar does not automatically tell you which order should run next. We explore competing sequencing strategies including due-date priority, customer priority, shortest processing time, critical ratio and campaign-based sequencing. Changeovers are especially important. Switching fixtures, tools, programs, materials or product families consumes real bottleneck capacity. A schedule that ignores sequence-dependent setup time can look feasible while being impossible to execute.

MATERIAL, PEOPLE, TOOLS AND QUALITY ARE CAPACITY TOO
A free machine does not necessarily mean an operation can start. Material may still be awaiting inspection. The qualified operator may work another shift. A fixture may be installed on another machine. A gauge may require calibration. Quality may need to approve the first piece. Finite scheduling therefore becomes a model of relationships between products, operations, resources, skills, tooling, materials and process rules, rather than simply a machine calendar.

WHAT HAPPENS WHEN THE PLAN BREAKS?
Machines fail. Materials arrive late. Operators become unavailable. Quality holds appear. Priorities change. A useful finite schedule should respond without constantly reshuffling the entire factory. We discuss rescheduling, protected or β€œfreeze” zones, schedule nervousness and how planners can evaluate alternative scenarios instead of blindly accepting a completely regenerated schedule. The objective is not to eliminate human decisions. It is to give planners better information about what each decision will displace.

ERP, MES, APS AND THE MICROSOFT DATA LAYER
The episode also examines where the different technology layers belong. ERP owns much of the commercial and transactional context. MES provides execution status from the shop floor. Maintenance and quality systems contribute additional constraints. The scheduling or APS layer combines those inputs with production rules to determine feasible options. Microsoft technologies can support the surrounding integration, analytics and decision architecture, but they do not automatically become the finite scheduling engine. The production logic still needs explicit constraints, ownership and scheduling rules.

WHERE AI ACTUALLY HELPS
AI can help planners retrieve information, summarize disruptions, explain scheduling outcomes and surface risks. Predictive models can estimate potential machine failures, material delays or changing cycle times. But AI should not invent production feasibility. The scheduling or optimization engine evaluates explicit constraints; AI supports the surrounding decision process; and the planner remains accountable for choices involving customers, quality, labor and production priorities.

THE KEY TAKEAWAY
Finite capacity scheduling does not create capacity. If a resource has 70 usable hours and demand requires 100, an algorithm cannot manufacture the missing 30 hours. What a good schedule can do is expose that conflict early enough to decide whether to change the sequence, add capacity, use an approved alternative, subcontract work or renegotiate the customer commitment. The goal is not a factory where every machine looks busy. The goal is a plan that can actually run.

Become a supporter of this podcast: https://www.spreaker.com/podcast/m365-fm-a-microsoft-mvp-podcast-by-mirko-peters--6704921/support.

πŸš€ Want to be part of m365.fm?

Then stop just listening… and start showing up.

πŸ‘‰ Connect with me on LinkedIn and let’s make something happen:

  • πŸŽ™οΈ Be a podcast guest and share your story
  • 🎧 Host your own episode (yes, seriously)
  • πŸ’‘ Pitch topics the community actually wants to hear
  • 🌍 Build your personal brand in the Microsoft 365 space

This isn’t just a podcast — it’s a platform for people who take action.

πŸ”₯ Most people wait. The best ones don’t.

πŸ‘‰ Connect with me on LinkedIn and send me a message:
"I want in"

Let’s build something awesome πŸ‘Š

Frequently Asked Questions

What is finite capacity scheduling in manufacturing?

Finite capacity scheduling is a planning approach that ensures production work is only scheduled when the time, machines, materials, tooling, and labor actually exist to execute it.

What is the difference between infinite and finite capacity planning?

Infinite capacity planning assumes that capacity can stretch endlessly to meet demand to calculate broad material requirements, whereas finite capacity planning accounts for the real physical constraints and limits of the shop floor.

Why do ERP systems use infinite capacity planning?

ERP systems use infinite planning because it keeps planning models manageable and allows fast calculations of material requirements and planned orders over long horizons without requiring granular shift and machine details.

How do changeovers impact manufacturing schedules?

Switching fixtures, tools, programs, or materials consumes real bottleneck capacity; ignoring sequence-dependent setup times can result in a schedule that looks feasible on paper but is impossible to execute.

1
00:00:00,000 --> 00:00:03,400
Your ERP releases production orders and assigns a planned finish date,

2
00:00:03,400 --> 00:00:04,960
and it all looks fine on paper.

3
00:00:04,960 --> 00:00:08,600
But then you walk the shop floor and find the machine that's supposed to make those parts

4
00:00:08,600 --> 00:00:12,480
is already buried under more work than it can physically finish in the time available.

5
00:00:12,480 --> 00:00:13,760
Now here's the real challenge.

6
00:00:13,760 --> 00:00:15,200
That gap shows up everywhere.

7
00:00:15,200 --> 00:00:18,960
The system has an order date, but it doesn't track time on the machine itself,

8
00:00:18,960 --> 00:00:22,080
and that machine might need a specific operator who's already booked,

9
00:00:22,080 --> 00:00:24,520
or a fixture tied up on another job.

10
00:00:24,520 --> 00:00:26,840
Material might exist as a stock number in ERP,

11
00:00:26,840 --> 00:00:30,240
but not as inspected released material sitting at the machine ready to run.

12
00:00:30,240 --> 00:00:33,640
So imagine one loaded machine loses four hours during the day.

13
00:00:33,640 --> 00:00:38,080
By itself, that's not a disaster, but it forces a real question, which order moves first.

14
00:00:38,080 --> 00:00:40,840
The one due tomorrow, the repair part for a customer waiting,

15
00:00:40,840 --> 00:00:42,520
the job that shares the current setup,

16
00:00:42,520 --> 00:00:46,560
or the one feeding an assembly cell where people are already booked for the afternoon.

17
00:00:46,560 --> 00:00:49,000
Most factories answer that question with a mix of experience,

18
00:00:49,000 --> 00:00:53,120
phone calls, whiteboards, and often a spreadsheet that survived several software projects.

19
00:00:53,120 --> 00:00:54,480
That's not a criticism.

20
00:00:54,480 --> 00:00:58,480
It's what people do when the plan doesn't carry enough of the factory's real limits.

21
00:00:58,480 --> 00:01:01,920
Finite capacity scheduling puts the plan through a tougher test.

22
00:01:01,920 --> 00:01:05,120
It asks whether work can actually fit into the available time

23
00:01:05,120 --> 00:01:08,960
with the people, machines, tools, material, and rules needed to run it.

24
00:01:08,960 --> 00:01:11,080
It doesn't promise every order will meet its date,

25
00:01:11,080 --> 00:01:14,000
but it tells you sooner when that promise can't hold.

26
00:01:14,000 --> 00:01:16,320
And that moves us past the late order symptom

27
00:01:16,320 --> 00:01:20,600
to look at the planning assumption that created the impossible plan in the first place.

28
00:01:20,600 --> 00:01:22,280
Infinite capacity planning.

29
00:01:22,280 --> 00:01:24,440
Let's cut through the hype for a second.

30
00:01:24,440 --> 00:01:29,200
A lot of production planning starts with an assumption that sounds odd when you say it out loud.

31
00:01:29,200 --> 00:01:32,840
Capacity can stretch as far as demand needs it to go.

32
00:01:32,840 --> 00:01:35,600
That approach is called infinite capacity planning,

33
00:01:35,600 --> 00:01:38,160
where the system places demand against dates,

34
00:01:38,160 --> 00:01:40,960
calculates requirements, and creates planned work

35
00:01:40,960 --> 00:01:44,600
without forcing every operation to fit within the real limits of every machine,

36
00:01:44,600 --> 00:01:47,000
person, tool, and shift.

37
00:01:47,000 --> 00:01:48,240
This isn't bad planning.

38
00:01:48,240 --> 00:01:49,560
It has a specific job.

39
00:01:49,560 --> 00:01:53,600
Your ERP system handles the commercial and transactional side of manufacturing,

40
00:01:53,600 --> 00:01:57,960
sales orders, work orders, bills of material, inventory, purchasing,

41
00:01:57,960 --> 00:02:00,520
supplier dates, and financial data.

42
00:02:00,520 --> 00:02:03,280
Material requirements planning, or MRP,

43
00:02:03,280 --> 00:02:06,800
uses that info to figure out what materials and components you need,

44
00:02:06,800 --> 00:02:08,280
and when you might need them.

45
00:02:08,280 --> 00:02:12,480
For that kind of planning, speed matters because you might need to assess demand across months,

46
00:02:12,480 --> 00:02:15,880
across plans, across suppliers, and across thousands of part numbers.

47
00:02:15,880 --> 00:02:18,720
An ERP system can build a broad plan quickly,

48
00:02:18,720 --> 00:02:22,000
and it can expose material shortages before they become surprises.

49
00:02:22,000 --> 00:02:25,200
But a transaction plan and a runnable shop flow schedule are two different things.

50
00:02:25,200 --> 00:02:27,760
A transaction plan can say a work order should finish next Thursday

51
00:02:27,760 --> 00:02:31,240
because the order, routing, and due date support that result in the system,

52
00:02:31,240 --> 00:02:34,160
while a runnable schedule must answer a more physical question.

53
00:02:34,160 --> 00:02:36,120
Which resource will run the first operation?

54
00:02:36,120 --> 00:02:38,160
At what time? After which prior job?

55
00:02:38,160 --> 00:02:41,480
With which operator? And with what material and tooling ready?

56
00:02:41,480 --> 00:02:44,560
Those aren't small details, but that's the actual work.

57
00:02:44,560 --> 00:02:47,240
Think about a simple case where your ERP sees demand

58
00:02:47,240 --> 00:02:52,760
for 40 hours of machining next week, but the work center calendar only shows 20 working hours.

59
00:02:52,760 --> 00:02:55,600
If the planning setup treats the resource as infinite,

60
00:02:55,600 --> 00:03:00,320
the system can put all 40 hours into that week without breaking a single rule.

61
00:03:00,320 --> 00:03:03,760
The dates might look tidy, but the load doesn't fit.

62
00:03:03,760 --> 00:03:06,560
That isn't a software bug. It's a design assumption.

63
00:03:06,560 --> 00:03:10,120
Infinite planning sticks around because it keeps the planning model manageable.

64
00:03:10,120 --> 00:03:13,640
It can work with rough capacities rather than every shift detail,

65
00:03:13,640 --> 00:03:18,960
and it can plan long horizons without trying to predict every machine stop or operator absence.

66
00:03:18,960 --> 00:03:23,720
And in many plans, the master data needed for a strict finite schedule simply isn't ready yet.

67
00:03:23,720 --> 00:03:26,320
Maybe the routing says an operation takes 30 minutes,

68
00:03:26,320 --> 00:03:28,720
but production usually needs closer to 50.

69
00:03:28,720 --> 00:03:31,480
And maybe the work center calendar assumes three shifts,

70
00:03:31,480 --> 00:03:33,600
but the plant currently runs two.

71
00:03:33,600 --> 00:03:35,720
And then there's the alternate machine that exists on paper,

72
00:03:35,720 --> 00:03:37,440
but hasn't been approved for that part.

73
00:03:37,440 --> 00:03:40,920
If you force a detailed schedule onto week data, you don't get control.

74
00:03:40,920 --> 00:03:42,880
You get a very precise version of a guess.

75
00:03:42,880 --> 00:03:47,280
So there's a practical reason to use broad, infinite planning at the ERP level.

76
00:03:47,280 --> 00:03:50,240
It helps you see demand by material and create work.

77
00:03:50,240 --> 00:03:53,200
But the problem starts when people treat that broad plan as proof

78
00:03:53,200 --> 00:03:55,000
that the shop floor can deliver those dates.

79
00:03:55,000 --> 00:03:58,760
A date from MRP usually means this is when the system expects the work.

80
00:03:58,760 --> 00:04:02,560
Not a finite set of resources can complete the work by then.

81
00:04:02,560 --> 00:04:04,960
That distinction changes how you read overload.

82
00:04:04,960 --> 00:04:08,560
An overloaded work center isn't necessarily a failure of the planner or the ERP.

83
00:04:08,560 --> 00:04:12,080
It's information that demand exceeds the capacity currently modeled for that period.

84
00:04:12,080 --> 00:04:16,360
The plant now needs a decision, move demand, add capacity, change the route,

85
00:04:16,360 --> 00:04:19,160
alter the promise, or accept the late delivery risk.

86
00:04:19,160 --> 00:04:24,240
Without finite scheduling, that decision stays hidden until the queue builds in front of the machine.

87
00:04:24,240 --> 00:04:29,840
And the supervisor sees the conflict first even though it existed in the plan days or weeks earlier.

88
00:04:29,840 --> 00:04:33,400
Let's follow one production order now as it leaves ERP with a due date and a routing,

89
00:04:33,400 --> 00:04:36,960
then reaches the machine that must turn that plan into a physical part.

90
00:04:36,960 --> 00:04:38,640
A factory scenario.

91
00:04:38,640 --> 00:04:41,640
With one bottleneck, here's a scenario I see all the time.

92
00:04:41,640 --> 00:04:44,720
Picture a plant that makes machined components and assembled units.

93
00:04:44,720 --> 00:04:48,400
Two shifts and most workflows through a shared CNC machining center

94
00:04:48,400 --> 00:04:50,240
before hitting assembly cells downstream.

95
00:04:50,240 --> 00:04:52,520
That machine is the bottleneck we're about to dig into.

96
00:04:52,520 --> 00:04:55,640
Now here's the thing, this plant doesn't just produce one part type.

97
00:04:55,640 --> 00:04:58,000
You've got orders needing a short milling operation,

98
00:04:58,000 --> 00:04:59,680
others needing drilling or turning,

99
00:04:59,680 --> 00:05:03,480
and some requiring a longer machining sequence before assembly can even start.

100
00:05:03,480 --> 00:05:05,240
Every order has its own due date,

101
00:05:05,240 --> 00:05:08,320
and your balancing standard customer orders, urgent service parts,

102
00:05:08,320 --> 00:05:13,520
and internal assembly orders that already have people, material, and test capacity lined up.

103
00:05:13,520 --> 00:05:16,320
From the planner's view, everything looks released.

104
00:05:16,320 --> 00:05:20,560
The ERP has the orders, routing steps, quantities, and dates.

105
00:05:20,560 --> 00:05:24,800
Material planning triggered purchase needs and production has a list of work waiting to run.

106
00:05:24,800 --> 00:05:28,040
But walk to the machining area and you see a completely different picture.

107
00:05:28,040 --> 00:05:31,240
A real queue sits physically in front of that CNC machine,

108
00:05:31,240 --> 00:05:36,680
carts, pallets, paperwork, material containers, and operators asking, which job is next.

109
00:05:36,680 --> 00:05:38,000
Here's where it gets interesting.

110
00:05:38,000 --> 00:05:40,720
Some of those orders share a setup family.

111
00:05:40,720 --> 00:05:44,600
Same material grade, similar tool package, same fixture arrangement.

112
00:05:44,600 --> 00:05:46,880
Grouping them together saves change over time,

113
00:05:46,880 --> 00:05:50,480
which sounds sensible until one of those later orders has a tighter customer date.

114
00:05:50,480 --> 00:05:53,400
Other orders could use an alternate machine at least in theory,

115
00:05:53,400 --> 00:05:57,640
but that alternate machine runs a different product family only one operator knows the setup,

116
00:05:57,640 --> 00:05:59,960
or the fixture is already committed elsewhere.

117
00:05:59,960 --> 00:06:03,120
So the CNC machining center is where all those planning assumptions

118
00:06:03,120 --> 00:06:06,640
hit physical reality, upstream material might arrive on time,

119
00:06:06,640 --> 00:06:09,080
and downstream assembly might have open capacity,

120
00:06:09,080 --> 00:06:12,800
but none of that helps if the machined component can't leave the bottleneck.

121
00:06:12,800 --> 00:06:14,840
Let me be clear about what a bottleneck actually is.

122
00:06:14,840 --> 00:06:17,640
It's the resource that limits the pace of the whole flow,

123
00:06:17,640 --> 00:06:19,720
doesn't have to be the most expensive machine,

124
00:06:19,720 --> 00:06:22,120
and it doesn't need to run at 100% utilization.

125
00:06:22,120 --> 00:06:26,200
It earns that label when demand for its time consistently exceeds,

126
00:06:26,200 --> 00:06:29,320
or nearly exceeds, the usable time you can get from it.

127
00:06:29,320 --> 00:06:32,440
That machine dictates the cadence for everything downstream,

128
00:06:32,440 --> 00:06:35,320
when it completes fewer parts than planned assembly weights.

129
00:06:35,320 --> 00:06:39,800
When it runs the wrong sequence, an urgent order sits behind lower priority work.

130
00:06:39,800 --> 00:06:42,880
When it spends too long on changeovers between unrelated jobs,

131
00:06:42,880 --> 00:06:45,400
that lost time ripples through the whole plant.

132
00:06:45,400 --> 00:06:49,600
Late starts, idle people, missed inspections, changed delivery dates.

133
00:06:49,600 --> 00:06:52,680
Here's why a planner and a supervisor can both look at the same orders

134
00:06:52,680 --> 00:06:54,800
and reach completely different conclusions.

135
00:06:54,800 --> 00:06:57,400
The planner sees released orders with due dates,

136
00:06:57,400 --> 00:07:01,920
the supervisor sees the machine queue and knows the next decision changes the entire shift.

137
00:07:01,920 --> 00:07:04,240
In practical terms, here's what that looks like.

138
00:07:04,240 --> 00:07:08,000
At the start of the morning shift, the machining center has three orders waiting.

139
00:07:08,000 --> 00:07:11,000
Order A supports an assembly cell later that day.

140
00:07:11,000 --> 00:07:13,200
Order B has the earliest customer due date,

141
00:07:13,200 --> 00:07:16,560
order C shares the same setup family as the job that just finished,

142
00:07:16,560 --> 00:07:19,120
sought only by due date and order B runs first.

143
00:07:19,120 --> 00:07:20,680
That protects one customer promise,

144
00:07:20,680 --> 00:07:22,240
but it requires a full changeover,

145
00:07:22,240 --> 00:07:25,200
and pushes order A past the point where assembly can use it.

146
00:07:25,200 --> 00:07:27,800
Keep the existing setup and run order C first,

147
00:07:27,800 --> 00:07:30,160
and the machining center produces more efficiently,

148
00:07:30,160 --> 00:07:32,640
but the earliest due order stays in the queue,

149
00:07:32,640 --> 00:07:35,000
and your customer risk grows.

150
00:07:35,000 --> 00:07:36,480
Run order A first,

151
00:07:36,480 --> 00:07:38,120
and you protect the assembly cell,

152
00:07:38,120 --> 00:07:40,520
but delay both external customer orders.

153
00:07:40,520 --> 00:07:43,040
None of these choices comes from a lack of effort.

154
00:07:43,040 --> 00:07:47,280
The plant has a real conflict and someone needs to decide which consequence to accept.

155
00:07:47,280 --> 00:07:49,560
This is where a simple order list stops helping.

156
00:07:49,560 --> 00:07:51,440
Sorting by due date gives you a rule,

157
00:07:51,440 --> 00:07:54,800
but it doesn't tell you whether the order can run on the required machine,

158
00:07:54,800 --> 00:07:57,520
whether the current setup changes available time,

159
00:07:57,520 --> 00:07:59,280
whether an operator has the skill,

160
00:07:59,280 --> 00:08:02,920
or what downstream work will wait if you pick one job over another.

161
00:08:02,920 --> 00:08:05,840
The queue has turned planning into a scheduling problem.

162
00:08:05,840 --> 00:08:07,600
What finite actually means?

163
00:08:07,600 --> 00:08:11,360
Let's cut through the jargon and talk about what finite actually means.

164
00:08:11,360 --> 00:08:14,200
Finite capacity scheduling starts with a simple rule,

165
00:08:14,200 --> 00:08:17,640
only put work where the time and resources actually exist to do it.

166
00:08:17,640 --> 00:08:21,080
That sounds obvious, but on a shop floor it changes the whole conversation.

167
00:08:21,080 --> 00:08:23,320
Instead of asking which orders should finish this week,

168
00:08:23,320 --> 00:08:24,080
you ask,

169
00:08:24,080 --> 00:08:25,680
given the real limits of this plant,

170
00:08:25,680 --> 00:08:28,040
which operations can run this week in which sequence,

171
00:08:28,040 --> 00:08:30,480
and what will that choice push out?

172
00:08:30,480 --> 00:08:33,760
A finite schedule treats capacity as a limit, not a wish.

173
00:08:33,760 --> 00:08:35,200
Here's a common mistake, I see.

174
00:08:35,200 --> 00:08:36,680
Someone looks at the machine calendar,

175
00:08:36,680 --> 00:08:38,360
sees two shifts Monday through Friday,

176
00:08:38,360 --> 00:08:40,720
and calls that 80 available machine hours.

177
00:08:40,720 --> 00:08:43,600
But nobody actually produces for 80 clean hours,

178
00:08:43,600 --> 00:08:44,960
just because the building is open.

179
00:08:44,960 --> 00:08:47,440
You've got breaks, plan maintenance, handover, setup,

180
00:08:47,440 --> 00:08:48,640
first piece checks, cleaning,

181
00:08:48,640 --> 00:08:51,000
and all the small stops that happen in normal production.

182
00:08:51,000 --> 00:08:53,440
Some machines run unattended for part of a shift,

183
00:08:53,440 --> 00:08:55,640
others need a trained person present.

184
00:08:55,640 --> 00:08:58,880
The capacity that matters is usable time, not calendar time.

185
00:08:58,880 --> 00:09:01,400
Usable time depends on more than just the machine.

186
00:09:01,400 --> 00:09:03,880
A work order might need a specific CNC machine

187
00:09:03,880 --> 00:09:06,080
for its size, tolerance, or program,

188
00:09:06,080 --> 00:09:08,840
but it also needs an operator with the right approval,

189
00:09:08,840 --> 00:09:10,600
a fixture that fits the part,

190
00:09:10,600 --> 00:09:14,440
cutting tools with enough remaining life, material from an approved lot,

191
00:09:14,440 --> 00:09:17,320
and an inspection step before the next operation.

192
00:09:17,320 --> 00:09:20,600
If any one of those things is missing, the work can't run.

193
00:09:20,600 --> 00:09:22,120
An open hour on the machine doesn't help.

194
00:09:22,120 --> 00:09:25,320
This is where people often misunderstand finite capacity scheduling.

195
00:09:25,320 --> 00:09:29,000
They hear finite, and assume the schedule becomes rigid.

196
00:09:29,000 --> 00:09:31,520
A timetable nobody can touch once it's published.

197
00:09:31,520 --> 00:09:32,840
But it doesn't work like that.

198
00:09:32,840 --> 00:09:37,120
A finite schedule is a current model of what can run under the constraints, you know, right now.

199
00:09:37,120 --> 00:09:39,760
When a constraint changes, the schedule should respond.

200
00:09:39,760 --> 00:09:43,200
A machine stops, material arrives early, a quality hold clears,

201
00:09:43,200 --> 00:09:46,560
an operator calls in sick, or maintenance needs to bring forward a repair.

202
00:09:46,560 --> 00:09:48,840
The plan changes because the factory changed.

203
00:09:48,840 --> 00:09:52,640
That doesn't mean you should rebuild every schedule from scratch for a minor change.

204
00:09:52,640 --> 00:09:56,680
A schedule that changes constantly becomes hard to execute, and people stop trusting it.

205
00:09:56,680 --> 00:09:59,880
But the system needs a way to show the effect of a real change,

206
00:09:59,880 --> 00:10:04,120
rather than leaving an old plan in place and hoping the shift absorbs the difference.

207
00:10:04,120 --> 00:10:08,600
There's also a critical distinction between a feasible schedule and a commercial priority.

208
00:10:08,600 --> 00:10:11,080
A feasible schedule answers a physical question.

209
00:10:11,080 --> 00:10:13,840
Can this operation run on this resource at this time

210
00:10:13,840 --> 00:10:17,320
with the required material tool, person and process conditions?

211
00:10:17,320 --> 00:10:19,680
Commercial priority answers a different question.

212
00:10:19,680 --> 00:10:23,840
Which order deserves preference when more work wants the same constraint capacity?

213
00:10:23,840 --> 00:10:25,160
You need both.

214
00:10:25,160 --> 00:10:28,400
Sales has a customer commitment that puts one order ahead of another.

215
00:10:28,400 --> 00:10:30,600
Service needs a repair part immediately.

216
00:10:30,600 --> 00:10:32,560
Production needs to protect an assembly run

217
00:10:32,560 --> 00:10:36,120
because stopping that sell waste far more capacity than one additional setup.

218
00:10:36,120 --> 00:10:40,320
Those priorities belong in the decision, but they don't erase physical limits.

219
00:10:40,320 --> 00:10:42,800
If the urgent order needs six hours on a machine,

220
00:10:42,800 --> 00:10:44,880
with only two usable hours left today,

221
00:10:44,880 --> 00:10:46,720
the schedule shouldn't pretend otherwise.

222
00:10:46,720 --> 00:10:48,040
It should show the consequence.

223
00:10:48,040 --> 00:10:50,800
Another order moves, over time becomes an option,

224
00:10:50,800 --> 00:10:52,720
or the customer date needs a new conversation.

225
00:10:52,720 --> 00:10:54,920
That is a much more useful form of bad news.

226
00:10:54,920 --> 00:10:57,560
Finite capacity scheduling doesn't create capacity.

227
00:10:57,560 --> 00:11:01,320
It makes the competition for capacity visible while you still have time to choose.

228
00:11:01,320 --> 00:11:03,800
A commercial promise can shape the sequence,

229
00:11:03,800 --> 00:11:07,000
but it can't turn an unavailable fixture into an available one,

230
00:11:07,000 --> 00:11:10,400
or put a qualified operator on a shift where none exists.

231
00:11:10,400 --> 00:11:14,040
So before a scheduler can place even one operation into a real time slot,

232
00:11:14,040 --> 00:11:16,880
it needs to know far more than an order number and a due date.

233
00:11:16,880 --> 00:11:20,560
It needs the data that describes the product, the work, the resources,

234
00:11:20,560 --> 00:11:23,160
and the conditions for that work to actually run.

235
00:11:23,160 --> 00:11:24,640
The scheduling data model.

236
00:11:24,640 --> 00:11:26,520
Here's what a finite schedule actually needs.

237
00:11:26,520 --> 00:11:29,640
A data model that describes work in enough detail to place it in time.

238
00:11:29,640 --> 00:11:31,320
You don't need perfect data whistles.

239
00:11:31,320 --> 00:11:32,760
I've never seen a plant that has it,

240
00:11:32,760 --> 00:11:36,520
but the model has to be honest enough that the scheduler doesn't invent capacity,

241
00:11:36,520 --> 00:11:40,120
routing options, or readiness that production can't support.

242
00:11:40,120 --> 00:11:42,720
Start with the product and its root through the plant.

243
00:11:42,720 --> 00:11:44,320
For each part or product family,

244
00:11:44,320 --> 00:11:47,240
the model needs every operation required to produce it,

245
00:11:47,240 --> 00:11:49,960
and the sequence matters because the scheduler has to understand

246
00:11:49,960 --> 00:11:51,960
what happens first and what waits.

247
00:11:51,960 --> 00:11:53,920
That root also needs planning times,

248
00:11:53,920 --> 00:11:56,800
including run time depending on quantity and cycle time,

249
00:11:56,800 --> 00:11:58,640
setup time before production,

250
00:11:58,640 --> 00:12:02,080
and often batch rules that decide whether everything moves together

251
00:12:02,080 --> 00:12:05,720
or partial quantities transfer as soon as they pass inspection.

252
00:12:05,720 --> 00:12:07,840
Those differences change the dates completely.

253
00:12:07,840 --> 00:12:10,240
A 10 hour order doesn't always block out 10 straight hours

254
00:12:10,240 --> 00:12:12,080
because it might use a setup, run in batches,

255
00:12:12,080 --> 00:12:15,440
wait for approval, and release smaller quantities to the next step.

256
00:12:15,440 --> 00:12:18,480
If the root only gives you a broad duration and a work center name,

257
00:12:18,480 --> 00:12:20,040
the scheduler can produce a date,

258
00:12:20,040 --> 00:12:21,960
but that date doesn't carry much confidence.

259
00:12:21,960 --> 00:12:23,840
Now let's talk about the resource model.

260
00:12:23,840 --> 00:12:25,520
Resources might be specific machines,

261
00:12:25,520 --> 00:12:27,160
groups of similar machines, work centers,

262
00:12:27,160 --> 00:12:28,920
or shared assets that limit throughput,

263
00:12:28,920 --> 00:12:31,800
and the scheduler needs calendars for each, shifts, breaks,

264
00:12:31,800 --> 00:12:33,320
shutdowns, maintenance,

265
00:12:33,320 --> 00:12:36,600
along with an understanding of what each resource can actually do.

266
00:12:36,600 --> 00:12:38,720
A machine name alone tells you very little,

267
00:12:38,720 --> 00:12:41,760
considered two CNC machines in the same ERP work center

268
00:12:41,760 --> 00:12:43,680
that might look identical on paper,

269
00:12:43,680 --> 00:12:45,280
but one has the spindle range,

270
00:12:45,280 --> 00:12:47,160
probing setup, program version,

271
00:12:47,160 --> 00:12:51,240
and fixture interface for a specific part while the other doesn't.

272
00:12:51,240 --> 00:12:54,640
An alternate machine only helps if it's a valid option under current rules

273
00:12:54,640 --> 00:12:56,040
and tooling matters too.

274
00:12:56,040 --> 00:12:58,280
A machine without the right fixture or tool package

275
00:12:58,280 --> 00:13:00,400
isn't available for that job.

276
00:13:00,400 --> 00:13:01,920
Then you need the order itself,

277
00:13:01,920 --> 00:13:05,200
which tells the scheduler how much work it must place when it can start

278
00:13:05,200 --> 00:13:06,640
and when it needs to finish.

279
00:13:06,640 --> 00:13:09,880
Quantity drives runtime, the release date may block early starts

280
00:13:09,880 --> 00:13:11,760
and the due date gives a target.

281
00:13:11,760 --> 00:13:16,360
Priority and customer commitments explain why one order might jump ahead of another.

282
00:13:16,360 --> 00:13:18,800
Material status needs to sit close to that order data

283
00:13:18,800 --> 00:13:20,560
because there's a big difference between material

284
00:13:20,560 --> 00:13:24,120
that purchasing expects next week and material you can issue right now

285
00:13:24,120 --> 00:13:26,720
and the schedule should know whether the order is waiting for receipt,

286
00:13:26,720 --> 00:13:28,840
inspection, kitting, or release.

287
00:13:28,840 --> 00:13:32,600
Otherwise, it might reserve a machine slot for something that can't even start

288
00:13:32,600 --> 00:13:34,640
while another ready order sits in the queue.

289
00:13:34,640 --> 00:13:37,920
The shop floor then turns this model from a plan into a current view

290
00:13:37,920 --> 00:13:42,560
where actual start and finish times tell the scheduler what capacity was really consumed.

291
00:13:42,560 --> 00:13:45,280
Down time reports when a resource became unavailable

292
00:13:45,280 --> 00:13:48,600
and why if possible, scrap changes the remaining quantity,

293
00:13:48,600 --> 00:13:50,280
queue state shows what's waiting

294
00:13:50,280 --> 00:13:53,040
and operator availability adds another layer

295
00:13:53,040 --> 00:13:56,480
when the process depends on someone with a specific skill or approval.

296
00:13:56,480 --> 00:13:59,960
This data doesn't need to come through one giant real-time system.

297
00:13:59,960 --> 00:14:02,560
In some plans, a shift level update is enough,

298
00:14:02,560 --> 00:14:07,040
while in others, a machine stop or completed operation needs faster handling

299
00:14:07,040 --> 00:14:09,200
because the next decision depends on it.

300
00:14:09,200 --> 00:14:11,280
The right timing follows the production problem,

301
00:14:11,280 --> 00:14:14,880
not some generic rule about how advanced the architecture should sound.

302
00:14:14,880 --> 00:14:17,920
Ownership matters just as much as the fields themselves.

303
00:14:17,920 --> 00:14:21,680
ERP typically owns demand, work orders, plant dates,

304
00:14:21,680 --> 00:14:24,560
purchasing signals and most of the material record.

305
00:14:24,560 --> 00:14:27,440
MES owns execution status, labor reporting,

306
00:14:27,440 --> 00:14:29,440
actual quantities and traceability.

307
00:14:29,440 --> 00:14:32,280
Maintenance handles plant downtime and asset condition,

308
00:14:32,280 --> 00:14:34,920
quality controls inspection status and release rules,

309
00:14:34,920 --> 00:14:38,360
and engineering owns routes, standards, process changes

310
00:14:38,360 --> 00:14:42,760
and the technical conditions that decide whether an alternate resource can run apart.

311
00:14:42,760 --> 00:14:45,880
Nobody should assume one team can keep all of this correct alone.

312
00:14:45,880 --> 00:14:48,520
If setup time changes after a process improvement,

313
00:14:48,520 --> 00:14:50,520
someone has to update the planning standard

314
00:14:50,520 --> 00:14:54,120
and if a machine loses a capability after repair or tool change,

315
00:14:54,120 --> 00:14:55,960
that restriction has to reach the schedule.

316
00:14:55,960 --> 00:15:00,200
And if quality blocks a lot, the planning view needs that status before the order hits the machine.

317
00:15:00,200 --> 00:15:02,440
A finite schedule depends on these handoffs,

318
00:15:02,440 --> 00:15:06,840
but clean tables and accurate fields don't automatically give you a workable schedule.

319
00:15:06,840 --> 00:15:11,320
The system also needs to understand how product, operation, resource, material

320
00:15:11,320 --> 00:15:13,960
and production rules connect to each other,

321
00:15:13,960 --> 00:15:17,320
and that's where the model moves beyond records and into relationships.

322
00:15:17,320 --> 00:15:19,880
Constraints are relationships.

323
00:15:19,880 --> 00:15:22,840
Here's the thing, a schedule needs more than good records.

324
00:15:22,840 --> 00:15:25,080
It needs to know how those records depend on each other

325
00:15:25,080 --> 00:15:27,240
when a real order reaches a real machine.

326
00:15:27,240 --> 00:15:31,480
I like to think of a product process resource relationship as a sentence the system can understand.

327
00:15:31,480 --> 00:15:35,160
This product needs this operation, that operation runs on these resources.

328
00:15:35,160 --> 00:15:38,280
It needs this fixture, this skill, this approved material state

329
00:15:38,280 --> 00:15:40,360
and it must follow these process rules.

330
00:15:40,360 --> 00:15:43,720
Without that full sentence, the schedule fills gaps with assumptions.

331
00:15:43,720 --> 00:15:47,240
Take a machine housing as an example where the route may list machining

332
00:15:47,240 --> 00:15:48,680
as the next operation,

333
00:15:48,680 --> 00:15:52,200
and ERP might point to a work center with several CNC machines.

334
00:15:52,200 --> 00:15:54,840
On paper, any machine there looks suitable,

335
00:15:54,840 --> 00:15:57,560
but the housing may need a specific fourth-axis fixture,

336
00:15:57,560 --> 00:15:59,880
a program version approved only on two machines,

337
00:15:59,880 --> 00:16:03,240
and an operator who can run the inspection probe and sign off the first piece.

338
00:16:03,240 --> 00:16:05,960
The operation doesn't just need machining capacity,

339
00:16:05,960 --> 00:16:08,520
it needs a specific combination of conditions.

340
00:16:08,520 --> 00:16:11,240
This is where I find the knowledge graph idea useful.

341
00:16:11,240 --> 00:16:14,520
It's not magic and doesn't need to turn into a huge science project,

342
00:16:14,520 --> 00:16:18,360
because at its simplest, it's a connected map of things and the links between them

343
00:16:18,360 --> 00:16:22,040
where an order links to a product which links to its required operations,

344
00:16:22,040 --> 00:16:26,200
and each operation links to eligible machines, tools, people, materials,

345
00:16:26,200 --> 00:16:28,200
quality checks, and prior operations.

346
00:16:28,200 --> 00:16:32,040
Those links can also carry rules like this tool works for this part

347
00:16:32,040 --> 00:16:33,720
that machine can't run this revision.

348
00:16:33,720 --> 00:16:36,200
This operator can run the process only on the day shift,

349
00:16:36,200 --> 00:16:39,000
or this material lot needs a release before use.

350
00:16:39,000 --> 00:16:41,000
The scheduler can then reason over connections

351
00:16:41,000 --> 00:16:43,720
instead of reading isolated rows from separate tables.

352
00:16:43,720 --> 00:16:46,840
A pile of records might tell you machine 12 is free from 2 o'clock,

353
00:16:46,840 --> 00:16:48,680
or the 481 needs milling,

354
00:16:48,680 --> 00:16:50,440
and the fixture exists somewhere,

355
00:16:50,440 --> 00:16:52,760
but none of that proves the order can start at 2.

356
00:16:52,760 --> 00:16:58,920
The connected model asks harder questions like whether machine 12 is qualified for this operation,

357
00:16:58,920 --> 00:17:01,400
whether the fixture is free for the full run,

358
00:17:01,400 --> 00:17:03,480
whether the material lot matches the part,

359
00:17:03,480 --> 00:17:06,360
whether the prior operation finished an inspection released it,

360
00:17:06,360 --> 00:17:09,240
and whether the operator on that shift can run the setup.

361
00:17:09,240 --> 00:17:10,760
That is factory context.

362
00:17:10,760 --> 00:17:14,760
Alternate routing often exposes the gap between a technical route and a run-able one.

363
00:17:14,760 --> 00:17:17,240
Engineering may know a part can run on two machines,

364
00:17:17,240 --> 00:17:21,080
but that doesn't make both usable today because one machine may need a fixture already in use,

365
00:17:21,080 --> 00:17:23,480
while the other may lack the approved program revision.

366
00:17:23,480 --> 00:17:25,960
The tooling team might not have built the tool package,

367
00:17:25,960 --> 00:17:28,360
or quality, hasn't signed off on that resource.

368
00:17:28,360 --> 00:17:29,560
The machine can cut the part,

369
00:17:29,560 --> 00:17:32,200
but it can't hold the tolerance at the needed volume.

370
00:17:32,200 --> 00:17:33,320
Technically possible,

371
00:17:33,320 --> 00:17:36,040
is not ready approved and practical for this order.

372
00:17:36,040 --> 00:17:38,760
A useful schedule keeps those differences visible.

373
00:17:38,760 --> 00:17:42,600
Otherwise, the system solves overload by moving work onto an alternate machine,

374
00:17:42,600 --> 00:17:44,360
the supervisor can't actually use.

375
00:17:44,360 --> 00:17:46,120
The schedule looks better for 10 minutes,

376
00:17:46,120 --> 00:17:48,440
then the shift spends an hour calling engineering,

377
00:17:48,440 --> 00:17:49,400
looking for tools,

378
00:17:49,400 --> 00:17:51,560
and figuring out whether the move is even allowed,

379
00:17:51,560 --> 00:17:54,040
and that sort of schedule damages trust quickly.

380
00:17:54,040 --> 00:17:56,440
Presidents rules bring another set of links.

381
00:17:56,440 --> 00:17:58,920
Many operations must happen in a strict order,

382
00:17:58,920 --> 00:18:03,320
but the reason for the order matters because Operation 2 physically follows Operation 1,

383
00:18:03,320 --> 00:18:06,200
but can't begin until inspection clears the first.

384
00:18:06,200 --> 00:18:09,160
A part might need to cool before machining continues,

385
00:18:09,160 --> 00:18:11,240
a coding step may need a queue period,

386
00:18:11,240 --> 00:18:14,120
or an assembly might need a test result before final packing.

387
00:18:14,120 --> 00:18:16,760
The system needs to represent those conditions as rules,

388
00:18:16,760 --> 00:18:19,080
not just as assumed gaps between dates.

389
00:18:19,080 --> 00:18:23,160
Consider an order that finishes its first machining step at 10 in the morning.

390
00:18:23,160 --> 00:18:26,680
The next operation may have opened capacity at 10.15,

391
00:18:26,680 --> 00:18:29,000
but if inspection still waits for a measurement,

392
00:18:29,000 --> 00:18:32,920
that capacity is irrelevant because the part hasn't become available yet.

393
00:18:32,920 --> 00:18:36,040
A schedule that ignores that relationship can look perfectly ordered,

394
00:18:36,040 --> 00:18:38,120
with each operation having a start time,

395
00:18:38,120 --> 00:18:40,280
each machine staying within its calendar,

396
00:18:40,280 --> 00:18:42,840
and dates that may even meet the customer request.

397
00:18:42,840 --> 00:18:44,760
But then production tries to execute it,

398
00:18:44,760 --> 00:18:46,600
and discovers the part can't move.

399
00:18:46,600 --> 00:18:49,400
The problem didn't start on the shop floor.

400
00:18:49,400 --> 00:18:51,480
The model left out a dependency.

401
00:18:51,480 --> 00:18:55,960
This is why finite capacity scheduling isn't just a capacity calendar with colored bars.

402
00:18:55,960 --> 00:18:58,600
The scheduler needs a model of what work requires,

403
00:18:58,600 --> 00:19:01,320
what can perform it, what must happen first,

404
00:19:01,320 --> 00:19:03,320
and what conditions block the next step,

405
00:19:03,320 --> 00:19:05,800
because capacity matters, but without context,

406
00:19:05,800 --> 00:19:09,000
it only produces a more detailed version of the same bad promise.

407
00:19:09,960 --> 00:19:13,800
Once those relationships exist, the scheduler can begin its first real task.

408
00:19:13,800 --> 00:19:16,200
Take an order apart, examine each operation,

409
00:19:16,200 --> 00:19:18,200
and decide where and when the work can fit.

410
00:19:18,200 --> 00:19:20,360
From order to scheduled operation.

411
00:19:20,360 --> 00:19:23,560
Here's the shift that matters once the scheduler has the relationships in place.

412
00:19:23,560 --> 00:19:26,600
It stops treating a production order like one solid block of work.

413
00:19:26,600 --> 00:19:28,120
That's a bigger deal than it sounds,

414
00:19:28,120 --> 00:19:31,880
because an order never actually moves through a factory as one chunk.

415
00:19:31,880 --> 00:19:35,000
Each operation carries its own duration, its own resource needs,

416
00:19:35,000 --> 00:19:37,480
and the conditions that decide when the next step can begin,

417
00:19:37,480 --> 00:19:40,200
say you've got a simple order for a 100 machine components.

418
00:19:40,200 --> 00:19:43,320
The raw material gets cut to length first, then moves to milling,

419
00:19:43,320 --> 00:19:46,440
then inspection, then deburring, then assembly.

420
00:19:46,440 --> 00:19:49,960
A broad plan might show one start date and one finish date for the whole order,

421
00:19:49,960 --> 00:19:53,320
but a finite schedule has to place each operation where it can actually happen.

422
00:19:53,320 --> 00:19:54,680
That's a much more detailed question,

423
00:19:54,680 --> 00:19:57,240
and it's where most scheduling breakdowns start.

424
00:19:57,240 --> 00:20:00,920
For the first operation, the scheduler works out how much time the work really needs.

425
00:20:00,920 --> 00:20:01,880
Setup comes first.

426
00:20:01,880 --> 00:20:03,720
An operator may need to load a program,

427
00:20:03,720 --> 00:20:07,800
fit a fixture, prepare tools, verify material, and run a first part before normal production

428
00:20:07,800 --> 00:20:09,960
can even start, then comes run time,

429
00:20:09,960 --> 00:20:12,600
and that's usually where the simple math stops working.

430
00:20:12,600 --> 00:20:14,680
Run time comes from the expected cycle time,

431
00:20:14,680 --> 00:20:16,520
multiplied by the required quantity,

432
00:20:16,520 --> 00:20:18,920
plus any allowances the routing policy calls for.

433
00:20:18,920 --> 00:20:21,720
If each piece takes six minutes and you need a hundred pieces,

434
00:20:21,720 --> 00:20:23,320
that's where the calculation starts,

435
00:20:23,320 --> 00:20:24,520
but it can't stop there,

436
00:20:24,520 --> 00:20:27,400
because setup might eat a full hour before the first part ever runs.

437
00:20:27,400 --> 00:20:29,080
That changes the math completely.

438
00:20:29,080 --> 00:20:32,200
Now, a schedule also has to handle the time between operations.

439
00:20:32,200 --> 00:20:33,960
Some factories use planned queue allowances,

440
00:20:33,960 --> 00:20:35,480
especially for higher level planning.

441
00:20:35,480 --> 00:20:36,520
In practical terms,

442
00:20:36,520 --> 00:20:38,600
that allowance represents the expected weight

443
00:20:38,600 --> 00:20:40,920
before the next work center can pick up the job.

444
00:20:40,920 --> 00:20:43,320
Other plans want the finite schedule to calculate waiting

445
00:20:43,320 --> 00:20:45,000
from the actual loaded queue instead.

446
00:20:45,000 --> 00:20:47,160
Both approaches can work,

447
00:20:47,160 --> 00:20:49,000
but they answer slightly different questions

448
00:20:49,000 --> 00:20:51,000
about what the schedule actually tells you.

449
00:20:51,000 --> 00:20:52,520
Now, don't overlook transfer times.

450
00:20:52,520 --> 00:20:53,800
It's easy to forget,

451
00:20:53,800 --> 00:20:55,080
but it matters.

452
00:20:55,080 --> 00:20:57,400
A part might move straight from one operation to the next,

453
00:20:57,400 --> 00:20:58,760
or it might need a transport run,

454
00:20:58,760 --> 00:21:01,240
a staging area, a cooling period, or a batch handoff.

455
00:21:01,240 --> 00:21:05,000
If the part physically can't arrive at the next resource until later,

456
00:21:05,000 --> 00:21:08,520
the next operation can't start just because a calendar slot looks open,

457
00:21:08,520 --> 00:21:10,920
that's a physical constraint, not a planning choice.

458
00:21:10,920 --> 00:21:14,040
From there, the scheduler searches for eligible resources.

459
00:21:14,040 --> 00:21:15,480
Not every machine in the plant,

460
00:21:15,480 --> 00:21:17,000
just the ones the route allows,

461
00:21:17,000 --> 00:21:19,240
along with whatever constraints are attached to them.

462
00:21:19,240 --> 00:21:20,200
For each one,

463
00:21:20,200 --> 00:21:23,560
it checks the calendar and looks for a slot big enough to hold the work.

464
00:21:23,560 --> 00:21:25,160
Now, here's where it gets interesting.

465
00:21:25,160 --> 00:21:27,080
Sometimes the first open slot is the right answer,

466
00:21:27,080 --> 00:21:27,880
but often it isn't.

467
00:21:27,880 --> 00:21:29,720
A slot might open early on one machine,

468
00:21:29,720 --> 00:21:31,720
but grabbing it could force a longer setup,

469
00:21:31,720 --> 00:21:33,800
or delay another order with tighter conditions.

470
00:21:33,800 --> 00:21:35,640
A different resource might have a later slot

471
00:21:35,640 --> 00:21:37,400
that fits the current sequence better.

472
00:21:37,400 --> 00:21:39,640
The scheduler applies the policy it's been given,

473
00:21:39,640 --> 00:21:41,560
and places the operation into a window

474
00:21:41,560 --> 00:21:44,040
that respects the rules as closely as possible.

475
00:21:44,040 --> 00:21:45,240
When the work gets placed,

476
00:21:45,240 --> 00:21:46,520
the capacity gets reserved,

477
00:21:46,520 --> 00:21:49,400
and that matters because the slot no longer exists for anything else.

478
00:21:49,400 --> 00:21:52,760
If the machining operation runs from 8 in the morning until noon,

479
00:21:52,760 --> 00:21:54,200
including setup and production,

480
00:21:54,200 --> 00:21:56,920
the schedule records that commitment against the machine

481
00:21:56,920 --> 00:21:59,320
and against every other required resource.

482
00:21:59,320 --> 00:22:01,800
Each operation then passes a timing condition forward.

483
00:22:01,800 --> 00:22:04,520
The next step can't begin until the previous operation finishes,

484
00:22:04,520 --> 00:22:06,600
and the transfer or release condition is satisfied.

485
00:22:06,600 --> 00:22:08,360
If the first operation ends late,

486
00:22:08,360 --> 00:22:10,920
the available time for the next operation shifts to,

487
00:22:10,920 --> 00:22:13,560
the schedule carries that effect all the way through the route,

488
00:22:13,560 --> 00:22:16,600
rather than treating each work center like an isolated diary.

489
00:22:16,600 --> 00:22:19,640
This is why finite scheduling can expose a late order

490
00:22:19,640 --> 00:22:21,640
before the work ever reaches the floor.

491
00:22:21,640 --> 00:22:24,840
The system isn't just checking whether each operation fits somewhere.

492
00:22:24,840 --> 00:22:26,440
It follows the order through time,

493
00:22:26,440 --> 00:22:30,760
operation by operation, while every placement consumes real capacity.

494
00:22:30,760 --> 00:22:32,600
The schedule becomes a running commitment,

495
00:22:32,600 --> 00:22:34,600
so how does this actually work in practice?

496
00:22:34,600 --> 00:22:36,520
There are two common ways to run that process.

497
00:22:36,520 --> 00:22:38,600
One starts from the point where work becomes ready

498
00:22:38,600 --> 00:22:40,600
and pushes the order forward through the plant.

499
00:22:40,600 --> 00:22:42,120
The other starts from the promised date

500
00:22:42,120 --> 00:22:43,560
and works backward through the route,

501
00:22:43,560 --> 00:22:45,720
asking when each operation has to start.

502
00:22:45,720 --> 00:22:47,080
Both produce a schedule,

503
00:22:47,080 --> 00:22:48,920
but they show planners very different versions

504
00:22:48,920 --> 00:22:50,920
of the same production reality.

505
00:22:50,920 --> 00:22:53,000
Forward scheduling and backward scheduling,

506
00:22:53,000 --> 00:22:55,160
the first choice is where you start the clock.

507
00:22:55,160 --> 00:22:57,480
Forward scheduling begins when the order can actually start.

508
00:22:57,480 --> 00:23:01,560
When material is ready, the prior operation has released the work,

509
00:23:01,560 --> 00:23:03,880
and an eligible resource has time available.

510
00:23:03,880 --> 00:23:07,000
From that point, the scheduler places each operation in sequence

511
00:23:07,000 --> 00:23:09,720
and lets the finished date emerge from the loaded plan.

512
00:23:09,720 --> 00:23:11,640
That approach answers a practical question.

513
00:23:11,640 --> 00:23:14,520
If we release this order now, when can we actually complete it?

514
00:23:14,520 --> 00:23:16,520
Not the date marketing typed into a field,

515
00:23:16,520 --> 00:23:19,080
but the real date based on actual capacity.

516
00:23:19,080 --> 00:23:20,440
Picture an order waiting for,

517
00:23:20,440 --> 00:23:22,440
machining, inspection and assembly.

518
00:23:22,440 --> 00:23:23,960
Material is ready Monday morning,

519
00:23:23,960 --> 00:23:26,520
but the first suitable machine doesn't have an open slot

520
00:23:26,520 --> 00:23:28,120
until Tuesday afternoon.

521
00:23:28,120 --> 00:23:29,480
Forward scheduling starts there,

522
00:23:29,480 --> 00:23:32,520
not on the date somebody hoped for when the order entered ERP.

523
00:23:32,520 --> 00:23:34,520
Machining finishes when the machine, the setup,

524
00:23:34,520 --> 00:23:36,200
and the runtime say it finishes.

525
00:23:36,200 --> 00:23:38,920
Inspection follows when its own capacity allows,

526
00:23:38,920 --> 00:23:40,520
assembly comes after that,

527
00:23:40,520 --> 00:23:41,560
and by the end of the route,

528
00:23:41,560 --> 00:23:45,000
you have a projected completion date based on current conditions.

529
00:23:45,000 --> 00:23:47,400
That date could land later than the customer date,

530
00:23:47,400 --> 00:23:48,440
or earlier.

531
00:23:48,440 --> 00:23:51,080
Either way, it comes from available capacity,

532
00:23:51,080 --> 00:23:53,160
not from a target date typed into a field.

533
00:23:53,160 --> 00:23:54,600
That's a critical distinction.

534
00:23:54,600 --> 00:23:57,640
Backward scheduling takes the same order and starts at the other end,

535
00:23:57,640 --> 00:23:59,320
beginning with the due date and working back

536
00:23:59,320 --> 00:24:00,680
through every required operation.

537
00:24:00,680 --> 00:24:02,840
If assembly has to be done by Friday afternoon,

538
00:24:02,840 --> 00:24:05,320
the scheduler asks when assembly must start,

539
00:24:05,320 --> 00:24:07,000
then when inspection needs to finish,

540
00:24:07,000 --> 00:24:08,200
when machining must finish,

541
00:24:08,200 --> 00:24:10,920
and when material has to be ready for the first operation,

542
00:24:10,920 --> 00:24:13,560
that creates a required start time for each step.

543
00:24:13,560 --> 00:24:16,920
Backward scheduling earns its keep when you need to test a promise.

544
00:24:16,920 --> 00:24:19,640
Sales might ask whether a new order can ship by a certain date,

545
00:24:19,640 --> 00:24:21,000
customer service needs to know whether

546
00:24:21,000 --> 00:24:23,400
an existing commitment still holds after a change,

547
00:24:23,400 --> 00:24:25,160
and planning needs to see how much room remains

548
00:24:25,160 --> 00:24:27,160
before a due date becomes impossible.

549
00:24:27,160 --> 00:24:31,000
The schedule walks backward and checks whether the required slots actually exist.

550
00:24:31,000 --> 00:24:33,640
If enough available capacity shows up in the right sequence,

551
00:24:33,640 --> 00:24:36,280
the date stays feasible under the rules in the model.

552
00:24:36,280 --> 00:24:37,480
If the slots aren't there,

553
00:24:37,480 --> 00:24:41,000
the plan exposes a gap and that order might need an earlier release,

554
00:24:41,000 --> 00:24:43,320
a different route, extra capacity,

555
00:24:43,320 --> 00:24:45,320
or a change customer commitment.

556
00:24:45,320 --> 00:24:47,080
Both methods wrestle with the same constraints,

557
00:24:47,080 --> 00:24:48,840
but they ask different questions.

558
00:24:48,840 --> 00:24:53,320
Backward scheduling asks what has to happen and by when if we intend to meet this date.

559
00:24:53,320 --> 00:24:55,000
Forward scheduling asks.

560
00:24:55,000 --> 00:24:57,720
Given the work that's ready and the capacity we have,

561
00:24:57,720 --> 00:24:59,400
when will this order really finish?

562
00:24:59,400 --> 00:25:01,080
In many plans you need both views.

563
00:25:01,080 --> 00:25:03,960
Use backward scheduling when you're checking whether a requested date

564
00:25:03,960 --> 00:25:05,560
can survive the full route.

565
00:25:05,560 --> 00:25:08,280
It's a promise checking tool that forces the commercial date

566
00:25:08,280 --> 00:25:11,960
to face every required operation and the time each one needs.

567
00:25:11,960 --> 00:25:14,520
Use forward scheduling when you're deciding what work to release

568
00:25:14,520 --> 00:25:16,200
and what production can execute next,

569
00:25:16,200 --> 00:25:18,600
the shop floor doesn't run backward from a due date.

570
00:25:18,600 --> 00:25:20,760
It runs forward from material readiness,

571
00:25:20,760 --> 00:25:22,920
completed work, available resources,

572
00:25:22,920 --> 00:25:24,120
and the actual clock.

573
00:25:24,120 --> 00:25:25,800
A planner might look at the same order

574
00:25:25,800 --> 00:25:27,400
through both lenses on the same day.

575
00:25:27,400 --> 00:25:30,280
Backward scheduling could show that the customer date requires machining

576
00:25:30,280 --> 00:25:31,800
to finish by Wednesday morning,

577
00:25:31,800 --> 00:25:33,640
while forward scheduling could show that

578
00:25:33,640 --> 00:25:35,720
with the current queue and resource limits,

579
00:25:35,720 --> 00:25:38,040
Thursday is the earliest machining gets done.

580
00:25:38,040 --> 00:25:40,920
That difference is not an error between two scheduling methods.

581
00:25:40,920 --> 00:25:44,040
It's the decision gap and that gap is the actual output

582
00:25:44,040 --> 00:25:45,560
worth paying attention to.

583
00:25:45,560 --> 00:25:47,320
If the business still wants to protect that date,

584
00:25:47,320 --> 00:25:48,280
it needs action.

585
00:25:48,280 --> 00:25:50,920
The plant could approve overtime another order could move

586
00:25:50,920 --> 00:25:52,760
or maybe a valid alternate route exists

587
00:25:52,760 --> 00:25:54,120
or maybe the order finishes late

588
00:25:54,120 --> 00:25:55,560
and somebody needs to communicate that

589
00:25:55,560 --> 00:25:58,200
before the customer discovers it through a missed shipment.

590
00:25:58,200 --> 00:26:00,040
Late orders are useful information.

591
00:26:00,040 --> 00:26:01,640
Nobody likes them obviously.

592
00:26:01,640 --> 00:26:04,440
But a late flag from a finite schedule can tell you something

593
00:26:04,440 --> 00:26:06,360
a green plan date cannot.

594
00:26:06,360 --> 00:26:07,880
Current demand and current capacity

595
00:26:07,880 --> 00:26:10,680
don't fit together under the rules you've chosen.

596
00:26:10,680 --> 00:26:13,640
That gives people a chance to act early instead of reacting late.

597
00:26:13,640 --> 00:26:15,480
The wrong response is hiding the conflict

598
00:26:15,480 --> 00:26:17,160
with arbitrary lead time padding.

599
00:26:17,160 --> 00:26:18,920
A plant adds extra days to every route

600
00:26:18,920 --> 00:26:20,520
because schedules keep missing dates

601
00:26:20,520 --> 00:26:22,440
and the padded date starts to look safer.

602
00:26:22,440 --> 00:26:25,560
But nobody knows whether that added time covers a real constraint,

603
00:26:25,560 --> 00:26:28,040
a bad planning standard, a recurring queue,

604
00:26:28,040 --> 00:26:30,840
or just anxiety captured in master data.

605
00:26:30,840 --> 00:26:33,560
Padding can help when it represents a known and controlled buffer,

606
00:26:33,560 --> 00:26:35,560
but it becomes a problem when it covers overload

607
00:26:35,560 --> 00:26:36,600
without explaining it.

608
00:26:36,600 --> 00:26:37,880
You end up with long lead times,

609
00:26:37,880 --> 00:26:40,600
weak promise dates and the same daily firefighting

610
00:26:40,600 --> 00:26:42,120
only earlier in the calendar.

611
00:26:42,120 --> 00:26:44,280
Finite scheduling should expose the real gap,

612
00:26:44,280 --> 00:26:46,520
not bury it under extra calendar days.

613
00:26:46,520 --> 00:26:48,200
The tricky part is that a feasible slot

614
00:26:48,200 --> 00:26:49,720
isn't the same as the right slot.

615
00:26:49,720 --> 00:26:51,560
Capacity tells you what can run,

616
00:26:51,560 --> 00:26:53,720
but the next question is what should run first?

617
00:26:53,720 --> 00:26:55,560
Sequencing logic.

618
00:26:55,560 --> 00:26:56,520
Here's the real challenge.

619
00:26:56,520 --> 00:26:57,800
Once you have more than one order

620
00:26:57,800 --> 00:26:59,560
that fits into the available time,

621
00:26:59,560 --> 00:27:01,560
capacity tells you what could run.

622
00:27:01,560 --> 00:27:04,120
But sequencing decides which order gets the next slot

623
00:27:04,120 --> 00:27:06,520
and that single decision ripples through delivery,

624
00:27:06,520 --> 00:27:08,120
throughput, work in progress

625
00:27:08,120 --> 00:27:10,360
and how much setup time the plant burns through.

626
00:27:10,360 --> 00:27:12,920
The simplest approach is due date sequencing.

627
00:27:12,920 --> 00:27:15,080
You run the order with the earliest due date first,

628
00:27:15,080 --> 00:27:16,920
people like it because it's easy to explain,

629
00:27:16,920 --> 00:27:19,880
and it works when routes and processing times don't very much.

630
00:27:19,880 --> 00:27:20,840
But here's the thing,

631
00:27:20,840 --> 00:27:23,000
an early due date doesn't always mean the order

632
00:27:23,000 --> 00:27:24,200
creates the biggest risk,

633
00:27:24,200 --> 00:27:25,720
because a short job due tomorrow

634
00:27:25,720 --> 00:27:27,800
may sit ahead of a long job due the next day.

635
00:27:27,800 --> 00:27:30,200
If that long job needs most of the remaining capacity,

636
00:27:30,200 --> 00:27:33,160
delaying it could push several later operations into trouble.

637
00:27:33,160 --> 00:27:35,080
Due date sequencing tracks the calendar,

638
00:27:35,080 --> 00:27:37,240
but it may not see the full cost of the queue.

639
00:27:37,240 --> 00:27:39,320
Customer priority takes a different view.

640
00:27:39,320 --> 00:27:40,920
You decide that a service part,

641
00:27:40,920 --> 00:27:42,040
a contract customer,

642
00:27:42,040 --> 00:27:45,000
or a production line facing a shutdown gets preference,

643
00:27:45,000 --> 00:27:46,600
and that can be the right business call.

644
00:27:46,600 --> 00:27:49,080
But every priority order displaces something else,

645
00:27:49,080 --> 00:27:50,760
and if every order is marked urgent,

646
00:27:50,760 --> 00:27:52,120
the label stops helping.

647
00:27:52,120 --> 00:27:53,880
Some plants use shortest processing time,

648
00:27:53,880 --> 00:27:55,000
running smaller jobs first

649
00:27:55,000 --> 00:27:56,600
because short jobs clear the queue fast,

650
00:27:56,600 --> 00:27:57,720
reduce work in progress,

651
00:27:57,720 --> 00:27:59,160
and keep material moving.

652
00:27:59,160 --> 00:28:01,640
The downside is obvious when you stop to think about it.

653
00:28:01,640 --> 00:28:03,160
Long jobs can wait too long,

654
00:28:03,160 --> 00:28:04,920
even when they support an important delivery

655
00:28:04,920 --> 00:28:07,480
or consumes gas capacity later in the route.

656
00:28:07,480 --> 00:28:10,360
Critical ratio tries to bring more context into the choice

657
00:28:10,360 --> 00:28:12,920
by comparing the time remaining until an order is due

658
00:28:12,920 --> 00:28:14,840
with the work still required to finish it.

659
00:28:14,840 --> 00:28:17,480
An order with little time left and a lot of work remaining

660
00:28:17,480 --> 00:28:19,720
gets more attention than an order with plenty of time.

661
00:28:19,720 --> 00:28:21,480
That can help planners spot trouble earlier,

662
00:28:21,480 --> 00:28:23,880
but it still depends on good remaining time estimates,

663
00:28:23,880 --> 00:28:25,240
realistic routing data,

664
00:28:25,240 --> 00:28:27,800
and a schedule that knows which operations can really run.

665
00:28:27,800 --> 00:28:30,520
A need ratio built on weak assumptions is still a need guess.

666
00:28:30,520 --> 00:28:32,520
Campaign sequencing focuses on setups.

667
00:28:32,520 --> 00:28:34,760
If several orders use the same material grade,

668
00:28:34,760 --> 00:28:37,160
color, recipe, fixture, or tool pack,

669
00:28:37,160 --> 00:28:38,600
the plant can group them together,

670
00:28:38,600 --> 00:28:40,920
so the machine runs longer between changes,

671
00:28:40,920 --> 00:28:43,320
and the shift loses less time to cleaning,

672
00:28:43,320 --> 00:28:46,520
tool swaps, parameter checks, and first part approval.

673
00:28:46,520 --> 00:28:48,920
That's often sensible, but it also creates tension.

674
00:28:48,920 --> 00:28:51,640
Suppose an urgent order needs a different setup family.

675
00:28:51,640 --> 00:28:53,160
If you interrupt the campaign,

676
00:28:53,160 --> 00:28:54,920
you spend time changing over,

677
00:28:54,920 --> 00:28:55,800
run the urgent job,

678
00:28:55,800 --> 00:28:57,640
then spend more time changing back.

679
00:28:57,640 --> 00:28:58,920
If you keep the campaign intact,

680
00:28:58,920 --> 00:28:59,960
you protect machine time,

681
00:28:59,960 --> 00:29:01,560
but delay the urgent order.

682
00:29:01,560 --> 00:29:02,600
Neither choice is neutral

683
00:29:02,600 --> 00:29:04,840
and both move cost and risk somewhere else.

684
00:29:04,840 --> 00:29:07,640
The same issue appears with material and process conditions.

685
00:29:07,640 --> 00:29:09,800
A material lot may have a use by date,

686
00:29:09,800 --> 00:29:11,720
so delaying that order creates waste.

687
00:29:11,720 --> 00:29:13,880
A cutting tool may have limited remaining life,

688
00:29:13,880 --> 00:29:16,200
affecting whether two jobs should run back to back.

689
00:29:16,200 --> 00:29:18,040
A quality hold can block one order,

690
00:29:18,040 --> 00:29:19,800
even if its due date looks alarming.

691
00:29:19,800 --> 00:29:23,000
An operator may hold approval for only certain products or processes,

692
00:29:23,000 --> 00:29:25,000
and that person may work only one shift.

693
00:29:25,000 --> 00:29:27,640
These details aren't side notes added after the schedule.

694
00:29:27,640 --> 00:29:29,240
They help decide the sequence.

695
00:29:29,240 --> 00:29:31,480
A scheduling rule should make its purpose clear.

696
00:29:31,480 --> 00:29:33,480
Are you trying to protect customer commitments,

697
00:29:33,480 --> 00:29:35,000
reduce change over losses,

698
00:29:35,000 --> 00:29:36,760
or keep an assembly line supplied?

699
00:29:36,760 --> 00:29:40,040
Are you trying to avoid expired material or reduce over time?

700
00:29:40,040 --> 00:29:42,120
A plant can care about all of those things,

701
00:29:42,120 --> 00:29:45,000
but it cannot maximize every outcome at the same moment.

702
00:29:45,000 --> 00:29:46,680
That's why sequencing is policy expressed

703
00:29:46,680 --> 00:29:48,040
through scheduling logic.

704
00:29:48,040 --> 00:29:50,200
The software can apply the rule consistently,

705
00:29:50,200 --> 00:29:52,600
and test many possible sequences far faster

706
00:29:52,600 --> 00:29:54,600
than a person working from a paper list,

707
00:29:54,600 --> 00:29:56,600
but somebody still needs to decide

708
00:29:56,600 --> 00:29:59,480
what the plant should favor when the rules compete.

709
00:29:59,480 --> 00:30:01,400
I'd be careful when a scheduling tool claims

710
00:30:01,400 --> 00:30:04,280
it has found the best sequence without showing the trade-offs.

711
00:30:04,280 --> 00:30:08,040
Best for what? shorter setups, more on-time orders, less queue time,

712
00:30:08,040 --> 00:30:09,640
fewer late service parts?

713
00:30:09,640 --> 00:30:12,600
The answer comes from production policy and commercial judgment,

714
00:30:12,600 --> 00:30:14,440
not from mass floating above the factory.

715
00:30:14,440 --> 00:30:16,520
In practical terms, a good finite schedule

716
00:30:16,520 --> 00:30:17,960
doesn't hide those choices.

717
00:30:17,960 --> 00:30:19,160
It makes them visible,

718
00:30:19,160 --> 00:30:21,240
telling the planner that running this job first

719
00:30:21,240 --> 00:30:24,120
protects one condition and creates pressure somewhere else.

720
00:30:24,120 --> 00:30:25,960
So let's bring this into one morning shift,

721
00:30:25,960 --> 00:30:28,680
where three orders wait at the same constraint machine

722
00:30:28,680 --> 00:30:31,560
and each sequence choice carries a different consequence.

723
00:30:31,560 --> 00:30:32,920
The morning shift decision.

724
00:30:32,920 --> 00:30:35,960
Picture the start of a morning shift at that CNC machining centre.

725
00:30:35,960 --> 00:30:37,320
The previous job just finished,

726
00:30:37,320 --> 00:30:39,240
and three orders are ready for the next slot.

727
00:30:39,240 --> 00:30:41,800
All three need the bottleneck and all three matter.

728
00:30:41,800 --> 00:30:44,280
The machine has one operator, one current setup,

729
00:30:44,280 --> 00:30:46,520
and no spare hours hiding in the day.

730
00:30:46,520 --> 00:30:48,520
Order A is an urgent repair part.

731
00:30:48,520 --> 00:30:49,640
The customer needs it quickly,

732
00:30:49,640 --> 00:30:51,560
and customer service has already flagged it.

733
00:30:51,560 --> 00:30:53,160
It needs a different fixture and tool pack

734
00:30:53,160 --> 00:30:55,160
from the job that just came off the machine.

735
00:30:55,160 --> 00:30:57,960
Orders B and C are less urgent, at least commercially,

736
00:30:57,960 --> 00:31:01,160
but both belong to the same setup family as the completed job.

737
00:31:01,160 --> 00:31:03,080
Their material is ready, the fixture is installed,

738
00:31:03,080 --> 00:31:04,440
the program is loaded.

739
00:31:04,440 --> 00:31:06,200
If the team runs B and C now,

740
00:31:06,200 --> 00:31:07,800
they can keep the machine in a campaign

741
00:31:07,800 --> 00:31:09,640
that avoids two extra changeovers.

742
00:31:09,640 --> 00:31:11,560
The planner now faces a real decision,

743
00:31:11,560 --> 00:31:12,920
not a sorting exercise.

744
00:31:12,920 --> 00:31:15,160
The first option is simple to explain.

745
00:31:15,160 --> 00:31:17,080
Run the urgent repair part first.

746
00:31:17,080 --> 00:31:18,920
The operator removes the current fixture,

747
00:31:18,920 --> 00:31:20,360
loads the fixture for order A,

748
00:31:20,360 --> 00:31:23,080
changes tools, checks the program and completes the setup.

749
00:31:23,080 --> 00:31:25,160
The urgent part then moves through the bottleneck

750
00:31:25,160 --> 00:31:27,720
and the plant protects the customer commitment as far as it can.

751
00:31:27,720 --> 00:31:29,080
That may be the right call,

752
00:31:29,080 --> 00:31:32,360
but after order A finishes, orders B and C still need to run,

753
00:31:32,360 --> 00:31:33,800
and the machine needs another changeover

754
00:31:33,800 --> 00:31:35,400
to return to their setup family.

755
00:31:35,400 --> 00:31:38,120
The time spent on both changes comes from the same limited day.

756
00:31:38,120 --> 00:31:39,720
If B feeds a later process,

757
00:31:39,720 --> 00:31:41,800
its delay can push work into the next shift

758
00:31:41,800 --> 00:31:44,120
and if C supports a delivery later in the week,

759
00:31:44,120 --> 00:31:47,560
that extra lost time may turn a manageable plan into a late order.

760
00:31:47,560 --> 00:31:50,280
The urgent part gains time, but other orders lose it.

761
00:31:50,280 --> 00:31:52,040
That doesn't mean urgent work should wait.

762
00:31:52,040 --> 00:31:54,680
It means the schedule should show the cost of putting it first

763
00:31:54,680 --> 00:31:56,920
so the planner can decide with open eyes,

764
00:31:56,920 --> 00:31:58,840
rather than discovering the effect.

765
00:31:58,840 --> 00:32:02,520
When somebody asks, why two apparently safe orders suddenly moved?

766
00:32:02,520 --> 00:32:05,480
The second option keeps the campaign intact.

767
00:32:05,480 --> 00:32:07,880
Run B then C while the setup is already in place,

768
00:32:07,880 --> 00:32:09,960
the operator avoids the immediate changeover

769
00:32:09,960 --> 00:32:12,840
so the machine converts more of the shift into production time.

770
00:32:12,840 --> 00:32:15,160
The queue behind the bottleneck may flow more smoothly,

771
00:32:15,160 --> 00:32:16,680
especially if both orders feed work

772
00:32:16,680 --> 00:32:19,720
that already has people and capacity waiting downstream.

773
00:32:19,720 --> 00:32:22,600
From a production view, this can look like the sensible choice.

774
00:32:22,600 --> 00:32:24,360
Still, order A remains in the queue.

775
00:32:24,360 --> 00:32:26,360
Customer service may need to call the customer,

776
00:32:26,360 --> 00:32:28,440
who may accept the revised timing or may not.

777
00:32:28,440 --> 00:32:31,000
A repair part can hold up equipment outside your plant,

778
00:32:31,000 --> 00:32:34,520
and the commercial effect may outweigh the time-save through campaign sequencing.

779
00:32:34,520 --> 00:32:37,720
Production efficiency is not the only measure of a good decision.

780
00:32:37,720 --> 00:32:39,720
The third option looks for an alternate route.

781
00:32:39,720 --> 00:32:43,640
Perhaps another machine can run order A while the bottleneck stays with B and C.

782
00:32:43,640 --> 00:32:44,760
That sounds attractive,

783
00:32:44,760 --> 00:32:47,800
because it appears to protect both the urgent order and the campaign,

784
00:32:47,800 --> 00:32:49,720
but before anyone treats it as a free answer,

785
00:32:49,720 --> 00:32:51,160
the plant needs to test it.

786
00:32:51,160 --> 00:32:54,040
Can the alternate machine hold the required tolerance?

787
00:32:54,040 --> 00:32:56,920
Is the correct fixture free and physically compatible?

788
00:32:56,920 --> 00:32:59,400
Does the operator hold the right process approval?

789
00:32:59,400 --> 00:33:00,760
Is the program current?

790
00:33:00,760 --> 00:33:02,600
Does quality allow that part to run there

791
00:33:02,600 --> 00:33:05,080
or does it need an engineering or quality review first?

792
00:33:05,080 --> 00:33:06,200
The alternate route may work,

793
00:33:06,200 --> 00:33:08,280
but it may also turn into a fast-looking decision

794
00:33:08,280 --> 00:33:10,840
that creates rework, delay, or a non-conforming part.

795
00:33:10,840 --> 00:33:12,760
A routing field that names two machines

796
00:33:12,760 --> 00:33:15,000
cannot settle those questions by itself.

797
00:33:15,000 --> 00:33:17,400
This is where finite capacity scheduling earns its place.

798
00:33:17,400 --> 00:33:19,560
It doesn't tell every plant to protect campaigns

799
00:33:19,560 --> 00:33:21,320
or to chase the earliest due date

800
00:33:21,320 --> 00:33:23,400
or to move urgent work to another resource.

801
00:33:23,400 --> 00:33:25,800
It takes each option and tests the conditions around it.

802
00:33:26,520 --> 00:33:27,560
Run order A first,

803
00:33:27,560 --> 00:33:29,480
and the schedule can show the added changeovers

804
00:33:29,480 --> 00:33:30,760
and later Q effects.

805
00:33:30,760 --> 00:33:32,280
Keep B and C together.

806
00:33:32,280 --> 00:33:34,760
And it can show the exposure on the repair part date.

807
00:33:34,760 --> 00:33:36,440
Move A to another machine,

808
00:33:36,440 --> 00:33:38,760
and it can test whether the needed machine time,

809
00:33:38,760 --> 00:33:41,320
tooling, labor, and approval exist together.

810
00:33:41,320 --> 00:33:43,080
The planner still owns the call.

811
00:33:43,080 --> 00:33:46,040
A good schedule gives people a shared frame for that call.

812
00:33:46,040 --> 00:33:48,760
The supervisor can challenge whether the option fits the shift.

813
00:33:48,760 --> 00:33:51,560
Customer service can explain the customer impact and quality,

814
00:33:51,560 --> 00:33:54,600
and engineering can confirm whether the alternate route is real.

815
00:33:55,560 --> 00:33:57,800
Nobody needs to pretend that one dispatch rule

816
00:33:57,800 --> 00:34:00,520
fits every product, customer, and production day.

817
00:34:00,520 --> 00:34:01,960
There is one part of this decision

818
00:34:01,960 --> 00:34:04,040
that plans often reduced to a rough average

819
00:34:04,040 --> 00:34:06,680
or leave out entirely, the changeover itself,

820
00:34:06,680 --> 00:34:09,720
that lost production time leads its own place in the schedule.

821
00:34:09,720 --> 00:34:11,560
Changeovers are scheduled work.

822
00:34:11,560 --> 00:34:13,080
Here's a truth that sounds obvious,

823
00:34:13,080 --> 00:34:15,560
but gets buried under noise more often than it should.

824
00:34:15,560 --> 00:34:18,360
A changeover isn't dead time between two production orders.

825
00:34:18,360 --> 00:34:20,520
It's real work that burns the same resource hours

826
00:34:20,520 --> 00:34:21,400
that production does.

827
00:34:21,400 --> 00:34:24,040
When an operator stops the machine,

828
00:34:24,040 --> 00:34:26,200
pulls tools, cleanser tanks, swaps fixtures,

829
00:34:26,200 --> 00:34:28,360
loads a new program, dials in parameters,

830
00:34:28,360 --> 00:34:31,400
and runs a first piece check to prove the next part meets spec

831
00:34:31,400 --> 00:34:33,800
that machine isn't making anything that ships.

832
00:34:33,800 --> 00:34:36,440
If the schedule doesn't account for that time honestly,

833
00:34:36,440 --> 00:34:39,720
it quietly spins the same hour twice in two different places.

834
00:34:39,720 --> 00:34:42,040
I know that sounds basic, but here's the real challenge.

835
00:34:42,040 --> 00:34:44,040
Most plans treat setup as a rough allowance

836
00:34:44,040 --> 00:34:45,720
around the edges of a work center,

837
00:34:45,720 --> 00:34:47,960
maybe a single average number in the routing,

838
00:34:47,960 --> 00:34:48,920
or even nothing at all,

839
00:34:48,920 --> 00:34:51,240
because someone assumed the supervisor would just handle it.

840
00:34:52,520 --> 00:34:54,520
And that schedule looks great on paper

841
00:34:54,520 --> 00:34:56,520
until the shift tries to switch from one product

842
00:34:56,520 --> 00:34:58,840
to another and the whole thing comes apart.

843
00:34:58,840 --> 00:35:02,600
A finite schedule treats setup as a proper operation on the resource,

844
00:35:02,600 --> 00:35:04,760
slotting it in before the production run,

845
00:35:04,760 --> 00:35:06,760
locking the machine during the changeover,

846
00:35:06,760 --> 00:35:08,760
and including every person, tool, and check

847
00:35:08,760 --> 00:35:10,200
that setup actually needs.

848
00:35:10,200 --> 00:35:12,200
The result is a view of capacity that matches

849
00:35:12,200 --> 00:35:13,640
what the plant can deliver.

850
00:35:13,640 --> 00:35:14,840
When the data supports it,

851
00:35:14,840 --> 00:35:17,480
there are two kinds of setup time worth separating.

852
00:35:17,480 --> 00:35:19,800
The first sequence independent setup

853
00:35:19,800 --> 00:35:21,320
is work you do for an order,

854
00:35:21,320 --> 00:35:23,240
no matter what ran before it,

855
00:35:23,240 --> 00:35:25,400
loading an order specific program,

856
00:35:25,400 --> 00:35:28,280
verifying material, or mounting a unique fixture.

857
00:35:28,280 --> 00:35:30,920
The second sequence dependent change over time

858
00:35:30,920 --> 00:35:32,600
depends on what happened before.

859
00:35:32,600 --> 00:35:34,440
Moving from one product family to another

860
00:35:34,440 --> 00:35:37,320
can take way longer than moving between two similar parts

861
00:35:37,320 --> 00:35:40,440
and that difference drives most of the value in good sequencing.

862
00:35:40,440 --> 00:35:42,040
Think about a paint line.

863
00:35:42,040 --> 00:35:44,680
Switching from one shade to another might be a quick adjustment

864
00:35:44,680 --> 00:35:47,800
or it could need a full clean-out to avoid contamination.

865
00:35:47,800 --> 00:35:50,920
In machining, one transition keeps the same tool set and fixture

866
00:35:50,920 --> 00:35:53,800
while the next demands a complete tear down and fresh setup.

867
00:35:53,800 --> 00:35:56,120
And in food chemicals, plastics, or coatings,

868
00:35:56,120 --> 00:35:58,360
a recipe change may require cleaning and validation

869
00:35:58,360 --> 00:36:00,120
that don't care what the schedule thinks,

870
00:36:00,120 --> 00:36:02,440
that same pattern shows up in family matrices.

871
00:36:02,440 --> 00:36:04,360
A family matrix records the transition time

872
00:36:04,360 --> 00:36:07,320
between setup families, color, alloy, tool set,

873
00:36:07,320 --> 00:36:09,560
recipe, cleaning class, or fixture type.

874
00:36:09,560 --> 00:36:10,760
Instead of telling the scheduler

875
00:36:10,760 --> 00:36:13,160
that every change takes one average number,

876
00:36:13,160 --> 00:36:15,880
the matrix says moving from family A to family B

877
00:36:15,880 --> 00:36:16,920
takes this amount,

878
00:36:16,920 --> 00:36:18,920
but moving from family A to family D

879
00:36:18,920 --> 00:36:20,760
might take three times longer.

880
00:36:20,760 --> 00:36:22,680
That matches how plants actually work.

881
00:36:22,680 --> 00:36:25,320
In practical terms, you can start with just the transitions

882
00:36:25,320 --> 00:36:27,000
that create the most friction.

883
00:36:27,000 --> 00:36:29,480
The ones the production team already complains about.

884
00:36:29,480 --> 00:36:32,040
You don't need to build an enormous matrix on day one.

885
00:36:32,040 --> 00:36:34,600
In most factories, a small number of high impact transitions

886
00:36:34,600 --> 00:36:36,120
cause nearly all the trouble.

887
00:36:36,120 --> 00:36:36,920
Start there.

888
00:36:36,920 --> 00:36:39,000
If a particular alloy change requires cleaning

889
00:36:39,000 --> 00:36:41,480
or a fixture swap regularly blocks the bottleneck,

890
00:36:41,480 --> 00:36:43,800
model that transition before trying to describe

891
00:36:43,800 --> 00:36:45,400
every possible combination.

892
00:36:45,400 --> 00:36:47,480
And don't forget the time after the physical setup.

893
00:36:47,480 --> 00:36:50,520
A machine can look ready while the first part still waits for inspection.

894
00:36:50,840 --> 00:36:52,680
Some processes need a warm up cycle,

895
00:36:52,680 --> 00:36:55,000
others need a test piece, an initial measurement,

896
00:36:55,000 --> 00:36:58,680
a quality sign-off, or a process check before normal production can begin.

897
00:36:58,680 --> 00:37:01,320
If that activity holds the machine or needs a person

898
00:37:01,320 --> 00:37:02,920
who isn't immediately available,

899
00:37:02,920 --> 00:37:04,440
it belongs in the schedule.

900
00:37:04,440 --> 00:37:05,960
Production teams already know this,

901
00:37:05,960 --> 00:37:09,720
but the risk is when the planning model calls the machine available,

902
00:37:09,720 --> 00:37:11,800
the second the operator presses start.

903
00:37:11,800 --> 00:37:13,960
Average setup times cause their own problem,

904
00:37:13,960 --> 00:37:15,720
an average can work for broad planning,

905
00:37:15,720 --> 00:37:17,800
but it hides the transition that really matters.

906
00:37:17,800 --> 00:37:20,200
Say a work center usually changes over in 40 minutes

907
00:37:20,200 --> 00:37:23,480
but one product switch needs two hours because of cleaning and approval.

908
00:37:23,480 --> 00:37:25,960
If the schedule uses 40 minutes for every change,

909
00:37:25,960 --> 00:37:28,760
it will repeatedly promise time the plant cannot deliver.

910
00:37:28,760 --> 00:37:30,200
The average looks reasonable,

911
00:37:30,200 --> 00:37:31,720
but the sequence fails anyway.

912
00:37:31,720 --> 00:37:34,600
And that's a problem no amount of wishful thinking can fix.

913
00:37:34,600 --> 00:37:37,800
This is why setup reduction and finite scheduling belong together,

914
00:37:37,800 --> 00:37:39,240
but are not the same thing.

915
00:37:39,240 --> 00:37:41,960
Set-up reduction changes the process through better fixtures,

916
00:37:41,960 --> 00:37:44,200
standard tool packs, pre-staged material,

917
00:37:44,200 --> 00:37:45,800
or improved work instructions.

918
00:37:45,800 --> 00:37:48,840
Finite scheduling works with the setup time that exists today

919
00:37:48,840 --> 00:37:50,520
and places orders accordingly.

920
00:37:50,520 --> 00:37:52,600
One improves capacity, the other stops the plant

921
00:37:52,600 --> 00:37:54,920
from pretending that capacity already exists.

922
00:37:54,920 --> 00:37:58,040
A scheduler doesn't need perfect change over data to help.

923
00:37:58,040 --> 00:38:00,840
It needs enough truth to stop hiding the biggest losses,

924
00:38:00,840 --> 00:38:04,520
so the planner can see when an urgent order breaks a campaign,

925
00:38:04,520 --> 00:38:06,520
how much time that interruption eats,

926
00:38:06,520 --> 00:38:08,600
and which later orders come under pressure.

927
00:38:08,600 --> 00:38:12,760
Even a perfectly sequenced machine cannot start without the right material.

928
00:38:12,760 --> 00:38:14,280
The schedule may reserve the slot,

929
00:38:14,280 --> 00:38:15,560
the operator may be ready,

930
00:38:15,560 --> 00:38:17,400
and the fixture may already be mounted.

931
00:38:17,400 --> 00:38:20,520
But if the components themselves remain unavailable for release,

932
00:38:20,520 --> 00:38:21,560
none of that matters.

933
00:38:21,560 --> 00:38:24,280
Material availability and release control.

934
00:38:24,280 --> 00:38:27,320
Material planning can tell you a component should be available next week.

935
00:38:27,320 --> 00:38:28,200
That's useful,

936
00:38:28,200 --> 00:38:32,120
but it doesn't tell the operator whether that component is actually sitting at the point of use,

937
00:38:32,120 --> 00:38:33,720
inspected, identified,

938
00:38:33,720 --> 00:38:36,200
and ready to consume when the machine slot opens.

939
00:38:36,200 --> 00:38:37,720
Those are completely different states.

940
00:38:37,720 --> 00:38:40,280
MRP calculates demand from bills of material,

941
00:38:40,280 --> 00:38:42,520
current stock, supplier lead times,

942
00:38:42,520 --> 00:38:43,560
and planned orders,

943
00:38:43,560 --> 00:38:45,400
sending purchase signals early

944
00:38:45,400 --> 00:38:47,080
and showing where shortages may appear.

945
00:38:47,080 --> 00:38:51,400
That work matters because a finite schedule cannot run parts without material,

946
00:38:51,400 --> 00:38:53,640
but planned availability is a planning signal,

947
00:38:53,640 --> 00:38:56,360
while physical availability is an execution condition.

948
00:38:56,360 --> 00:38:58,760
Picture an order scheduled on the bottleneck at 8 in the morning.

949
00:38:58,760 --> 00:39:03,000
The ERP record may show enough stock because the receipt posted overnight,

950
00:39:03,000 --> 00:39:05,480
but the material might still be sitting in receiving,

951
00:39:05,480 --> 00:39:07,080
quality might need to inspect it,

952
00:39:07,080 --> 00:39:09,000
the warehouse might not have picked the kit,

953
00:39:09,000 --> 00:39:10,520
or the material might be on the line,

954
00:39:10,520 --> 00:39:13,080
but lacks the traceability record required for release.

955
00:39:13,080 --> 00:39:15,960
The machine slot exists, but the job still cannot start.

956
00:39:15,960 --> 00:39:18,840
Partial kits create the same problem in a less obvious way.

957
00:39:18,840 --> 00:39:20,680
You may have most of the items for an assembly,

958
00:39:20,680 --> 00:39:22,280
but one boarding component is late.

959
00:39:22,280 --> 00:39:25,080
Starting the order could burn labor and floor space,

960
00:39:25,080 --> 00:39:27,720
then leave unfinished work waiting for a single missing part.

961
00:39:27,720 --> 00:39:28,920
And in some cases that makes sense,

962
00:39:28,920 --> 00:39:32,120
in others, it creates work and progress that hides the shortage,

963
00:39:32,120 --> 00:39:33,320
instead of fixing it.

964
00:39:33,320 --> 00:39:35,080
So the rule needs to be explicit.

965
00:39:35,080 --> 00:39:37,720
Not just a policy, but a condition the schedule can check.

966
00:39:37,720 --> 00:39:39,000
The schedule needs the rule.

967
00:39:39,000 --> 00:39:40,600
Some products can start with a partial kit,

968
00:39:40,600 --> 00:39:42,840
because the missing item comes in late on the route,

969
00:39:42,840 --> 00:39:44,680
while others need every controlled component

970
00:39:44,680 --> 00:39:47,160
ready before the first operation begins.

971
00:39:47,160 --> 00:39:49,400
A finite schedule should respect that difference,

972
00:39:49,400 --> 00:39:53,000
rather than treating all material status as one green or red field.

973
00:39:53,000 --> 00:39:54,760
Lot restrictions add another layer.

974
00:39:54,760 --> 00:39:57,240
A customer may require a specific material lot,

975
00:39:57,240 --> 00:40:00,040
a regulated process may require approved traceability,

976
00:40:00,040 --> 00:40:01,880
or a chemical coating or food ingredient

977
00:40:01,880 --> 00:40:03,640
may have a limited use window.

978
00:40:03,640 --> 00:40:05,320
You may have stock in the system,

979
00:40:05,320 --> 00:40:08,840
but not stock that the order can legally or technically use.

980
00:40:08,840 --> 00:40:10,520
Substitutes need the same care.

981
00:40:10,520 --> 00:40:12,760
A planner may spot an equivalent material code

982
00:40:12,760 --> 00:40:14,360
and assume it solves the shortage,

983
00:40:14,360 --> 00:40:17,640
but engineering may need to approve the substitute in quality

984
00:40:17,640 --> 00:40:19,000
may need to release it,

985
00:40:19,000 --> 00:40:21,560
and the root, work instruction, test plan,

986
00:40:21,560 --> 00:40:24,120
or customer agreement may change as a result.

987
00:40:24,120 --> 00:40:26,360
Until that approval exists,

988
00:40:26,360 --> 00:40:29,320
the substitute is a possible option, not available material.

989
00:40:29,320 --> 00:40:31,800
These are the kinds of details that separate a real schedule

990
00:40:31,800 --> 00:40:33,000
from a theoretical one.

991
00:40:33,000 --> 00:40:35,080
This is why material readiness needs more detail

992
00:40:35,080 --> 00:40:36,200
than an inventory balance.

993
00:40:36,200 --> 00:40:37,880
For a given order,

994
00:40:37,880 --> 00:40:39,160
the scheduling model needs to know

995
00:40:39,160 --> 00:40:41,080
whether the required quantity exists,

996
00:40:41,080 --> 00:40:42,840
whether the correct lot is allowed,

997
00:40:42,840 --> 00:40:44,520
whether inspection has released it,

998
00:40:44,520 --> 00:40:46,920
and whether the material can reach the operation in time.

999
00:40:46,920 --> 00:40:48,840
That sounds like a lot of detail,

1000
00:40:48,840 --> 00:40:50,520
but the alternative is worse.

1001
00:40:50,520 --> 00:40:52,760
You reserve constrained capacity for work

1002
00:40:52,760 --> 00:40:55,000
that stops before the first part runs.

1003
00:40:55,000 --> 00:40:56,600
Many plans respond to uncertainty

1004
00:40:56,600 --> 00:40:58,520
by releasing every order early.

1005
00:40:58,520 --> 00:40:59,720
The reasoning makes sense.

1006
00:40:59,720 --> 00:41:01,160
If all work sits on the floor,

1007
00:41:01,160 --> 00:41:03,880
the team can pick the next ready job when something goes wrong.

1008
00:41:03,880 --> 00:41:06,120
But early release often creates a larger queue

1009
00:41:06,120 --> 00:41:07,000
around the bottleneck,

1010
00:41:07,000 --> 00:41:08,680
more material handling, more searching,

1011
00:41:08,680 --> 00:41:11,160
and more arguments about which order really matters.

1012
00:41:11,160 --> 00:41:14,120
The floor becomes a storage area for planning uncertainty.

1013
00:41:14,120 --> 00:41:16,120
If this sounds familiar, you're not alone.

1014
00:41:16,120 --> 00:41:17,640
Most plans hit this wall.

1015
00:41:17,640 --> 00:41:20,040
A long queue also hides actual priority.

1016
00:41:20,040 --> 00:41:22,280
Every order looks urgent once it's been released,

1017
00:41:22,280 --> 00:41:23,880
staged, and waiting for days.

1018
00:41:23,880 --> 00:41:26,200
So supervisors spend time sorting paperwork,

1019
00:41:26,200 --> 00:41:28,040
checking material, calling planners,

1020
00:41:28,040 --> 00:41:29,480
and protecting local flow.

1021
00:41:29,480 --> 00:41:31,880
While the central plan loses contact with the work,

1022
00:41:31,880 --> 00:41:33,160
people can actually execute.

1023
00:41:33,160 --> 00:41:35,960
Release control takes a different approach,

1024
00:41:35,960 --> 00:41:37,880
instead of pushing every order into production

1025
00:41:37,880 --> 00:41:39,480
as soon as ERP creates it.

1026
00:41:39,480 --> 00:41:42,280
The plan releases work when it meets readiness conditions,

1027
00:41:42,280 --> 00:41:44,280
and when the constrained resource can use it

1028
00:41:44,280 --> 00:41:46,040
within the near term schedule.

1029
00:41:46,040 --> 00:41:48,200
That means material is complete and released,

1030
00:41:48,200 --> 00:41:49,160
the root is current,

1031
00:41:49,160 --> 00:41:50,760
and the bottleneck has capacity

1032
00:41:50,760 --> 00:41:52,120
within the agreed release window.

1033
00:41:52,120 --> 00:41:53,560
The point isn't to starve production,

1034
00:41:53,560 --> 00:41:56,280
it's to feed the bottleneck with work that can actually run.

1035
00:41:56,280 --> 00:41:59,400
When the bottleneck receives a manageable queue of ready orders,

1036
00:41:59,400 --> 00:42:01,240
the scheduler can sequence those orders

1037
00:42:01,240 --> 00:42:02,520
by due dates,

1038
00:42:02,520 --> 00:42:03,800
setup conditions,

1039
00:42:03,800 --> 00:42:05,640
and downstream needs.

1040
00:42:05,640 --> 00:42:07,560
Material control can focus on the jobs

1041
00:42:07,560 --> 00:42:09,160
that will actually run soon,

1042
00:42:09,160 --> 00:42:11,960
rather than building kits for work that may wait for weeks,

1043
00:42:11,960 --> 00:42:14,440
and planners get a clearer view of what's missing,

1044
00:42:14,440 --> 00:42:16,360
and what decision can remove the block.

1045
00:42:16,360 --> 00:42:18,440
This is where finite capacity scheduling starts

1046
00:42:18,440 --> 00:42:20,280
to become part of production control.

1047
00:42:20,280 --> 00:42:23,160
It doesn't sit off to the side as a weekly planning calculation.

1048
00:42:23,160 --> 00:42:25,240
It shapes which work reaches the floor,

1049
00:42:25,240 --> 00:42:26,680
when material gets staged,

1050
00:42:26,680 --> 00:42:28,680
and when exceptions need attention.

1051
00:42:28,680 --> 00:42:30,280
The schedule becomes a working agreement

1052
00:42:30,280 --> 00:42:31,160
between planning,

1053
00:42:31,160 --> 00:42:33,320
material control, production, and quality.

1054
00:42:33,320 --> 00:42:35,080
And even when the machine calendar looks open

1055
00:42:35,080 --> 00:42:36,520
and the material is fully ready,

1056
00:42:36,520 --> 00:42:38,120
capacity can still disappear.

1057
00:42:38,120 --> 00:42:40,280
People bring their own limits, skills,

1058
00:42:40,280 --> 00:42:42,160
shift patterns, and real world constraints

1059
00:42:42,160 --> 00:42:43,640
into the same schedule.

1060
00:42:43,640 --> 00:42:45,120
That's the subject for next time,

1061
00:42:45,120 --> 00:42:47,960
but for now, understand that the schedule isn't just a plan.

1062
00:42:47,960 --> 00:42:50,840
It's a conversation with the whole operation.

1063
00:42:50,840 --> 00:42:53,120
Labor, skills, and shift calendars.

1064
00:42:53,120 --> 00:42:55,480
Here's a scenario that trips up a lot of schedules.

1065
00:42:55,480 --> 00:42:57,280
Your machine calendar shows an open slot,

1066
00:42:57,280 --> 00:42:59,480
but real productive capacity sits at zero

1067
00:42:59,480 --> 00:43:02,080
because nobody qualified to run the operation is on shift,

1068
00:43:02,080 --> 00:43:04,360
or the person who can run it is stuck on another task.

1069
00:43:04,360 --> 00:43:06,120
The schedule never accounted for.

1070
00:43:06,120 --> 00:43:08,160
The machine exists, material might be ready,

1071
00:43:08,160 --> 00:43:09,360
and the order looks urgent,

1072
00:43:09,360 --> 00:43:12,080
but the work still cannot start safely or correctly.

1073
00:43:12,080 --> 00:43:13,440
That right there is one of the gaps

1074
00:43:13,440 --> 00:43:15,840
between an equipment schedule and a production schedule.

1075
00:43:15,840 --> 00:43:18,840
Take a CNC machine that can technically run both shifts.

1076
00:43:18,840 --> 00:43:21,040
On the day shift, an experienced operator sets it up,

1077
00:43:21,040 --> 00:43:23,920
runs the approved program, handles first piece checks,

1078
00:43:23,920 --> 00:43:26,920
and reacts when a tool or process issue appears.

1079
00:43:26,920 --> 00:43:29,560
On the evening shift, the machine can run repeat work,

1080
00:43:29,560 --> 00:43:31,680
but a new product setup needs a senior operator

1081
00:43:31,680 --> 00:43:34,160
or a setup technician who only works days.

1082
00:43:34,160 --> 00:43:36,760
Two different capacity profiles, plain and simple.

1083
00:43:36,760 --> 00:43:38,920
The calendar might show 16 machine hours,

1084
00:43:38,920 --> 00:43:41,160
but for a certain product, the plant may only have eight

1085
00:43:41,160 --> 00:43:43,560
workable hours because the required skill is present

1086
00:43:43,560 --> 00:43:44,760
for one shift.

1087
00:43:44,760 --> 00:43:46,720
Load that order across the full day,

1088
00:43:46,720 --> 00:43:50,280
and you have created a conflict before production even sees it.

1089
00:43:50,280 --> 00:43:53,120
That is the kind of mismatch that feels invisible in the system,

1090
00:43:53,120 --> 00:43:55,160
but stops work cold on the floor.

1091
00:43:55,160 --> 00:43:57,600
Shift patterns matter here, and they are never simple.

1092
00:43:57,600 --> 00:44:00,480
A plant may work two shifts, three shifts, weekends,

1093
00:44:00,480 --> 00:44:02,880
or a pattern that flexes with demand.

1094
00:44:02,880 --> 00:44:05,080
Within those shifts, people take breaks,

1095
00:44:05,080 --> 00:44:07,360
attend handovers, join safety meetings,

1096
00:44:07,360 --> 00:44:10,680
support quality checks, and sometimes cover another work center.

1097
00:44:10,680 --> 00:44:12,480
None of that makes the plant poorly run.

1098
00:44:12,480 --> 00:44:14,160
It's simply how work happens.

1099
00:44:14,160 --> 00:44:16,560
Overtime adds capacity, but it's not a blank line

1100
00:44:16,560 --> 00:44:17,800
in a planning system.

1101
00:44:17,800 --> 00:44:20,600
There are rules on who can work it, how much is allowed,

1102
00:44:20,600 --> 00:44:22,560
and whether the right skill is available.

1103
00:44:22,560 --> 00:44:25,440
Someone may agree to stay late today, but not tomorrow.

1104
00:44:25,440 --> 00:44:27,480
Another person may already have worked a long shift

1105
00:44:27,480 --> 00:44:30,000
and pushing more work onto them can create safety,

1106
00:44:30,000 --> 00:44:31,560
quality and retention problems

1107
00:44:31,560 --> 00:44:34,200
that never show up in a simple hour calculation.

1108
00:44:34,200 --> 00:44:36,160
Absence changes the picture fast.

1109
00:44:36,160 --> 00:44:39,160
One operator calling in sick can affect a whole resource group

1110
00:44:39,160 --> 00:44:41,320
if that person holds a rare approval

1111
00:44:41,320 --> 00:44:44,360
or carries the practical knowledge for a difficult setup.

1112
00:44:44,360 --> 00:44:46,360
Training creates a related limit.

1113
00:44:46,360 --> 00:44:48,960
A newer operator may run the machine under supervision,

1114
00:44:48,960 --> 00:44:50,440
run only certain products,

1115
00:44:50,440 --> 00:44:53,600
or need a senior colleague nearby for the first few jobs.

1116
00:44:53,600 --> 00:44:56,680
The schedule should treat those limits as facts, not weakness.

1117
00:44:56,680 --> 00:44:59,440
And in practical terms, that means building them into the model.

1118
00:44:59,440 --> 00:45:02,160
That is where a skill matrix becomes useful.

1119
00:45:02,160 --> 00:45:04,160
It records who can perform which work,

1120
00:45:04,160 --> 00:45:05,720
on which machine or process,

1121
00:45:05,720 --> 00:45:07,560
and sometimes at what level of approval.

1122
00:45:07,560 --> 00:45:10,240
It may show that one operator can run standard milling jobs,

1123
00:45:10,240 --> 00:45:11,920
another can perform high tolerance work,

1124
00:45:11,920 --> 00:45:13,760
and a third can complete the inspection step

1125
00:45:13,760 --> 00:45:15,520
that releases the part to assembly.

1126
00:45:15,520 --> 00:45:18,080
This gives the scheduler another set of conditions.

1127
00:45:18,080 --> 00:45:20,680
An operation may require a machine and a skill,

1128
00:45:20,680 --> 00:45:23,160
and the order can only occupy a time slot

1129
00:45:23,160 --> 00:45:24,840
when both exist together.

1130
00:45:24,840 --> 00:45:26,520
If the operator works from six in the morning

1131
00:45:26,520 --> 00:45:27,560
until two in the afternoon,

1132
00:45:27,560 --> 00:45:30,000
the machine slot at four o'clock may not count for that job,

1133
00:45:30,000 --> 00:45:32,520
even though the machine itself remains open.

1134
00:45:32,520 --> 00:45:34,080
Now here's where it gets practical.

1135
00:45:34,080 --> 00:45:36,400
Some operations need more than one person.

1136
00:45:36,400 --> 00:45:38,600
A complex setup may require the machine operator

1137
00:45:38,600 --> 00:45:40,440
and a setup technician at the same time.

1138
00:45:40,440 --> 00:45:42,960
A heavier awkward component may need a material handler

1139
00:45:42,960 --> 00:45:43,880
during loading,

1140
00:45:43,880 --> 00:45:46,360
and a first article may need a quality specialist available

1141
00:45:46,360 --> 00:45:48,840
to review the part before the run continues.

1142
00:45:48,840 --> 00:45:51,240
These pairing rules often live in people's heads.

1143
00:45:51,240 --> 00:45:53,360
The supervisor knows that the job cannot start

1144
00:45:53,360 --> 00:45:55,760
until the technician returns from another area.

1145
00:45:55,760 --> 00:45:58,400
A planner knows that quality gets busy at certain times,

1146
00:45:58,400 --> 00:46:00,160
and the operator knows that a particular part

1147
00:46:00,160 --> 00:46:01,920
takes two people to load safely,

1148
00:46:01,920 --> 00:46:04,440
despite what the routing time suggests.

1149
00:46:04,440 --> 00:46:06,080
Finite scheduling becomes more credible

1150
00:46:06,080 --> 00:46:08,720
when these rules move into the model in a practical form.

1151
00:46:08,720 --> 00:46:11,600
Not every human detail belongs in an automated schedule.

1152
00:46:11,600 --> 00:46:13,240
You do not need to turn the workforce

1153
00:46:13,240 --> 00:46:15,480
into a spreadsheet of every small action.

1154
00:46:15,480 --> 00:46:17,960
But if a skill, role, or approval repeatedly

1155
00:46:17,960 --> 00:46:19,800
decides whether work can run,

1156
00:46:19,800 --> 00:46:21,560
it belongs in the planning logic.

1157
00:46:21,560 --> 00:46:23,200
People are not virtual computer resources,

1158
00:46:23,200 --> 00:46:25,880
that you cannot move an experienced operator from one work center

1159
00:46:25,880 --> 00:46:28,520
to another with a mouse click and assume the output follows.

1160
00:46:28,520 --> 00:46:30,040
They need time to walk there,

1161
00:46:30,040 --> 00:46:33,120
understand the current state of the job, take over safely,

1162
00:46:33,120 --> 00:46:36,320
and sometimes learn a process they have not run in months.

1163
00:46:36,320 --> 00:46:38,440
Even where a person holds the formal skill,

1164
00:46:38,440 --> 00:46:42,000
the supervisor may know they are already caring too much work.

1165
00:46:42,000 --> 00:46:43,320
That judgment still matters.

1166
00:46:43,320 --> 00:46:45,280
A finite schedule should support the supervisor,

1167
00:46:45,280 --> 00:46:47,720
not issue a fantasy instruction from an office system.

1168
00:46:47,720 --> 00:46:50,120
It can show that the bottleneck needs a qualified person

1169
00:46:50,120 --> 00:46:51,400
at a specific time,

1170
00:46:51,400 --> 00:46:54,800
and reveal that a staffing gap turns an apparently open machine

1171
00:46:54,800 --> 00:46:56,600
into unavailable capacity.

1172
00:46:56,600 --> 00:46:59,040
Then production can decide whether to change the sequence,

1173
00:46:59,040 --> 00:47:02,160
move labor, approve overtime, or accept the date risk.

1174
00:47:02,160 --> 00:47:04,240
People are only one part of the resource picture,

1175
00:47:04,240 --> 00:47:06,520
and the next layer includes the physical items

1176
00:47:06,520 --> 00:47:08,480
and planned interruptions that can block work

1177
00:47:08,480 --> 00:47:11,800
even when the machine and operator are both ready.

1178
00:47:11,800 --> 00:47:14,400
Tools, fixtures, maintenance, and quality gates.

1179
00:47:14,400 --> 00:47:16,920
A machine can be free, an operator can be ready,

1180
00:47:16,920 --> 00:47:18,800
and the order can still have nowhere to go

1181
00:47:18,800 --> 00:47:22,400
because machines are rarely the only finite resource in a process.

1182
00:47:22,400 --> 00:47:24,400
One fixture set may exist only once,

1183
00:47:24,400 --> 00:47:26,240
a mold may already sit in another press,

1184
00:47:26,240 --> 00:47:28,000
a gauge may wait for calibration,

1185
00:47:28,000 --> 00:47:30,560
and a test rig can support several product lines.

1186
00:47:30,560 --> 00:47:32,640
A shared crane may become the real constraint

1187
00:47:32,640 --> 00:47:34,800
long before the machine calendar fills up.

1188
00:47:34,800 --> 00:47:37,680
The schedule needs to see those resources as occupied time,

1189
00:47:37,680 --> 00:47:39,840
not as a note, in a work instruction.

1190
00:47:39,840 --> 00:47:43,040
Take a machining operation that needs a specific fixture.

1191
00:47:43,040 --> 00:47:46,320
The CNC machine may have an open slot from nine until noon,

1192
00:47:46,320 --> 00:47:48,640
and the right operator may work that shift,

1193
00:47:48,640 --> 00:47:51,680
but if the fixture remains on another machine until 11,

1194
00:47:51,680 --> 00:47:53,760
that operation cannot begin at nine.

1195
00:47:53,760 --> 00:47:57,080
That machine is available, but the full production resource is not.

1196
00:47:57,080 --> 00:47:59,120
The same applies to cutting tools.

1197
00:47:59,120 --> 00:48:01,280
A tool package might suit several jobs,

1198
00:48:01,280 --> 00:48:04,400
but one set can only sit in one machine at a time,

1199
00:48:04,400 --> 00:48:06,520
and tool life can matter too.

1200
00:48:06,520 --> 00:48:08,320
If a tool has limited life left,

1201
00:48:08,320 --> 00:48:10,560
the plant may need to replace it during the run,

1202
00:48:10,560 --> 00:48:13,480
prepare another tool set or reserve time for the change.

1203
00:48:13,480 --> 00:48:15,440
If the schedule ignores that condition,

1204
00:48:15,440 --> 00:48:18,160
it can look fine until the operator reaches the machine

1205
00:48:18,160 --> 00:48:20,560
and discovers that the required tooling is elsewhere,

1206
00:48:20,560 --> 00:48:22,160
expired or not ready.

1207
00:48:22,160 --> 00:48:24,880
Molds and test rigs create a similar issue.

1208
00:48:24,880 --> 00:48:27,400
In molding, a press without the required mold

1209
00:48:27,400 --> 00:48:28,640
cannot produce the part.

1210
00:48:28,640 --> 00:48:30,720
In assembly and test, a finished unit may wait

1211
00:48:30,720 --> 00:48:33,080
because the only test rig is busy with another product,

1212
00:48:33,080 --> 00:48:35,200
and the routing may show assembly capacity

1213
00:48:35,200 --> 00:48:38,000
while the actual flow stops at the shared test asset.

1214
00:48:38,000 --> 00:48:40,960
Shared cranes can create some of the most confusing failures.

1215
00:48:40,960 --> 00:48:43,440
Several machines may run independently most of the time,

1216
00:48:43,440 --> 00:48:46,360
but each one needs the same crane for loading, unloading,

1217
00:48:46,360 --> 00:48:47,520
or a tool change.

1218
00:48:47,520 --> 00:48:49,600
If two jobs need that crane at the same time,

1219
00:48:49,600 --> 00:48:52,800
one job waits, and a schedule that only looks at machine capacity

1220
00:48:52,800 --> 00:48:55,440
sees no conflict while the shift sees two teams

1221
00:48:55,440 --> 00:48:57,280
waiting for the same hook.

1222
00:48:57,280 --> 00:48:59,640
This is where resource groups become useful.

1223
00:48:59,640 --> 00:49:02,200
They describe the set of things that must exist together

1224
00:49:02,200 --> 00:49:03,600
for an operation to run.

1225
00:49:03,600 --> 00:49:07,000
It may include one machine, one fixture, one qualified person,

1226
00:49:07,000 --> 00:49:08,840
and a gauge for first piece approval,

1227
00:49:08,840 --> 00:49:10,560
and the scheduler needs to find a time

1228
00:49:10,560 --> 00:49:13,920
when that full group is available at once, not eventually.

1229
00:49:13,920 --> 00:49:16,760
Consider a complex operation where a machine needs a fixture,

1230
00:49:16,760 --> 00:49:19,800
a trained operator, and a quality inspector for the first article.

1231
00:49:19,800 --> 00:49:21,360
The machine may have four, three hours,

1232
00:49:21,360 --> 00:49:22,640
the fixture may be free all day,

1233
00:49:22,640 --> 00:49:24,640
the operator may be available in the morning,

1234
00:49:24,640 --> 00:49:27,400
and quality may only have capacity in the afternoon.

1235
00:49:27,400 --> 00:49:30,120
So the actual start time follows the last required condition,

1236
00:49:30,120 --> 00:49:32,200
not the first open calendar slot.

1237
00:49:32,200 --> 00:49:34,240
That can feel like extra complexity,

1238
00:49:34,240 --> 00:49:36,880
but production already works this way.

1239
00:49:36,880 --> 00:49:40,880
The difference is whether the model sees it before the shift begins

1240
00:49:40,880 --> 00:49:43,440
or whether people discover it through phone calls,

1241
00:49:43,440 --> 00:49:45,800
workarounds, and a machine standing still

1242
00:49:45,800 --> 00:49:48,000
within order beside it.

1243
00:49:48,000 --> 00:49:50,920
Maintenance introduces another form of finite capacity.

1244
00:49:50,920 --> 00:49:53,000
Preventive maintenance needs planned windows

1245
00:49:53,000 --> 00:49:54,320
in the resource calendar.

1246
00:49:54,320 --> 00:49:56,120
If a machine needs a service check,

1247
00:49:56,120 --> 00:49:59,160
lubrication inspection or scheduled replacement of a ware part,

1248
00:49:59,160 --> 00:50:01,000
that time belongs in the plan.

1249
00:50:01,000 --> 00:50:02,640
Treating maintenance is something that happens

1250
00:50:02,640 --> 00:50:04,680
after production finishes, often means

1251
00:50:04,680 --> 00:50:07,760
it never finds a safe place to happen until the asset fails.

1252
00:50:07,760 --> 00:50:09,920
A finite schedule should reserve maintenance time

1253
00:50:09,920 --> 00:50:11,520
the same way it reserves production time,

1254
00:50:11,520 --> 00:50:14,440
but condition-based downtime needs a slightly different approach.

1255
00:50:14,440 --> 00:50:16,800
Maintenance may receive a warning from an inspection,

1256
00:50:16,800 --> 00:50:20,400
a vibration trend, an alarm pattern, or an operator report,

1257
00:50:20,400 --> 00:50:23,800
and nobody can always predict the exact duration of the intervention.

1258
00:50:23,800 --> 00:50:26,000
The scheduler should not pretend it can,

1259
00:50:26,000 --> 00:50:28,160
but it can mark the resource as restricted,

1260
00:50:28,160 --> 00:50:30,640
reduce available capacity or present choices,

1261
00:50:30,640 --> 00:50:32,880
run the order and accept equipment risk,

1262
00:50:32,880 --> 00:50:35,160
stop the machine now, move selected work,

1263
00:50:35,160 --> 00:50:37,640
or delay the maintenance within an agreed limit.

1264
00:50:37,640 --> 00:50:40,040
Those choices belong with maintenance and production,

1265
00:50:40,040 --> 00:50:43,320
not with the calendar pretending the asset has no condition.

1266
00:50:43,320 --> 00:50:45,600
Quality gates also consume capacity.

1267
00:50:45,600 --> 00:50:47,600
A gauge needs a current calibration status

1268
00:50:47,600 --> 00:50:49,240
before it can support a measurement.

1269
00:50:49,240 --> 00:50:50,840
A test rig may need verification,

1270
00:50:50,840 --> 00:50:53,760
and an inspector can only review so many first pieces, samples,

1271
00:50:53,760 --> 00:50:55,360
or release decisions in a shift.

1272
00:50:55,360 --> 00:50:57,160
If inspection capacity becomes overloaded,

1273
00:50:57,160 --> 00:50:59,280
completed parts can stack up, waiting for release,

1274
00:50:59,280 --> 00:51:01,040
while the next operation runs short of work.

1275
00:51:01,040 --> 00:51:03,200
It changes flow, not just quality.

1276
00:51:03,200 --> 00:51:05,840
A schedule can show every machine free and still fail

1277
00:51:05,840 --> 00:51:08,600
because the required fixture, crane, test rig,

1278
00:51:08,600 --> 00:51:10,400
inspector, or calibrated gauge

1279
00:51:10,400 --> 00:51:12,760
cannot join the operation at the right time.

1280
00:51:12,760 --> 00:51:15,520
Finite capacity scheduling works when it models the resources

1281
00:51:15,520 --> 00:51:17,600
that repeatedly decide whether work starts,

1282
00:51:17,600 --> 00:51:19,800
not only the resources with the biggest motors.

1283
00:51:19,800 --> 00:51:22,480
Once work does start, the schedule meets another source

1284
00:51:22,480 --> 00:51:23,640
of uncertainty.

1285
00:51:23,640 --> 00:51:25,600
Plant, duration, and actual performance

1286
00:51:25,600 --> 00:51:28,200
are rarely identical on the factory floor.

1287
00:51:28,200 --> 00:51:30,640
Standards, actuals, and schedule credibility.

1288
00:51:30,640 --> 00:51:32,920
Every schedule starts with a planning assumption.

1289
00:51:32,920 --> 00:51:35,840
Arrouting might say an operation takes six minutes per,

1290
00:51:35,840 --> 00:51:37,720
part plus 40 minutes for setup,

1291
00:51:37,720 --> 00:51:39,800
and those numbers let the scheduler put something

1292
00:51:39,800 --> 00:51:40,720
on the calendar.

1293
00:51:40,720 --> 00:51:41,680
But here's the thing,

1294
00:51:41,680 --> 00:51:43,840
they aren't permanent facts about the process.

1295
00:51:43,840 --> 00:51:46,760
They describe what the plant expects under specific conditions

1296
00:51:46,760 --> 00:51:48,480
and conditions change all the time.

1297
00:51:48,480 --> 00:51:51,000
A worn tool might slow the machine down.

1298
00:51:51,000 --> 00:51:53,880
A new operator needs extra time on a product they don't run often.

1299
00:51:53,880 --> 00:51:56,360
Material can vary enough to throw off cycle time

1300
00:51:56,360 --> 00:51:58,240
and the first part might pass one day,

1301
00:51:58,240 --> 00:52:00,640
then need adjustment and another inspection the next.

1302
00:52:00,640 --> 00:52:02,920
None of that is unusual, but it's already more variation

1303
00:52:02,920 --> 00:52:05,080
than the planning assumption captured.

1304
00:52:05,080 --> 00:52:07,080
Now, standard cycle time still matters.

1305
00:52:07,080 --> 00:52:10,040
Without it, you can't plan capacity in a repeatable way,

1306
00:52:10,040 --> 00:52:13,320
can't compare performance, can't spot when the process has shifted.

1307
00:52:13,320 --> 00:52:15,800
But you have to treat that standard as a controlled estimate,

1308
00:52:15,800 --> 00:52:17,720
not a promise carved in stone.

1309
00:52:17,720 --> 00:52:20,720
Actual cycle time tells you what the operation consumed on the floor,

1310
00:52:20,720 --> 00:52:22,280
and that's where the real number lives.

1311
00:52:22,280 --> 00:52:24,240
That difference between standard and actual

1312
00:52:24,240 --> 00:52:26,280
can come from normal variation, sure.

1313
00:52:26,280 --> 00:52:28,520
It can also come from scrap, rework, short stops,

1314
00:52:28,520 --> 00:52:30,360
tool adjustments, material handling delays,

1315
00:52:30,360 --> 00:52:32,400
or machine that pauses enough to disrupt flow

1316
00:52:32,400 --> 00:52:33,960
without anyone calling it a breakdown.

1317
00:52:33,960 --> 00:52:36,680
Those microstops eat into capacity across a shift,

1318
00:52:36,680 --> 00:52:39,240
even when the machine never registers as down.

1319
00:52:39,240 --> 00:52:41,280
Scrap changes the schedule in a different way.

1320
00:52:41,280 --> 00:52:44,560
If an order needs 100 good parts and 5 fail inspection,

1321
00:52:44,560 --> 00:52:47,360
the remaining work doesn't follow the original plan anymore.

1322
00:52:47,360 --> 00:52:49,480
The plant may need to run extra quantity,

1323
00:52:49,480 --> 00:52:52,480
use rework capacity, or adjust the material balance.

1324
00:52:52,480 --> 00:52:54,480
A downstream operation might wait for good parts

1325
00:52:54,480 --> 00:52:57,400
while the machine still shows it completed the planned quantity.

1326
00:52:57,400 --> 00:53:00,240
Completion and usable output aren't always the same thing.

1327
00:53:00,240 --> 00:53:01,800
Rework needs the same attention,

1328
00:53:01,800 --> 00:53:04,120
a part that returns to machining or inspection

1329
00:53:04,120 --> 00:53:06,040
consumes capacity all over again

1330
00:53:06,040 --> 00:53:08,520
and competes with fresh orders for the same resource.

1331
00:53:08,520 --> 00:53:10,920
If the schedule pretends rework doesn't exist

1332
00:53:10,920 --> 00:53:12,840
because it's outside the normal route,

1333
00:53:12,840 --> 00:53:16,120
the plan gets more optimistic every time quality finds a problem.

1334
00:53:16,120 --> 00:53:18,840
That optimism shows up later as a misdelivery.

1335
00:53:18,840 --> 00:53:22,080
So this is where shop floor actuals earn their place in scheduling.

1336
00:53:22,080 --> 00:53:24,720
A manufacturing execution system, or MES,

1337
00:53:24,720 --> 00:53:27,800
can record actual starts, finishes, quantities, scrap,

1338
00:53:27,800 --> 00:53:29,760
downtime reasons, and labor activity,

1339
00:53:29,760 --> 00:53:31,200
depending on how the plant runs.

1340
00:53:31,200 --> 00:53:34,200
That information shouldn't just feed a report at month end.

1341
00:53:34,200 --> 00:53:35,920
It needs to inform the planning view

1342
00:53:35,920 --> 00:53:38,880
while there's still time to make a better decision right now.

1343
00:53:38,880 --> 00:53:40,640
But I'd be careful with automatic reactions.

1344
00:53:40,640 --> 00:53:42,880
Take overall equipment effectiveness or OE,

1345
00:53:42,880 --> 00:53:45,200
it brings together availability, performance, and quality

1346
00:53:45,200 --> 00:53:46,000
into one number.

1347
00:53:46,000 --> 00:53:48,600
It helps you see whether a resource loses time from stops,

1348
00:53:48,600 --> 00:53:50,880
slower running, or rejected output.

1349
00:53:50,880 --> 00:53:52,720
It can reveal patterns worth attention,

1350
00:53:52,720 --> 00:53:54,400
but it doesn't automatically tell the scheduler

1351
00:53:54,400 --> 00:53:57,480
to cut every rooting time by the current OE percentage.

1352
00:53:57,480 --> 00:54:00,480
An OE drop might come from a single unusual issue,

1353
00:54:00,480 --> 00:54:03,280
a tool failure, a new job that needed extra setup,

1354
00:54:03,280 --> 00:54:04,840
an operator training a colleague,

1355
00:54:04,840 --> 00:54:07,280
applying that one result to all future schedules

1356
00:54:07,280 --> 00:54:09,960
turns a temporary event into a permanent capacity cut.

1357
00:54:09,960 --> 00:54:11,320
The opposite problem happens too.

1358
00:54:11,320 --> 00:54:13,720
A few good shifts show faster than standard performance,

1359
00:54:13,720 --> 00:54:15,720
but that might rely on an experienced operator,

1360
00:54:15,720 --> 00:54:18,320
easy material, or a sequence that avoided tough setups.

1361
00:54:18,320 --> 00:54:21,160
Changing the rooting standard that quickly creates a plan

1362
00:54:21,160 --> 00:54:23,000
that only works on its best days.

1363
00:54:23,000 --> 00:54:24,960
Planning needs judgment about the pattern.

1364
00:54:24,960 --> 00:54:27,920
Temporary bad performance should trigger an operational response.

1365
00:54:27,920 --> 00:54:30,480
Check the cause, see if the problem remains active,

1366
00:54:30,480 --> 00:54:33,880
adjust the near term schedule if capacity has genuinely changed.

1367
00:54:33,880 --> 00:54:36,440
A change process baseline needs a different response.

1368
00:54:36,440 --> 00:54:39,320
Engineering and production can review repeated actuals,

1369
00:54:39,320 --> 00:54:41,440
confirm the method or condition has shifted

1370
00:54:41,440 --> 00:54:42,840
and update the standard.

1371
00:54:42,840 --> 00:54:44,840
That distinction protects schedule credibility.

1372
00:54:44,840 --> 00:54:46,360
If actuals never feedback,

1373
00:54:46,360 --> 00:54:47,920
the schedule keeps repeating assumptions

1374
00:54:47,920 --> 00:54:49,680
production has already disproved.

1375
00:54:49,680 --> 00:54:51,760
If every variation changes the standard,

1376
00:54:51,760 --> 00:54:54,720
the plan becomes unstable and nobody knows which number to trust.

1377
00:54:54,720 --> 00:54:56,480
You need a middle ground that uses the data

1378
00:54:56,480 --> 00:54:58,160
without reacting to every blip.

1379
00:54:58,160 --> 00:55:00,040
The feedback loop needs clear roles.

1380
00:55:00,040 --> 00:55:01,760
M.S. supplies execution facts.

1381
00:55:01,760 --> 00:55:03,920
Engineering owns the root method and standard time

1382
00:55:03,920 --> 00:55:05,720
once a change has been verified.

1383
00:55:05,720 --> 00:55:07,320
Planning uses the approved standards

1384
00:55:07,320 --> 00:55:09,400
and current execution state to place work.

1385
00:55:09,400 --> 00:55:12,520
Production adds the context that raw time stamps can't capture.

1386
00:55:12,520 --> 00:55:14,080
A delay code doesn't always explain

1387
00:55:14,080 --> 00:55:16,160
whether the issue will repeat tomorrow.

1388
00:55:16,160 --> 00:55:18,520
That loop doesn't need to turn into slow committee work.

1389
00:55:18,520 --> 00:55:20,720
It just needs a regular way to ask a simple question.

1390
00:55:20,720 --> 00:55:23,040
Did this event change today's schedule only?

1391
00:55:23,040 --> 00:55:25,880
Or did it change our expected capacity going forward?

1392
00:55:25,880 --> 00:55:27,960
Once actual production reaches the schedule,

1393
00:55:27,960 --> 00:55:30,200
another event always waits in the background.

1394
00:55:30,200 --> 00:55:33,440
The machine that stops when the plan has no spare time left.

1395
00:55:33,440 --> 00:55:34,720
The machine breakdown.

1396
00:55:34,720 --> 00:55:36,280
Now put that schedule under pressure.

1397
00:55:36,280 --> 00:55:38,640
The bottleneck machine is halfway through a loaded shift

1398
00:55:38,640 --> 00:55:40,720
running an order that feeds assembly later that day

1399
00:55:40,720 --> 00:55:43,160
with the next two orders already waiting in sequence.

1400
00:55:43,160 --> 00:55:45,760
Material is staged, the operator knows the plan

1401
00:55:45,760 --> 00:55:48,720
and downstream teams expect parts at specific times.

1402
00:55:48,720 --> 00:55:50,840
Then the machine stops.

1403
00:55:50,840 --> 00:55:53,680
Maybe the spindle alarms, a hydraulic fault appears

1404
00:55:53,680 --> 00:55:55,800
or a tool changer jams.

1405
00:55:55,800 --> 00:55:57,120
The course doesn't matter yet.

1406
00:55:57,120 --> 00:55:58,400
The machine cannot continue

1407
00:55:58,400 --> 00:56:00,640
and an operation that looked safely placed now

1408
00:56:00,640 --> 00:56:02,240
has an unknown finish time.

1409
00:56:02,240 --> 00:56:03,960
The first impact is easy to see.

1410
00:56:03,960 --> 00:56:05,840
The current order remains unfinished.

1411
00:56:05,840 --> 00:56:07,480
But the effect moves quickly.

1412
00:56:07,480 --> 00:56:10,160
Parts needed by the next operation don't arrive.

1413
00:56:10,160 --> 00:56:12,360
Assembly may have people ready, components prepared

1414
00:56:12,360 --> 00:56:13,480
and a work slot reserved.

1415
00:56:13,480 --> 00:56:16,240
Inspection may expect a batch that never reaches the queue.

1416
00:56:16,240 --> 00:56:18,240
Material handlers may wait with the next kit

1417
00:56:18,240 --> 00:56:21,200
while the bottleneck holds both machine and schedule in place.

1418
00:56:21,200 --> 00:56:23,000
A breakdown changes more than one order.

1419
00:56:23,000 --> 00:56:26,120
Suppose the order on the machine needs another two hours of run time.

1420
00:56:26,120 --> 00:56:28,720
The maintenance technician arrives and starts diagnosis.

1421
00:56:28,720 --> 00:56:31,120
At that point, the plan can't honestly assume

1422
00:56:31,120 --> 00:56:34,040
the machine will return after a fixed number of minutes

1423
00:56:34,040 --> 00:56:35,640
just because the schedule needs it to.

1424
00:56:35,640 --> 00:56:36,440
You know it won't.

1425
00:56:36,440 --> 00:56:38,120
Repair duration is uncertain.

1426
00:56:38,120 --> 00:56:39,680
A fault may clear after a reset

1427
00:56:39,680 --> 00:56:42,360
or it may require a spare part from the maintenance store

1428
00:56:42,360 --> 00:56:45,400
or it may expose damage that needs outside support.

1429
00:56:45,400 --> 00:56:48,280
Production needs a planning view before all that becomes certain

1430
00:56:48,280 --> 00:56:51,160
but that planning view should show the assumption it uses.

1431
00:56:51,160 --> 00:56:52,840
So think about three repair scenarios,

1432
00:56:52,840 --> 00:56:55,200
a short interruption if the fault clears quickly,

1433
00:56:55,200 --> 00:56:58,320
a longer outage if the repair takes the rest of the shift

1434
00:56:58,320 --> 00:57:02,200
or a worst case where the resource stays unavailable into the next day.

1435
00:57:02,200 --> 00:57:04,400
The point isn't to create drama around every alarm.

1436
00:57:04,400 --> 00:57:08,160
It's to stop treating uncertain downtime as a promise that's already been kept.

1437
00:57:08,160 --> 00:57:10,560
People need to decide while the facts are still moving.

1438
00:57:10,560 --> 00:57:13,680
Can maintenance restore the machine safely to complete the order?

1439
00:57:13,680 --> 00:57:16,240
Can part of the work move to an approved alternate resource

1440
00:57:16,240 --> 00:57:18,840
that has capacity, tooling and a qualified operator?

1441
00:57:18,840 --> 00:57:20,280
Could the plan split the batch,

1442
00:57:20,280 --> 00:57:23,120
send the completed parts ahead while the remainder waits?

1443
00:57:23,120 --> 00:57:24,480
Each question carries a cost.

1444
00:57:24,480 --> 00:57:27,680
Re-routing may protect the delivery but add setup time elsewhere.

1445
00:57:27,680 --> 00:57:29,360
Over time may recover capacity,

1446
00:57:29,360 --> 00:57:30,960
but only if the right people can work it

1447
00:57:30,960 --> 00:57:32,960
and the machine returns in usable condition.

1448
00:57:32,960 --> 00:57:35,040
Subcontracting may help with a later operation,

1449
00:57:35,040 --> 00:57:38,800
but it introduces transport time, quality checks and commercial approval.

1450
00:57:38,800 --> 00:57:41,280
Sometimes the clearest action is a customer call

1451
00:57:41,280 --> 00:57:42,640
that doesn't mean the plant has given up.

1452
00:57:42,640 --> 00:57:46,320
It means customer service can speak from a realistic production position

1453
00:57:46,320 --> 00:57:50,240
instead of repeating the original date after the conditions that supported it are gone.

1454
00:57:50,240 --> 00:57:53,040
If a service part will miss the agreed shipment time,

1455
00:57:53,040 --> 00:57:56,480
an early conversation creates options that a late surprise removes.

1456
00:57:56,480 --> 00:57:57,920
The same applies to priority.

1457
00:57:57,920 --> 00:58:01,200
Maybe the interrupted order matters less than the next job in the queue,

1458
00:58:01,200 --> 00:58:04,400
maybe completing the current work first protects traceability,

1459
00:58:04,400 --> 00:58:07,440
avoids scrap or keeps a later assembly cell supplied,

1460
00:58:07,440 --> 00:58:09,760
or perhaps the unfinished order can wait

1461
00:58:09,760 --> 00:58:12,880
because another order carries a more serious customer risk.

1462
00:58:12,880 --> 00:58:15,360
The original schedule can't answer those questions anymore.

1463
00:58:15,360 --> 00:58:17,040
It answered a different question.

1464
00:58:17,040 --> 00:58:19,920
Given the capacity and constraints known when the plan ran,

1465
00:58:19,920 --> 00:58:21,520
where should the work go?

1466
00:58:21,520 --> 00:58:23,520
The breakdown has changed available capacity,

1467
00:58:23,520 --> 00:58:25,040
the state of the current operation,

1468
00:58:25,040 --> 00:58:27,440
and possibly the priority of the next decision.

1469
00:58:27,440 --> 00:58:30,240
Keeping the old schedule on the board doesn't preserve control.

1470
00:58:30,240 --> 00:58:33,680
It only preserves an old assumption that no longer applies.

1471
00:58:33,680 --> 00:58:36,320
This is where finite scheduling becomes useful in the moment,

1472
00:58:36,320 --> 00:58:38,000
not just before the shift starts.

1473
00:58:38,000 --> 00:58:41,280
The planner needs to know which orders now miss their planned finish,

1474
00:58:41,280 --> 00:58:43,360
what downstream work loses supply,

1475
00:58:43,360 --> 00:58:45,360
which alternatives remain feasible,

1476
00:58:45,360 --> 00:58:47,520
and what each alternative displaces.

1477
00:58:47,520 --> 00:58:50,880
Maintenance needs room to state what it knows and what it doesn't know.

1478
00:58:50,880 --> 00:58:54,080
Production needs a plan that recognizes the work already in motion.

1479
00:58:54,080 --> 00:58:55,760
No schedule removes the disruption,

1480
00:58:55,760 --> 00:58:57,840
but a schedule can make the choices visible

1481
00:58:57,840 --> 00:59:01,680
before the disruption turns into a row of missed dates and phone calls.

1482
00:59:01,680 --> 00:59:04,800
The next step is to recalculate the plan without treating every order

1483
00:59:04,800 --> 00:59:06,400
as if it can move freely,

1484
00:59:06,400 --> 00:59:08,400
rescheduling without creating chaos.

1485
00:59:08,400 --> 00:59:10,480
Here's a problem most schedulers don't talk about.

1486
00:59:10,480 --> 00:59:11,760
When a bottleneck stops,

1487
00:59:11,760 --> 00:59:13,920
you don't need to tear down the entire factory plan,

1488
00:59:13,920 --> 00:59:16,400
the reschedule should start from the event and nothing more.

1489
00:59:16,400 --> 00:59:17,760
It might be a machine breakdown,

1490
00:59:17,760 --> 00:59:21,120
a late delivery leaving an order short or material equality hold,

1491
00:59:21,120 --> 00:59:22,800
blocking a batch after inspection,

1492
00:59:22,800 --> 00:59:24,960
or a priority change from the commercial side.

1493
00:59:24,960 --> 00:59:26,960
In each case, something in the model shifted,

1494
00:59:26,960 --> 00:59:29,760
and the scheduler needs to test the effect from that point forward,

1495
00:59:29,760 --> 00:59:31,600
not rebuild everything from scratch.

1496
00:59:31,600 --> 00:59:32,560
That sounds simple,

1497
00:59:32,560 --> 00:59:33,920
but the real danger appears

1498
00:59:33,920 --> 00:59:36,720
when every little exception triggers a complete reshuffle.

1499
00:59:36,720 --> 00:59:38,480
Picture a machine losing four hours.

1500
00:59:38,480 --> 00:59:41,040
The scheduling system responds by moving every single order

1501
00:59:41,040 --> 00:59:42,320
across the next two weeks.

1502
00:59:42,320 --> 00:59:44,320
Dates change, sequences change,

1503
00:59:44,320 --> 00:59:45,920
material teams get a new list,

1504
00:59:45,920 --> 00:59:50,400
and supervisors start the shift with one plan only to receive another before lunch.

1505
00:59:50,400 --> 00:59:51,520
Then a second event hits,

1506
00:59:51,520 --> 00:59:53,360
and the whole plan moves yet again.

1507
00:59:53,360 --> 00:59:55,120
You know what happens next.

1508
00:59:55,120 --> 00:59:56,640
People stop trusting it.

1509
00:59:56,640 --> 00:59:59,680
A schedule that dances around all the time might be technically accurate,

1510
00:59:59,680 --> 01:00:02,240
but it doesn't give production a stable basis for action.

1511
01:00:02,240 --> 01:00:04,720
The floor needs enough consistency to stage material,

1512
01:00:04,720 --> 01:00:06,160
prepare tools, assign work,

1513
01:00:06,160 --> 01:00:07,680
and start the shift with some confidence,

1514
01:00:07,680 --> 01:00:09,840
which is exactly why freezes zones matter.

1515
01:00:09,840 --> 01:00:11,920
A free zone is a period close to execution

1516
01:00:11,920 --> 01:00:14,720
where the scheduler limits or blocks automatic changes.

1517
01:00:14,720 --> 01:00:16,080
Work already running stays put

1518
01:00:16,080 --> 01:00:18,000
unless somebody deliberately intervenes.

1519
01:00:18,000 --> 01:00:19,760
Work starting soon also gets protection

1520
01:00:19,760 --> 01:00:22,240
because the team may have already staged material

1521
01:00:22,240 --> 01:00:23,680
prepared tooling, plan labor,

1522
01:00:23,680 --> 01:00:25,200
or started setup around it.

1523
01:00:25,200 --> 01:00:27,440
The exact length depends on your process.

1524
01:00:27,440 --> 01:00:29,280
A fast-moving line might need a short window

1525
01:00:29,280 --> 01:00:31,600
since conditions change quickly and lots move fast,

1526
01:00:31,600 --> 01:00:33,920
while a complex batch process might need a longer one

1527
01:00:33,920 --> 01:00:35,120
because shifting the sequence,

1528
01:00:35,120 --> 01:00:36,080
wastes preparation,

1529
01:00:36,080 --> 01:00:38,160
or creates real safety and quality risk.

1530
01:00:38,160 --> 01:00:39,920
There's no one-size-fits-all setting.

1531
01:00:39,920 --> 01:00:42,800
The policy has to match how production actually runs.

1532
01:00:42,800 --> 01:00:45,840
Outside the free zone, the scheduler has more room to shift work.

1533
01:00:45,840 --> 01:00:47,520
That's the planning horizon where rescheduling

1534
01:00:47,520 --> 01:00:49,360
can still improve the outcome.

1535
01:00:49,360 --> 01:00:51,200
If a breakdown affects tomorrow's output,

1536
01:00:51,200 --> 01:00:52,960
the system might bump later orders,

1537
01:00:52,960 --> 01:00:54,400
check alternative slots,

1538
01:00:54,400 --> 01:00:56,320
and flag where dates come under pressure.

1539
01:00:56,320 --> 01:00:58,640
And here's why that matters as we look further out.

1540
01:00:58,640 --> 01:01:01,040
The schedule often ends up less precise anyway.

1541
01:01:01,040 --> 01:01:02,960
Demand changes, suppliers move dates,

1542
01:01:02,960 --> 01:01:04,640
engineering revises a route.

1543
01:01:04,640 --> 01:01:06,720
So it makes little sense to treat every future slot

1544
01:01:06,720 --> 01:01:07,760
as a hard commitment.

1545
01:01:07,760 --> 01:01:09,120
The schedule needs enough detail

1546
01:01:09,120 --> 01:01:10,800
near execution to support the shift

1547
01:01:10,800 --> 01:01:13,360
and enough flexibility later to absorb new information

1548
01:01:13,360 --> 01:01:14,960
that balance controls nervousness.

1549
01:01:14,960 --> 01:01:17,920
Nervousness means the plan reacts to aggressively

1550
01:01:17,920 --> 01:01:19,120
to small changes.

1551
01:01:19,120 --> 01:01:21,680
One order finishes a little late and 10 others move.

1552
01:01:21,680 --> 01:01:24,720
A delivery date changes in the system re-orders a whole campaign.

1553
01:01:24,720 --> 01:01:27,280
The schedule keeps finding technically feasible answers,

1554
01:01:27,280 --> 01:01:30,160
but the people executing it spend their day chasing the latest version.

1555
01:01:30,160 --> 01:01:31,120
You don't want that.

1556
01:01:31,120 --> 01:01:33,440
A better approach uses rules about when an event

1557
01:01:33,440 --> 01:01:34,800
deserves a reschedule,

1558
01:01:34,800 --> 01:01:36,480
how much of the horizon can move

1559
01:01:36,480 --> 01:01:38,560
and what changes need human approval.

1560
01:01:38,560 --> 01:01:41,120
A short delay might only affect the current resource

1561
01:01:41,120 --> 01:01:42,240
and the immediate queue.

1562
01:01:42,240 --> 01:01:44,720
A major outage might justify a broader recalculation

1563
01:01:44,720 --> 01:01:46,160
because the lost capacity changes

1564
01:01:46,160 --> 01:01:47,360
several customer commitments.

1565
01:01:47,360 --> 01:01:49,200
The response should fit the event.

1566
01:01:49,200 --> 01:01:51,360
Planets can also protect certain decisions

1567
01:01:51,360 --> 01:01:52,720
from automatic movement.

1568
01:01:52,720 --> 01:01:54,320
An order might sit close to shipment,

1569
01:01:54,320 --> 01:01:56,720
a campaign might have already consumed setup time

1570
01:01:56,720 --> 01:01:58,800
or a customer promise might need direct review

1571
01:01:58,800 --> 01:02:00,080
before anything changes.

1572
01:02:00,080 --> 01:02:02,080
These aren't excuses to ignore the math.

1573
01:02:02,080 --> 01:02:04,080
Their business conditions the math needs to respect.

1574
01:02:04,080 --> 01:02:06,320
Now we get to the human review.

1575
01:02:06,320 --> 01:02:09,440
The scheduling engine can calculate feasible options quickly.

1576
01:02:09,440 --> 01:02:11,840
It can show the effect of holding the current sequence,

1577
01:02:11,840 --> 01:02:13,280
moving selected orders,

1578
01:02:13,280 --> 01:02:14,800
using extra capacity,

1579
01:02:14,800 --> 01:02:17,440
or accepting lateness on lower priority work

1580
01:02:17,440 --> 01:02:20,080
that saves the planner from rebuilding the schedule by hand

1581
01:02:20,080 --> 01:02:21,600
each time an exception hits.

1582
01:02:21,600 --> 01:02:23,840
But the scheduler doesn't own the decision alone.

1583
01:02:23,840 --> 01:02:26,080
The planner brings context that rarely fits

1584
01:02:26,080 --> 01:02:27,280
cleanly into any model.

1585
01:02:27,280 --> 01:02:29,600
A customer may accept a one-day delay on one order,

1586
01:02:29,600 --> 01:02:30,400
but not another.

1587
01:02:30,400 --> 01:02:32,240
A supervisor may know a suggested change

1588
01:02:32,240 --> 01:02:34,240
creates trouble during the next shift handover.

1589
01:02:34,240 --> 01:02:35,440
Maintenance may have information

1590
01:02:35,440 --> 01:02:37,760
that changes the confidence around the repair estimate.

1591
01:02:37,760 --> 01:02:39,200
So the system should propose,

1592
01:02:39,200 --> 01:02:40,720
the planner should decide.

1593
01:02:40,720 --> 01:02:42,560
That decision also needs a clear record.

1594
01:02:42,560 --> 01:02:44,800
If the planner overrides the proposed sequence,

1595
01:02:44,800 --> 01:02:46,080
people should know why.

1596
01:02:46,080 --> 01:02:48,080
Maybe the plant protected a service order,

1597
01:02:48,080 --> 01:02:49,600
avoided a high-risk setup,

1598
01:02:49,600 --> 01:02:51,040
or chose to keep work stable

1599
01:02:51,040 --> 01:02:52,640
and accept a later date rather than

1600
01:02:52,640 --> 01:02:55,040
create confusion across several departments.

1601
01:02:55,040 --> 01:02:57,760
Over time, those decisions show where the model needs better rules

1602
01:02:57,760 --> 01:02:59,680
and where human judgment should remain visible.

1603
01:02:59,680 --> 01:03:00,560
To make that work,

1604
01:03:00,560 --> 01:03:02,880
the planner needs facts from more than one system.

1605
01:03:02,880 --> 01:03:04,560
The machine event starts on the shop floor.

1606
01:03:04,560 --> 01:03:06,560
Material status lives somewhere else.

1607
01:03:06,560 --> 01:03:08,080
Quality release, order priority,

1608
01:03:08,080 --> 01:03:09,440
and current work completion

1609
01:03:09,440 --> 01:03:12,480
each exist in different parts of the IT and OT environment.

1610
01:03:12,480 --> 01:03:15,040
The architecture from shop floor to schedule.

1611
01:03:15,040 --> 01:03:16,880
Let's cut through the hype for a second.

1612
01:03:16,880 --> 01:03:18,960
A schedule can only respond to a disruption

1613
01:03:18,960 --> 01:03:21,040
if it receives a usable signal from the place

1614
01:03:21,040 --> 01:03:22,400
where the disruption happened.

1615
01:03:22,400 --> 01:03:24,080
That starts close to the equipment.

1616
01:03:24,080 --> 01:03:25,600
A machine reports a state,

1617
01:03:25,600 --> 01:03:28,240
running, stopped, idle, or in setup,

1618
01:03:28,240 --> 01:03:30,560
while the operator records what order is running,

1619
01:03:30,560 --> 01:03:32,160
how many good parts have completed,

1620
01:03:32,160 --> 01:03:33,760
and whether the operation can continue.

1621
01:03:34,640 --> 01:03:37,440
When a stop occurs, the downtime reason matters too.

1622
01:03:37,440 --> 01:03:39,840
Because a planned tool change needs a different response

1623
01:03:39,840 --> 01:03:40,960
from a machine fault.

1624
01:03:40,960 --> 01:03:44,000
Raw machine state alone doesn't tell the full story.

1625
01:03:44,000 --> 01:03:46,800
A machine may show as running while it produces a test part,

1626
01:03:46,800 --> 01:03:47,840
waits for approval,

1627
01:03:47,840 --> 01:03:50,480
or processes a batch that can't release downstream.

1628
01:03:50,480 --> 01:03:53,200
The operator and the execution process at meaning.

1629
01:03:53,200 --> 01:03:55,200
They connect a signal from an asset

1630
01:03:55,200 --> 01:03:57,760
to a real production order, a real operation,

1631
01:03:57,760 --> 01:03:59,280
and the current state of that work.

1632
01:03:59,280 --> 01:04:01,920
That's usually where the manufacturing execution system,

1633
01:04:01,920 --> 01:04:05,360
MES, comes in, the MES manages execution on the shop floor.

1634
01:04:05,360 --> 01:04:08,560
It dispatches work to a resource, records actual start and finish,

1635
01:04:08,560 --> 01:04:10,800
tracks quantities, captures labor activity,

1636
01:04:10,800 --> 01:04:13,760
and enforces steps like inspection or electronic sign-off.

1637
01:04:13,760 --> 01:04:16,720
In plans that need traceability, it also connects material lots,

1638
01:04:16,720 --> 01:04:18,880
serial numbers, process parameters,

1639
01:04:18,880 --> 01:04:20,720
and quality results to the work order.

1640
01:04:20,720 --> 01:04:23,920
Think of the MES as the system that knows what people are doing right now.

1641
01:04:23,920 --> 01:04:25,920
It should know whether an operation has started,

1642
01:04:25,920 --> 01:04:27,920
finished, produced, usable quantity,

1643
01:04:27,920 --> 01:04:29,920
or hit a hold that blocks the next step.

1644
01:04:29,920 --> 01:04:31,760
A scheduler needs that execution state

1645
01:04:31,760 --> 01:04:34,720
because it can't sensibly move work that's already started,

1646
01:04:34,720 --> 01:04:36,480
and it shouldn't plan a later operation

1647
01:04:36,480 --> 01:04:39,440
as available when the prior one still waits for inspection.

1648
01:04:39,440 --> 01:04:41,520
Labor reporting belongs in the same picture.

1649
01:04:41,520 --> 01:04:43,680
An operator may report time against an order,

1650
01:04:43,680 --> 01:04:46,400
a setup, a quality check, or a downtime event.

1651
01:04:46,400 --> 01:04:49,040
That data helps the plant understand actual resource use,

1652
01:04:49,040 --> 01:04:51,600
but it also helps planning see whether the current schedule

1653
01:04:51,600 --> 01:04:53,280
still resembles the work underway.

1654
01:04:53,280 --> 01:04:56,720
The point isn't to turn every human action into a data entry task.

1655
01:04:56,720 --> 01:04:59,360
It's to capture the events that change a planning decision.

1656
01:04:59,360 --> 01:05:00,720
Above that execution layer,

1657
01:05:00,720 --> 01:05:03,920
sits the enterprise resource planning system, ERP.

1658
01:05:03,920 --> 01:05:06,720
ERP holds the commercial and transactional side of the work.

1659
01:05:06,720 --> 01:05:08,960
It knows customer demand, sales orders,

1660
01:05:08,960 --> 01:05:12,000
work orders, bills of material, purchase orders,

1661
01:05:12,000 --> 01:05:14,720
inventory transactions, and requested delivery dates.

1662
01:05:14,720 --> 01:05:16,880
It may also carry cost context that matters

1663
01:05:16,880 --> 01:05:19,840
when a planner considers overtime, subcontracting,

1664
01:05:19,840 --> 01:05:21,840
or a less efficient alternate route.

1665
01:05:21,840 --> 01:05:24,880
ERP answers questions the shop floor can't answer alone.

1666
01:05:24,880 --> 01:05:26,080
Why does this order exist?

1667
01:05:26,080 --> 01:05:27,440
What quantity does the customer need,

1668
01:05:27,440 --> 01:05:29,040
which components should be available?

1669
01:05:29,040 --> 01:05:30,720
When did the business promise delivery

1670
01:05:30,720 --> 01:05:33,280
and which purchase receipt affects the order?

1671
01:05:33,280 --> 01:05:34,720
Those facts belong in the schedule,

1672
01:05:34,720 --> 01:05:37,600
but ERP doesn't need to become the real time control system

1673
01:05:37,600 --> 01:05:39,120
for every machine and operator.

1674
01:05:39,120 --> 01:05:41,520
The scheduler sits between demand and execution.

1675
01:05:41,520 --> 01:05:43,920
It takes work orders and due dates from ERP,

1676
01:05:43,920 --> 01:05:46,400
actual progress and constraints from miss and the floor

1677
01:05:46,400 --> 01:05:47,840
then applies the production model.

1678
01:05:47,840 --> 01:05:50,640
That model includes the route, eligible resources,

1679
01:05:50,640 --> 01:05:51,920
available calendars,

1680
01:05:51,920 --> 01:05:53,760
and rules about what can run where and when.

1681
01:05:53,760 --> 01:05:55,840
It turns business demand into a sequence

1682
01:05:55,840 --> 01:05:58,480
that respects the limits the plant has chosen to model.

1683
01:05:58,480 --> 01:06:00,720
The finite calendar is more than a list of hours.

1684
01:06:00,720 --> 01:06:03,200
It describes when a resource can do work when it can't

1685
01:06:03,200 --> 01:06:06,080
and sometimes what kind of work it can perform during that time.

1686
01:06:06,080 --> 01:06:08,240
The scheduling engine then looks for feasible slots

1687
01:06:08,240 --> 01:06:10,720
while respecting operation order, resource limits,

1688
01:06:10,720 --> 01:06:11,840
and policy rules.

1689
01:06:11,840 --> 01:06:14,720
Depending on the problem, it may use fixed dispatch rules,

1690
01:06:14,720 --> 01:06:17,120
search methods that find workable answers quickly

1691
01:06:17,120 --> 01:06:20,240
or formal optimization logic that compares competing outcomes.

1692
01:06:20,240 --> 01:06:23,600
None of those methods removes the need for clear inputs.

1693
01:06:23,600 --> 01:06:25,760
If the engine receives an order as complete

1694
01:06:25,760 --> 01:06:27,520
when it's actually blocked in quality,

1695
01:06:27,520 --> 01:06:29,520
it will plan against a false state.

1696
01:06:29,520 --> 01:06:32,400
If a machine appears available while maintenance has restricted it,

1697
01:06:32,400 --> 01:06:34,960
the schedule will load time that production can't use.

1698
01:06:34,960 --> 01:06:37,200
The architecture needs a reliable path for events

1699
01:06:37,200 --> 01:06:39,040
and a clear owner for each fact.

1700
01:06:39,040 --> 01:06:41,120
Timing matters as much as data content.

1701
01:06:41,120 --> 01:06:42,880
Some information can move in batches,

1702
01:06:42,880 --> 01:06:45,760
demand changes, new work orders, revised due dates,

1703
01:06:45,760 --> 01:06:47,360
and broad material planning updates

1704
01:06:47,360 --> 01:06:49,680
may only need a scheduled exchange a few times a day

1705
01:06:49,680 --> 01:06:50,960
depending on the plant.

1706
01:06:50,960 --> 01:06:52,720
That's often enough for medium term planning

1707
01:06:52,720 --> 01:06:54,720
because the decision doesn't change every minute.

1708
01:06:54,720 --> 01:06:56,400
Other events need a faster path,

1709
01:06:56,400 --> 01:06:58,400
a breakdown at a constrained resource,

1710
01:06:58,400 --> 01:07:01,200
an operation completion that releases work downstream

1711
01:07:01,200 --> 01:07:04,480
or a quality hold that stops a batch can affect today's schedule.

1712
01:07:04,480 --> 01:07:07,680
Those events might flow through near real-time integration,

1713
01:07:07,680 --> 01:07:09,520
where the scheduler receives them soon enough

1714
01:07:09,520 --> 01:07:12,320
to assess the effect while people can still act.

1715
01:07:12,320 --> 01:07:14,480
Near real-time doesn't mean every sensor value

1716
01:07:14,480 --> 01:07:16,160
needs to enter the scheduling engine.

1717
01:07:16,160 --> 01:07:18,480
Most machine signals don't change the plan.

1718
01:07:18,480 --> 01:07:20,960
A scheduler needs meaningful state changes,

1719
01:07:20,960 --> 01:07:22,480
confirmed production progress,

1720
01:07:22,480 --> 01:07:25,120
and exceptions that alter capacity or readiness.

1721
01:07:25,120 --> 01:07:27,600
Sending every signal into planning creates noise,

1722
01:07:27,600 --> 01:07:29,200
cost, and a very busy system

1723
01:07:29,200 --> 01:07:31,920
that still can't tell a planner whether an order can run.

1724
01:07:31,920 --> 01:07:34,160
Some events stay manual, and that's sensible.

1725
01:07:34,160 --> 01:07:36,720
A supervisor may know a machine can finish the current batch

1726
01:07:36,720 --> 01:07:38,240
despite a fault warning.

1727
01:07:38,240 --> 01:07:40,320
Customer service may receive a priority request

1728
01:07:40,320 --> 01:07:43,040
that needs commercial review before it changes the queue.

1729
01:07:43,040 --> 01:07:45,360
Maintenance may estimate an outage with uncertainty

1730
01:07:45,360 --> 01:07:47,840
and update that estimate as diagnosis continues.

1731
01:07:47,840 --> 01:07:50,160
Those decisions need controlled exception handling.

1732
01:07:50,160 --> 01:07:51,600
A planner should see the event,

1733
01:07:51,600 --> 01:07:53,920
the assumption behind it, and the schedule effect.

1734
01:07:53,920 --> 01:07:56,160
Then the plan can approve a change, reject it,

1735
01:07:56,160 --> 01:07:58,000
or wait for more information.

1736
01:07:58,000 --> 01:08:00,080
Integration that actually works end-to-end

1737
01:08:00,080 --> 01:08:02,640
doesn't mean removing people from the process.

1738
01:08:02,640 --> 01:08:05,280
It means connecting the dots between IT and OT

1739
01:08:05,280 --> 01:08:07,280
without losing who owns the decision.

1740
01:08:07,280 --> 01:08:09,040
That architecture gives us the right place

1741
01:08:09,040 --> 01:08:10,400
to discuss Microsoft.

1742
01:08:10,400 --> 01:08:11,920
Not as the scheduler by default,

1743
01:08:11,920 --> 01:08:14,400
but as part of the data, integration, analysis,

1744
01:08:14,400 --> 01:08:16,400
and decision layer around the production schedule.

1745
01:08:16,400 --> 01:08:18,640
Where Microsoft fits?

1746
01:08:18,640 --> 01:08:19,600
Let me put it this way.

1747
01:08:19,600 --> 01:08:21,680
Microsoft can help with the scheduling decision,

1748
01:08:21,680 --> 01:08:23,440
but it won't replace the production logic

1749
01:08:23,440 --> 01:08:25,040
that actually knows your plant.

1750
01:08:25,040 --> 01:08:27,040
You still need that layer and you need to own it.

1751
01:08:27,040 --> 01:08:29,920
Start at the shop floor, because that's where the real work happens.

1752
01:08:29,920 --> 01:08:31,520
Azure gives you a connection layer,

1753
01:08:31,520 --> 01:08:34,480
where equipment, edge systems, or IoT gateways

1754
01:08:34,480 --> 01:08:37,120
send operational events into the rest of your architecture.

1755
01:08:37,120 --> 01:08:39,280
A plant might send a confirmed stop

1756
01:08:39,280 --> 01:08:40,320
at a constrained machine,

1757
01:08:40,320 --> 01:08:42,160
a machine state change, a completed quantity,

1758
01:08:42,160 --> 01:08:44,400
or an alarm that maintenance needs to check.

1759
01:08:44,400 --> 01:08:46,480
I said useful events, and that word matters.

1760
01:08:46,480 --> 01:08:47,600
You're not just collecting noise.

1761
01:08:47,600 --> 01:08:49,760
You don't need to stream every PLC signal

1762
01:08:49,760 --> 01:08:52,320
into a planning process just because the technology can do it.

1763
01:08:52,320 --> 01:08:53,600
The scheduling team needs events

1764
01:08:53,600 --> 01:08:56,240
that change capacity, work status, or readiness.

1765
01:08:56,240 --> 01:08:59,120
Azure and an IoT layer can pull those events out of OT

1766
01:08:59,120 --> 01:09:00,240
in a controlled way,

1767
01:09:00,240 --> 01:09:02,320
but you have to respect that the machine network

1768
01:09:02,320 --> 01:09:04,720
and the production process have very different needs

1769
01:09:04,720 --> 01:09:06,160
than your enterprise systems.

1770
01:09:06,160 --> 01:09:07,680
That's not a technology problem.

1771
01:09:07,680 --> 01:09:09,120
It's an architecture problem.

1772
01:09:09,120 --> 01:09:10,800
That brings us to the next piece.

1773
01:09:10,800 --> 01:09:12,480
You need a place to bring facts together

1774
01:09:12,480 --> 01:09:14,160
without letting every department own

1775
01:09:14,160 --> 01:09:15,600
its own version of production.

1776
01:09:15,600 --> 01:09:17,120
That's where Microsoft fabric comes in.

1777
01:09:17,120 --> 01:09:18,720
It pulls ERP records,

1778
01:09:18,720 --> 01:09:21,760
MES events, maintenance data, quality results,

1779
01:09:21,760 --> 01:09:25,040
and planning history into a shared data hub everyone can trust.

1780
01:09:25,040 --> 01:09:26,640
But here's the key distinction.

1781
01:09:26,640 --> 01:09:28,160
Fabric doesn't run the machine

1782
01:09:28,160 --> 01:09:29,920
and it doesn't create the schedule.

1783
01:09:29,920 --> 01:09:31,760
Its job is to build a common foundation

1784
01:09:31,760 --> 01:09:33,760
around the decisions people already make.

1785
01:09:33,760 --> 01:09:35,200
Picture a planner trying to figure out

1786
01:09:35,200 --> 01:09:36,720
why an order finished late.

1787
01:09:36,720 --> 01:09:38,880
The answer sits across several systems.

1788
01:09:38,880 --> 01:09:41,600
ERP holds the promised date and customer priority.

1789
01:09:41,600 --> 01:09:44,800
MS holds actual operation times and reported quantities.

1790
01:09:44,800 --> 01:09:46,480
Maintenance recorded an outage,

1791
01:09:46,480 --> 01:09:48,640
quality locked or hold or a failed inspection.

1792
01:09:48,640 --> 01:09:51,680
Fabric pulls those records into one model

1793
01:09:51,680 --> 01:09:53,360
where people can trace the chain of events

1794
01:09:53,360 --> 01:09:55,520
instead of arguing from separate reports.

1795
01:09:55,520 --> 01:09:57,360
That gives you a clear view of the plan

1796
01:09:57,360 --> 01:09:58,800
versus what actually happened.

1797
01:09:58,800 --> 01:10:01,120
Once you have that foundation, power BI works well,

1798
01:10:01,120 --> 01:10:02,480
it can show schedule adherence,

1799
01:10:02,480 --> 01:10:03,760
Q growth at a bottleneck,

1800
01:10:03,760 --> 01:10:05,600
recurring reasons for late completion

1801
01:10:05,600 --> 01:10:08,480
and the effect of changes people made during a disruption.

1802
01:10:08,480 --> 01:10:11,120
It also helps compare scenarios after the fact.

1803
01:10:11,120 --> 01:10:12,960
For example, did a decision to protect

1804
01:10:12,960 --> 01:10:16,080
a high priority order create avoidable delays elsewhere

1805
01:10:16,080 --> 01:10:18,320
or did it prevent a larger customer problem?

1806
01:10:18,320 --> 01:10:19,920
A dashboard doesn't schedule production

1807
01:10:19,920 --> 01:10:22,640
but it exposes patterns that suggest changing the plan.

1808
01:10:22,640 --> 01:10:26,080
If a bottleneck repeatedly loses time during certain transitions,

1809
01:10:26,080 --> 01:10:28,320
the plant should question the setup model.

1810
01:10:28,320 --> 01:10:30,960
When planners override the same proposal repeatedly,

1811
01:10:30,960 --> 01:10:33,600
the rules probably don't match how production actually works.

1812
01:10:33,600 --> 01:10:35,680
If late orders trace back to material release

1813
01:10:35,680 --> 01:10:37,120
rather than machine capacity,

1814
01:10:37,120 --> 01:10:39,600
the response belongs upstream of the scheduler.

1815
01:10:39,600 --> 01:10:41,360
That's visibility with the purpose.

1816
01:10:41,360 --> 01:10:42,720
It leads to a better decision,

1817
01:10:42,720 --> 01:10:45,360
not another report confirming everyone had a tough week.

1818
01:10:45,360 --> 01:10:48,160
Power Platform supports the actions around exceptions.

1819
01:10:48,160 --> 01:10:50,240
Say maintenance posts are likely outage

1820
01:10:50,240 --> 01:10:53,120
and the new schedule puts several customer dates at risk.

1821
01:10:53,120 --> 01:10:55,520
A controlled workflow can send the affected decision

1822
01:10:55,520 --> 01:10:56,880
to the right people.

1823
01:10:56,880 --> 01:10:58,720
The planner reviews the schedule impact,

1824
01:10:58,720 --> 01:11:00,480
production checks, shift feasibility,

1825
01:11:00,480 --> 01:11:02,960
quality approves or rejects an alternate route

1826
01:11:02,960 --> 01:11:05,440
and customer service receives a confirmed position

1827
01:11:05,440 --> 01:11:07,440
before communicating a revised date.

1828
01:11:07,440 --> 01:11:10,240
The workflow needs clear ownership.

1829
01:11:10,240 --> 01:11:11,840
That's the part where people skip.

1830
01:11:11,840 --> 01:11:14,160
A Power app gives a supervisor or planner

1831
01:11:14,160 --> 01:11:16,320
a simple way to record an exception,

1832
01:11:16,320 --> 01:11:18,960
choose a reason code and request a decision

1833
01:11:18,960 --> 01:11:22,160
without working through email chains and unofficial spreadsheets.

1834
01:11:22,160 --> 01:11:25,120
Power automate routes that request keeps an approval record

1835
01:11:25,120 --> 01:11:26,960
and notifies the people who need to act.

1836
01:11:26,960 --> 01:11:28,880
The workflow ensures a priority change

1837
01:11:28,880 --> 01:11:30,480
or routing exception doesn't disappear

1838
01:11:30,480 --> 01:11:31,920
into somebody's inbox.

1839
01:11:31,920 --> 01:11:34,080
It's not about automating every conversation.

1840
01:11:34,080 --> 01:11:37,360
Copilot and Azure AI support a different part of the work.

1841
01:11:37,360 --> 01:11:39,360
They let people ask questions in plain language

1842
01:11:39,360 --> 01:11:40,720
across approved data.

1843
01:11:40,720 --> 01:11:43,200
A planner might ask why a specific order moved

1844
01:11:43,200 --> 01:11:45,120
which constrained blocked an alternate resource

1845
01:11:45,120 --> 01:11:47,360
or which orders face risk if a machine stays down

1846
01:11:47,360 --> 01:11:48,480
for the rest of the shift.

1847
01:11:48,480 --> 01:11:50,240
The AI layer retrieves context,

1848
01:11:50,240 --> 01:11:52,560
explains the schedule logic in readable language

1849
01:11:52,560 --> 01:11:55,840
and drafts a summary for a production meeting or customer update.

1850
01:11:55,840 --> 01:11:58,240
That saves time, but here's the boundary.

1851
01:11:58,240 --> 01:12:01,600
Generative AI should not replace deterministic scheduling logic.

1852
01:12:01,600 --> 01:12:04,640
It can explain a recommendation and summarize options

1853
01:12:04,640 --> 01:12:06,800
and it can retrieve current facts from ERP,

1854
01:12:06,800 --> 01:12:09,120
MES, maintenance and quality data.

1855
01:12:09,120 --> 01:12:11,200
What it should not do is invent a production sequence

1856
01:12:11,200 --> 01:12:13,920
from text alone and present it as physically feasible.

1857
01:12:13,920 --> 01:12:15,440
For the actual scheduling decision,

1858
01:12:15,440 --> 01:12:17,440
the system still needs explicit constraints,

1859
01:12:17,440 --> 01:12:20,000
calendars, routes, capacities and policy rules

1860
01:12:20,000 --> 01:12:22,400
and optimization engine tests those conditions.

1861
01:12:22,400 --> 01:12:24,080
Copilot sits beside that engine

1862
01:12:24,080 --> 01:12:26,000
and helps people understand the result.

1863
01:12:26,000 --> 01:12:27,920
Ask the same question every time.

1864
01:12:27,920 --> 01:12:30,080
What does the AI actually know?

1865
01:12:30,080 --> 01:12:31,840
If it cannot see that a fixture is occupied

1866
01:12:31,840 --> 01:12:33,040
and operator lacks approval,

1867
01:12:33,040 --> 01:12:34,800
a material that remains on hold

1868
01:12:34,800 --> 01:12:36,880
or a machine has a plant maintenance window,

1869
01:12:36,880 --> 01:12:38,640
then it cannot give a trustworthy answer

1870
01:12:38,640 --> 01:12:39,680
about what should run next.

1871
01:12:40,480 --> 01:12:43,520
Good language does not repair missing production context.

1872
01:12:43,520 --> 01:12:45,840
It only makes the gaps sound more convincing.

1873
01:12:45,840 --> 01:12:47,680
So here's where Microsoft fits.

1874
01:12:47,680 --> 01:12:50,160
It connects the dots between IT and OT,

1875
01:12:50,160 --> 01:12:52,400
governs data, supports analysis

1876
01:12:52,400 --> 01:12:54,400
and helps people work through exceptions.

1877
01:12:54,400 --> 01:12:55,840
It doesn't know your valid routes,

1878
01:12:55,840 --> 01:12:57,200
your real change over rules

1879
01:12:57,200 --> 01:13:00,000
or the production policy behind the next order on the machine

1880
01:13:00,000 --> 01:13:01,360
that knowledge still belongs to you.

1881
01:13:01,360 --> 01:13:04,080
What Microsoft does not model for you,

1882
01:13:04,080 --> 01:13:05,840
no generic platform knows the rules

1883
01:13:05,840 --> 01:13:08,320
that make your factory run safely and predictably.

1884
01:13:08,320 --> 01:13:09,200
Consider this.

1885
01:13:09,200 --> 01:13:11,280
A part can technically run on two machines,

1886
01:13:11,280 --> 01:13:13,760
but only one holds the approved fixture this week,

1887
01:13:13,760 --> 01:13:16,720
only one evening shift operator holds the needed approval

1888
01:13:16,720 --> 01:13:18,640
and the second route needs a quality review

1889
01:13:18,640 --> 01:13:20,000
before anyone can use it.

1890
01:13:20,000 --> 01:13:21,840
Those are not standard software settings,

1891
01:13:21,840 --> 01:13:23,040
that's production knowledge

1892
01:13:23,040 --> 01:13:24,560
and it lives in your plant.

1893
01:13:24,560 --> 01:13:26,640
The same is true for setup relationships.

1894
01:13:26,640 --> 01:13:28,640
A system doesn't know which product transition needs

1895
01:13:28,640 --> 01:13:29,760
a quick tool change,

1896
01:13:29,760 --> 01:13:31,200
which needs a long clean-out

1897
01:13:31,200 --> 01:13:32,800
or which sequence production avoids

1898
01:13:32,800 --> 01:13:35,200
because it caused quality issues in the past.

1899
01:13:35,200 --> 01:13:36,880
Somebody needs to model those conditions,

1900
01:13:36,880 --> 01:13:37,840
keep them current

1901
01:13:37,840 --> 01:13:40,640
and agree who can change them when the process changes.

1902
01:13:40,640 --> 01:13:42,800
Production policy also belongs to the plant,

1903
01:13:42,800 --> 01:13:44,480
things like whether the scheduler should protect

1904
01:13:44,480 --> 01:13:46,080
the earliest customer date,

1905
01:13:46,080 --> 01:13:48,080
keep a campaign together for throughput,

1906
01:13:48,080 --> 01:13:50,160
reserve capacity for service parts,

1907
01:13:50,160 --> 01:13:51,120
split an order,

1908
01:13:51,120 --> 01:13:52,880
or decide when an urgent request

1909
01:13:52,880 --> 01:13:54,960
justifies disrupting a stable sequence.

1910
01:13:54,960 --> 01:13:57,680
Software can apply those choices consistently,

1911
01:13:57,680 --> 01:13:58,960
but it cannot choose them

1912
01:13:58,960 --> 01:14:00,720
without being told what good looks like,

1913
01:14:00,720 --> 01:14:03,120
that scheduling logic can live in different places.

1914
01:14:03,120 --> 01:14:05,760
Some manufacturers use functions built into the ERP,

1915
01:14:05,760 --> 01:14:08,960
others use the MES to dispatch work close to the shop floor,

1916
01:14:08,960 --> 01:14:10,720
some use a separate APS system,

1917
01:14:10,720 --> 01:14:13,200
and others use specialized optimization software

1918
01:14:13,200 --> 01:14:14,800
for a narrow but difficult problem

1919
01:14:14,800 --> 01:14:16,080
like a complex bottleneck

1920
01:14:16,080 --> 01:14:18,000
or a sequence with many setup limits.

1921
01:14:18,000 --> 01:14:19,840
The location matters less than the fit.

1922
01:14:19,840 --> 01:14:21,440
An APS system is built for planning

1923
01:14:21,440 --> 01:14:23,120
and scheduling under constraints.

1924
01:14:23,120 --> 01:14:24,480
It takes production orders,

1925
01:14:24,480 --> 01:14:25,920
breaks them into operations,

1926
01:14:25,920 --> 01:14:27,280
checks resource calendars,

1927
01:14:27,280 --> 01:14:28,800
accounts for setup rules,

1928
01:14:28,800 --> 01:14:30,160
and places work in a sequence

1929
01:14:30,160 --> 01:14:31,760
that follows your model limits.

1930
01:14:31,760 --> 01:14:34,640
It usually sits between ERP demand planning

1931
01:14:34,640 --> 01:14:35,920
and mass execution,

1932
01:14:35,920 --> 01:14:38,080
though the exact split depends on the plant

1933
01:14:38,080 --> 01:14:39,840
and the systems already in place.

1934
01:14:39,840 --> 01:14:41,760
Think of APS as the scheduling brain.

1935
01:14:41,760 --> 01:14:43,200
It doesn't own every fact.

1936
01:14:43,200 --> 01:14:45,120
ERP owns orders, demand, purchasing,

1937
01:14:45,120 --> 01:14:46,400
and core master data.

1938
01:14:46,400 --> 01:14:49,520
MES owns execution status and traceability,

1939
01:14:49,520 --> 01:14:50,960
maintenance owns planned downtime

1940
01:14:50,960 --> 01:14:52,320
and equipment restrictions.

1941
01:14:52,320 --> 01:14:54,320
Quality owns root approvals and holds.

1942
01:14:54,320 --> 01:14:56,320
The scheduling engine uses agreed inputs

1943
01:14:56,320 --> 01:14:58,080
from each area and produces a plan

1944
01:14:58,080 --> 01:14:59,360
for review and execution,

1945
01:14:59,360 --> 01:15:02,240
but that only works when integration has clear contracts.

1946
01:15:02,240 --> 01:15:04,560
By contract, I mean more than a technical interface.

1947
01:15:04,560 --> 01:15:06,000
It defines what an event means,

1948
01:15:06,000 --> 01:15:07,360
who sends it when it arrives,

1949
01:15:07,360 --> 01:15:08,640
who owns its accuracy,

1950
01:15:08,640 --> 01:15:10,400
and what the scheduler should do with it.

1951
01:15:10,400 --> 01:15:12,080
If MES reports an operation complete,

1952
01:15:12,080 --> 01:15:14,240
does that mean the whole quantity passed inspection,

1953
01:15:14,240 --> 01:15:16,240
or only that the machine finished its run?

1954
01:15:16,240 --> 01:15:18,640
If maintenance flags a resource as unavailable,

1955
01:15:18,640 --> 01:15:20,400
does the event include a return estimate

1956
01:15:20,400 --> 01:15:21,680
or only a stop signal?

1957
01:15:21,680 --> 01:15:23,680
Small differences change the schedule.

1958
01:15:23,680 --> 01:15:25,680
Master data needs the same discipline.

1959
01:15:25,680 --> 01:15:28,160
Roots, work centers, calendars, approved alternates,

1960
01:15:28,160 --> 01:15:29,760
setup families, and resource rules

1961
01:15:29,760 --> 01:15:31,680
need an owner and a controlled way to change.

1962
01:15:31,680 --> 01:15:34,000
An integration can move bad data very quickly,

1963
01:15:34,000 --> 01:15:35,040
which is efficient.

1964
01:15:35,040 --> 01:15:37,440
The same way a fast conveyor can move wrong parts

1965
01:15:37,440 --> 01:15:38,640
to the next station.

1966
01:15:38,640 --> 01:15:41,440
Test cases matter because production rules contain exceptions.

1967
01:15:41,440 --> 01:15:43,120
You need to test a routine order,

1968
01:15:43,120 --> 01:15:44,560
a late material receipt,

1969
01:15:44,560 --> 01:15:45,600
a quality hold,

1970
01:15:45,600 --> 01:15:46,960
a planned maintenance slot,

1971
01:15:46,960 --> 01:15:48,000
a partial completion,

1972
01:15:48,000 --> 01:15:50,720
and an urgent order that conflicts with the campaign.

1973
01:15:50,720 --> 01:15:53,200
The question isn't whether data reaches the scheduler.

1974
01:15:53,200 --> 01:15:55,200
It's whether the resulting schedule behaves

1975
01:15:55,200 --> 01:15:56,800
in a way production can accept.

1976
01:15:56,800 --> 01:15:58,080
Here's the reality.

1977
01:15:58,080 --> 01:15:59,920
A lake house can store every constraint

1978
01:15:59,920 --> 01:16:02,000
in the plant and still schedule nothing.

1979
01:16:02,000 --> 01:16:04,080
It can hold machine events, order history,

1980
01:16:04,080 --> 01:16:06,560
setup times, labor records, and quality data.

1981
01:16:06,560 --> 01:16:09,360
That gives you a strong data foundation for analysis,

1982
01:16:09,360 --> 01:16:12,080
but somebody still needs to define the scheduling problem.

1983
01:16:12,080 --> 01:16:14,880
Model the constraints, select the decision logic,

1984
01:16:14,880 --> 01:16:17,440
and connect the output to the people who own the shift.

1985
01:16:17,440 --> 01:16:20,240
So when you compare scheduling tools, skip the product name.

1986
01:16:20,240 --> 01:16:22,480
Ask where the finite scheduling logic lives today,

1987
01:16:22,480 --> 01:16:24,080
what decisions it needs to make,

1988
01:16:24,080 --> 01:16:25,520
which facts it can trust,

1989
01:16:25,520 --> 01:16:27,840
and where people need to review an exception.

1990
01:16:27,840 --> 01:16:30,720
Once that's clear, you can look at the methods the engine might use

1991
01:16:30,720 --> 01:16:32,880
from direct rules through fast search methods

1992
01:16:32,880 --> 01:16:34,880
to formal mathematical optimization.

1993
01:16:34,880 --> 01:16:36,880
That's where the real architecture work begins.

1994
01:16:36,880 --> 01:16:39,040
Rules, heuristics, and optimization.

1995
01:16:39,040 --> 01:16:41,680
So once you find where the scheduling logic lives,

1996
01:16:41,680 --> 01:16:45,680
the real question becomes how it picks one feasible sequence over another.

1997
01:16:45,680 --> 01:16:49,200
I keep seeing people lump all these approaches together under optimization,

1998
01:16:49,200 --> 01:16:50,800
but they're not the same thing at all.

1999
01:16:50,800 --> 01:16:52,320
The simplest approach uses rules.

2000
01:16:52,320 --> 01:16:55,120
A rule might say run the order with the earliest due date first

2001
01:16:55,120 --> 01:16:57,120
to protect orders for a named customer

2002
01:16:57,120 --> 01:17:00,000
or run the shortest job first to clear the queue.

2003
01:17:00,000 --> 01:17:01,760
A plant can also adopt a campaign rule

2004
01:17:01,760 --> 01:17:04,720
to keep similar products together and avoid costly changeovers.

2005
01:17:04,720 --> 01:17:06,080
Rules are easy to explain,

2006
01:17:06,080 --> 01:17:08,240
and that matters because a planner, supervisor,

2007
01:17:08,240 --> 01:17:11,280
or operator can see why the system chose the next order.

2008
01:17:11,280 --> 01:17:14,320
A schedule nobody can explain won't survive a rough shift.

2009
01:17:14,320 --> 01:17:16,720
A rule also gives you a consistent starting point,

2010
01:17:16,720 --> 01:17:19,760
instead of relying on whoever happened to build that morning sequence.

2011
01:17:19,760 --> 01:17:20,800
Here's the problem, though.

2012
01:17:20,800 --> 01:17:23,840
A single rule becomes too simple when constraints collide.

2013
01:17:23,840 --> 01:17:25,440
Take earliest due date.

2014
01:17:25,440 --> 01:17:27,040
It protects delivery performance

2015
01:17:27,040 --> 01:17:28,800
until it forces repeated changeovers

2016
01:17:28,800 --> 01:17:30,800
and burns hours at the bottleneck.

2017
01:17:30,800 --> 01:17:33,040
Shortest processing time reduces the queue

2018
01:17:33,040 --> 01:17:35,200
while a large, urgent order keeps slipping.

2019
01:17:35,200 --> 01:17:37,600
Campaign sequencing improves flow on one resource

2020
01:17:37,600 --> 01:17:39,840
but delays in order assembly needs today.

2021
01:17:39,840 --> 01:17:41,680
The rules did exactly what you told it to do,

2022
01:17:41,680 --> 01:17:43,520
but the plant wanted more than one outcome.

2023
01:17:43,520 --> 01:17:44,800
That brings us to heuristics.

2024
01:17:44,800 --> 01:17:46,640
A heuristic is a fast search method

2025
01:17:46,640 --> 01:17:48,400
that tests possible schedules,

2026
01:17:48,400 --> 01:17:50,000
follows practical shortcuts,

2027
01:17:50,000 --> 01:17:52,960
and looks for an answer that works well enough within the time you have.

2028
01:17:52,960 --> 01:17:55,120
It does not promise the mathematically best schedule

2029
01:17:55,120 --> 01:17:56,400
out of every combination

2030
01:17:56,400 --> 01:17:58,720
and for most real factories that is a sensible trade.

2031
01:17:58,720 --> 01:18:00,080
The number of possible sequences

2032
01:18:00,080 --> 01:18:02,160
explodes once you include multiple machines.

2033
01:18:02,160 --> 01:18:03,920
Alternate routes, setup relationships,

2034
01:18:03,920 --> 01:18:05,840
release dates, and resource limits.

2035
01:18:05,840 --> 01:18:08,160
When you need a revised schedule during the shift,

2036
01:18:08,160 --> 01:18:10,800
waiting hours for a perfect answer does not help.

2037
01:18:10,800 --> 01:18:14,080
A heuristic can give you a workable plan in seconds or minutes

2038
01:18:14,080 --> 01:18:15,600
that let you review the trade-offs.

2039
01:18:15,600 --> 01:18:19,120
Think of heuristics as structured judgment at machine speed.

2040
01:18:19,120 --> 01:18:21,440
The heuristic can start with due date priority

2041
01:18:21,440 --> 01:18:24,560
then improve the sequence by reducing unnecessary changeovers,

2042
01:18:24,560 --> 01:18:27,600
filling usable gaps, or moving work to an alternate resource

2043
01:18:27,600 --> 01:18:28,880
where the rules allow it.

2044
01:18:28,880 --> 01:18:31,680
Each method differs, but the aim stays the same.

2045
01:18:31,680 --> 01:18:35,120
Find a feasible plan quickly enough to support an actual decision.

2046
01:18:35,120 --> 01:18:38,240
In practice, that speed is often the difference between a schedule

2047
01:18:38,240 --> 01:18:41,040
that gets used and one that sits in a spreadsheet

2048
01:18:41,040 --> 01:18:42,720
while the floor runs on intuition.

2049
01:18:42,720 --> 01:18:45,600
Now formal optimization sits at the other end of the spectrum.

2050
01:18:45,600 --> 01:18:47,520
Optimization defines an objective,

2051
01:18:47,520 --> 01:18:48,880
or several objectives,

2052
01:18:48,880 --> 01:18:51,760
and applies constraints as hard rules or agreed limits.

2053
01:18:51,760 --> 01:18:54,480
The engine searches for the schedule that best meets that objective

2054
01:18:54,480 --> 01:18:56,640
within the production conditions you've modeled.

2055
01:18:56,640 --> 01:18:57,840
And that wording matters.

2056
01:18:57,840 --> 01:19:00,880
Optimization does not discover what your business should care about.

2057
01:19:00,880 --> 01:19:02,000
Someone has to define it.

2058
01:19:02,000 --> 01:19:04,080
I've seen teams spend months building a model

2059
01:19:04,080 --> 01:19:07,600
only to realize they never agreed on what good actually means.

2060
01:19:07,600 --> 01:19:09,600
Let's cut through the hype for a second.

2061
01:19:09,600 --> 01:19:11,840
You might want to reduce late orders,

2062
01:19:11,840 --> 01:19:13,440
reduce total lateness,

2063
01:19:13,440 --> 01:19:15,760
rather than treating every late order the same,

2064
01:19:15,760 --> 01:19:16,960
limit over time,

2065
01:19:16,960 --> 01:19:19,280
preserve throughput at a constrained resource,

2066
01:19:19,280 --> 01:19:20,880
reduce work in progress,

2067
01:19:20,880 --> 01:19:23,600
or avoid changeovers that create waste and risk.

2068
01:19:23,600 --> 01:19:25,040
Those goals can conflict,

2069
01:19:25,040 --> 01:19:26,320
push hard to meet every due date,

2070
01:19:26,320 --> 01:19:27,920
and you'll create more setups and over time

2071
01:19:27,920 --> 01:19:30,480
while minimizing setups makes urgent orders wait longer.

2072
01:19:30,480 --> 01:19:32,400
Release more work to keep every machine busy

2073
01:19:32,400 --> 01:19:33,760
and work in progress grows,

2074
01:19:33,760 --> 01:19:35,680
lead times become unpredictable.

2075
01:19:35,680 --> 01:19:37,200
Focus only on throughput,

2076
01:19:37,200 --> 01:19:39,440
and you risk producing the wrong orders early

2077
01:19:39,440 --> 01:19:41,840
while customer critical work waits behind them.

2078
01:19:41,840 --> 01:19:43,520
There is no neutral schedule.

2079
01:19:43,520 --> 01:19:45,600
The scheduling method expresses a policy,

2080
01:19:45,600 --> 01:19:46,800
whether you write it down,

2081
01:19:46,800 --> 01:19:48,640
or leave it hidden inside a spreadsheet

2082
01:19:48,640 --> 01:19:49,840
in someone's experience.

2083
01:19:49,840 --> 01:19:52,640
Formal optimization helps when trade-offs get too complex

2084
01:19:52,640 --> 01:19:54,000
for a simple dispatch rule,

2085
01:19:54,000 --> 01:19:55,920
because it makes those trade-offs explicit

2086
01:19:55,920 --> 01:19:58,000
and test them in a disciplined way,

2087
01:19:58,000 --> 01:20:01,040
but it only works if the model actually reflects the floor reality.

2088
01:20:01,040 --> 01:20:03,120
That's why I'm careful with the phrase "best schedule."

2089
01:20:03,120 --> 01:20:06,640
The best answer only exists relative to your objective,

2090
01:20:06,640 --> 01:20:07,680
constraints,

2091
01:20:07,680 --> 01:20:10,400
and the information available when the engine runs.

2092
01:20:10,400 --> 01:20:13,120
If setup times a wrong material status is stale,

2093
01:20:13,120 --> 01:20:15,200
or commercial priority hasn't been agreed,

2094
01:20:15,200 --> 01:20:18,400
a mathematically elegant result can still produce a poor decision.

2095
01:20:18,400 --> 01:20:20,720
False precision creates false confidence.

2096
01:20:20,720 --> 01:20:22,720
A schedule with exact timestamps

2097
01:20:22,720 --> 01:20:24,080
can look authoritative,

2098
01:20:24,080 --> 01:20:26,640
even when its inputs contain rough assumptions.

2099
01:20:26,640 --> 01:20:29,120
Planners need to see why the engine chose a sequence

2100
01:20:29,120 --> 01:20:30,960
which assumptions drive the outcome,

2101
01:20:30,960 --> 01:20:34,160
and what changes if a priority or capacity condition moves.

2102
01:20:34,160 --> 01:20:35,920
So here's the takeaway.

2103
01:20:35,920 --> 01:20:37,840
Use rules when a clear policy works.

2104
01:20:37,840 --> 01:20:40,400
Use heuristics when speed and practicality matter,

2105
01:20:40,400 --> 01:20:44,000
and use optimization when competing outcomes need a systematic test.

2106
01:20:44,000 --> 01:20:45,600
Either way, keep the decision visible.

2107
01:20:45,600 --> 01:20:47,680
And that distinction matters when generative AI

2108
01:20:47,680 --> 01:20:48,800
enters the picture.

2109
01:20:48,800 --> 01:20:50,960
A language model can help people understand a plan

2110
01:20:50,960 --> 01:20:52,480
and work through exceptions.

2111
01:20:52,480 --> 01:20:54,560
But it should not quietly take over the part

2112
01:20:54,560 --> 01:20:56,720
that needs explicit production logic.

2113
01:20:56,720 --> 01:20:59,040
Industrial AI and scheduling decisions.

2114
01:20:59,040 --> 01:21:00,880
Industrial AI can support scheduling,

2115
01:21:00,880 --> 01:21:02,640
but it needs a clear job description.

2116
01:21:02,640 --> 01:21:05,920
Generative AI is most useful when a planner needs to ask questions

2117
01:21:05,920 --> 01:21:07,760
across approved production data,

2118
01:21:07,760 --> 01:21:09,120
especially during a disruption,

2119
01:21:09,120 --> 01:21:10,800
when facts are scattered across systems

2120
01:21:10,800 --> 01:21:13,520
and nobody has time to piece together a manual briefing.

2121
01:21:13,520 --> 01:21:15,600
A planner can ask why an order moved,

2122
01:21:15,600 --> 01:21:17,840
which constraint blocked its next operation,

2123
01:21:17,840 --> 01:21:19,440
or which customer dates face risk

2124
01:21:19,440 --> 01:21:22,160
if a resource remains unavailable until the next shift.

2125
01:21:22,160 --> 01:21:24,240
The AI can retrieve the relevant information,

2126
01:21:24,240 --> 01:21:25,760
explain it in plain language,

2127
01:21:25,760 --> 01:21:27,760
and point back to the underlying records.

2128
01:21:27,760 --> 01:21:29,840
That saves time, but it does not create capacity.

2129
01:21:29,840 --> 01:21:32,240
It can also take a messy pile of event loads

2130
01:21:32,240 --> 01:21:34,400
and turn them into a coherent disruption summary.

2131
01:21:34,400 --> 01:21:36,480
Say maintenance reports are fault,

2132
01:21:36,480 --> 01:21:38,000
quality holds a batch,

2133
01:21:38,000 --> 01:21:41,200
and material control updates the status of an incoming component,

2134
01:21:41,200 --> 01:21:43,360
and AI assistant can collect those updates

2135
01:21:43,360 --> 01:21:45,360
and draft a brief situation report

2136
01:21:45,360 --> 01:21:46,880
for the planner and supervisor.

2137
01:21:46,880 --> 01:21:49,360
It can draft a customer service message too,

2138
01:21:49,360 --> 01:21:50,880
not the final decision,

2139
01:21:50,880 --> 01:21:52,640
and it shouldn't invent promises,

2140
01:21:52,640 --> 01:21:55,600
but it can prepare a clear note with the affected order,

2141
01:21:55,600 --> 01:21:57,200
current production position,

2142
01:21:57,200 --> 01:21:59,360
assumptions behind the recovery plan,

2143
01:21:59,360 --> 01:22:01,840
and the date risk that still needs approval.

2144
01:22:01,840 --> 01:22:03,920
That is a much better use of language AI

2145
01:22:03,920 --> 01:22:05,520
than asking it to guess the next sequence

2146
01:22:05,520 --> 01:22:06,880
from a few lines of text.

2147
01:22:06,880 --> 01:22:08,720
Predictive models play a different role.

2148
01:22:08,720 --> 01:22:10,960
They look at patterns in past and current data

2149
01:22:10,960 --> 01:22:12,640
to estimate a future condition,

2150
01:22:12,640 --> 01:22:15,920
maybe a higher risk of machine failure for maintenance signals,

2151
01:22:15,920 --> 01:22:17,120
drifting cycle times,

2152
01:22:17,120 --> 01:22:18,960
the chance of a late material receipt,

2153
01:22:18,960 --> 01:22:20,880
or a quality risk that can hold an order

2154
01:22:20,880 --> 01:22:22,240
before the next operation.

2155
01:22:22,240 --> 01:22:25,520
Those predictions can change a scheduling decision.

2156
01:22:25,520 --> 01:22:27,600
If a resource carries a high failure risk,

2157
01:22:27,600 --> 01:22:30,480
you may avoid loading a customer critical order onto it.

2158
01:22:30,480 --> 01:22:33,120
If a process consistently takes longer than expected,

2159
01:22:33,120 --> 01:22:35,680
the near term schedule needs more realistic duration.

2160
01:22:35,680 --> 01:22:37,200
If material risk increases,

2161
01:22:37,200 --> 01:22:39,600
the scheduler can avoid reserving a scarce slot

2162
01:22:39,600 --> 01:22:41,520
for an order that probably won't be ready,

2163
01:22:41,520 --> 01:22:43,760
but predictions still carry uncertainty,

2164
01:22:43,760 --> 01:22:46,080
and the people using them need to understand that.

2165
01:22:46,080 --> 01:22:47,840
A maintenance risk score does not mean

2166
01:22:47,840 --> 01:22:49,520
the machine will fail at two o'clock,

2167
01:22:49,520 --> 01:22:51,520
and a late material estimate does not mean

2168
01:22:51,520 --> 01:22:53,200
the supplier missed the delivery.

2169
01:22:53,200 --> 01:22:55,200
It means the plan should consider the risk,

2170
01:22:55,200 --> 01:22:57,520
instead of treating the original assumption as certain.

2171
01:22:57,520 --> 01:23:00,560
I've seen plants treat a prediction as gospel,

2172
01:23:00,560 --> 01:23:03,120
and that's how you end up rescheduling around ghosts.

2173
01:23:03,120 --> 01:23:05,600
Scheduling and optimization handle a different task.

2174
01:23:05,600 --> 01:23:07,520
They take the constraints the plant has defined

2175
01:23:07,520 --> 01:23:09,280
and calculate a feasible sequence,

2176
01:23:09,280 --> 01:23:11,120
including actual resource limits,

2177
01:23:11,120 --> 01:23:13,600
operation order, approved alternatives,

2178
01:23:13,600 --> 01:23:15,840
available time, material status,

2179
01:23:15,840 --> 01:23:18,080
and business rules that shape priority.

2180
01:23:18,080 --> 01:23:20,960
The scheduler answers a structured question,

2181
01:23:20,960 --> 01:23:22,240
given what we know right now,

2182
01:23:22,240 --> 01:23:24,080
where can this work run, when can it run,

2183
01:23:24,080 --> 01:23:26,320
and what must move if we choose that option?

2184
01:23:26,320 --> 01:23:29,040
AI can support that process from several angles,

2185
01:23:29,040 --> 01:23:30,640
helping explain a result,

2186
01:23:30,640 --> 01:23:32,800
surfacing patterns from past overrides,

2187
01:23:32,800 --> 01:23:34,720
warning that a condition may change,

2188
01:23:34,720 --> 01:23:36,560
or finding the facts behind an exception.

2189
01:23:36,560 --> 01:23:39,360
But the scheduling engine needs explicit rules

2190
01:23:39,360 --> 01:23:41,920
and constraints because feasibility is not something

2191
01:23:41,920 --> 01:23:43,600
a language model should improvise.

2192
01:23:43,600 --> 01:23:45,200
The roles need to stay clear.

2193
01:23:45,200 --> 01:23:47,280
The AI assistant supports the conversation,

2194
01:23:47,280 --> 01:23:49,440
the predictive model estimates risk,

2195
01:23:49,440 --> 01:23:52,000
the scheduling or optimization engine tests,

2196
01:23:52,000 --> 01:23:53,280
feasible options,

2197
01:23:53,280 --> 01:23:56,640
and the planner remains accountable for the production choice,

2198
01:23:56,640 --> 01:23:58,720
because that choice carries customer,

2199
01:23:58,720 --> 01:24:01,040
safety, quality, labor,

2200
01:24:01,040 --> 01:24:02,800
and commercial consequences

2201
01:24:02,800 --> 01:24:04,720
that no model fully owns.

2202
01:24:04,720 --> 01:24:06,160
Ask yourself one question.

2203
01:24:06,160 --> 01:24:08,720
What data and constraints does the AI actually know?

2204
01:24:08,720 --> 01:24:11,360
Can it see current work completion not just planned?

2205
01:24:11,360 --> 01:24:14,000
Does it know which alternate route has approval today?

2206
01:24:14,000 --> 01:24:17,760
Can it distinguish material on hand from material released for the order?

2207
01:24:17,760 --> 01:24:19,200
Does it know the production policy

2208
01:24:19,200 --> 01:24:22,240
when an urgent service order collides with a setup campaign?

2209
01:24:22,240 --> 01:24:24,640
If the answer is no, the AI should say so.

2210
01:24:24,640 --> 01:24:26,160
That is not a failure of AI.

2211
01:24:26,160 --> 01:24:29,360
It is a boundary around what the system can responsibly recommend.

2212
01:24:29,360 --> 01:24:31,920
A confident answer without the relevant production context

2213
01:24:31,920 --> 01:24:34,160
is just a faster way to spread a bad assumption.

2214
01:24:34,160 --> 01:24:37,120
So don't start with an AI program across the whole plant.

2215
01:24:37,120 --> 01:24:40,080
Pick one planning decision where people already lose time,

2216
01:24:40,080 --> 01:24:42,320
where the constraints are known well enough to model,

2217
01:24:42,320 --> 01:24:44,480
and where a better answer can still change

2218
01:24:44,480 --> 01:24:46,000
what production does next.

2219
01:24:46,000 --> 01:24:48,720
Starts more, validate the logic, and build from there.

2220
01:24:48,720 --> 01:24:50,400
Start with one planning problem.

2221
01:24:50,400 --> 01:24:52,960
When you start digging into finite capacity scheduling,

2222
01:24:52,960 --> 01:24:55,040
don't try to model the whole factory at once.

2223
01:24:55,040 --> 01:24:57,360
Pick one decision, the one that hurts most right now,

2224
01:24:57,360 --> 01:24:58,960
where a better answer could actually change

2225
01:24:58,960 --> 01:25:00,480
what happens this shift or tomorrow.

2226
01:25:00,480 --> 01:25:02,800
Maybe it's sequencing work at a single bottleneck

2227
01:25:02,800 --> 01:25:04,880
or figuring out which late orders to run first

2228
01:25:04,880 --> 01:25:07,600
when multiple customers need the same constrained resource.

2229
01:25:07,600 --> 01:25:09,280
Or maybe the problem is labor capacity

2230
01:25:09,280 --> 01:25:12,000
where your schedule keeps assuming people are available when they're not.

2231
01:25:12,000 --> 01:25:14,560
Keep that first scope tight, even if it feels small.

2232
01:25:14,560 --> 01:25:16,800
A plant-wide model sounds like the right approach,

2233
01:25:16,800 --> 01:25:18,320
but here's what actually happens.

2234
01:25:18,320 --> 01:25:21,200
It drags in every route, every calendar, every exception,

2235
01:25:21,200 --> 01:25:24,000
and every old argument about how work really flows.

2236
01:25:24,000 --> 01:25:25,840
The project turns into a master data debate

2237
01:25:25,840 --> 01:25:28,000
before anyone has seen a schedule they can actually use.

2238
01:25:28,000 --> 01:25:30,880
So narrow it down to a product family with repeatable work,

2239
01:25:30,880 --> 01:25:32,560
a limited group of resources,

2240
01:25:32,560 --> 01:25:35,600
and a decision that planners and supervisors already make every day,

2241
01:25:35,600 --> 01:25:38,240
ideally one with a visible cost when they get it wrong.

2242
01:25:38,240 --> 01:25:41,280
Say the pain lives at one machining cell.

2243
01:25:41,280 --> 01:25:43,120
That cell feeds several assembly orders,

2244
01:25:43,120 --> 01:25:44,480
carries a growing queue,

2245
01:25:44,480 --> 01:25:47,440
and the planner spends part of each day changing the sequence

2246
01:25:47,440 --> 01:25:49,840
because production calls in with another exception.

2247
01:25:49,840 --> 01:25:51,360
You don't need to model every press,

2248
01:25:51,360 --> 01:25:53,920
every warehouse move, or the final packing step on day one.

2249
01:25:53,920 --> 01:25:56,800
You just need to test whether a schedule can give that planner

2250
01:25:56,800 --> 01:25:59,200
a better answer about what should run next.

2251
01:25:59,200 --> 01:26:00,880
Be precise about the decision.

2252
01:26:00,880 --> 01:26:03,120
I want to improve planning is too vague.

2253
01:26:03,120 --> 01:26:05,360
A workable first question might sound like this,

2254
01:26:05,360 --> 01:26:07,040
given the orders ready at this bottleneck,

2255
01:26:07,040 --> 01:26:09,520
which sequence protects the most urgent commitments

2256
01:26:09,520 --> 01:26:12,160
while keeping avoidable changeovers under control.

2257
01:26:12,160 --> 01:26:13,840
That gives people something to test.

2258
01:26:13,840 --> 01:26:15,200
You also need to name the users,

2259
01:26:15,200 --> 01:26:16,640
usually that includes the planner,

2260
01:26:16,640 --> 01:26:17,760
who owns the sequence,

2261
01:26:17,760 --> 01:26:19,840
the supervisor who needs to execute it,

2262
01:26:19,840 --> 01:26:21,600
and probably maintenance, quality,

2263
01:26:21,600 --> 01:26:24,880
or material control when their constraints affect the choice.

2264
01:26:24,880 --> 01:26:27,040
If the schedule only works for the project team,

2265
01:26:27,040 --> 01:26:29,200
it won't survive contact with the morning shift.

2266
01:26:29,200 --> 01:26:31,680
Set the planning horizon before you build the model.

2267
01:26:31,680 --> 01:26:32,880
For a busy bottleneck,

2268
01:26:32,880 --> 01:26:34,960
the useful horizon might be the current shift

2269
01:26:34,960 --> 01:26:36,320
plus the next few days.

2270
01:26:36,320 --> 01:26:38,960
For a slower process with long runs and longer setup work,

2271
01:26:38,960 --> 01:26:40,320
you'll need to look further out.

2272
01:26:40,320 --> 01:26:43,600
The right horizon depends on when a decision still changes the outcome,

2273
01:26:43,600 --> 01:26:45,760
not on how many months your system can display.

2274
01:26:45,760 --> 01:26:46,960
Response time matters too.

2275
01:26:46,960 --> 01:26:50,000
If planners need an answer during a disruption,

2276
01:26:50,000 --> 01:26:52,640
a schedule that takes half a day to recalculate won't help.

2277
01:26:52,640 --> 01:26:54,960
If the use case is a weekly capacity review,

2278
01:26:54,960 --> 01:26:57,520
speed matters less than confidence in the assumptions.

2279
01:26:57,520 --> 01:26:59,520
Define how fast people need an answer,

2280
01:26:59,520 --> 01:27:02,960
then choose your logic and integration timing around that.

2281
01:27:02,960 --> 01:27:05,200
The pilot needs measures, but don't drown it in them.

2282
01:27:05,200 --> 01:27:07,280
Track schedule adherence.

2283
01:27:07,280 --> 01:27:09,600
Did work start and finish close to where you planned?

2284
01:27:09,600 --> 01:27:11,680
Track Q time at the resource under study.

Related to this Episode

Forward vs Backward Scheduling in Manufacturing: Which Strategy Actually Works?

Choosing between forward and backward scheduling in manufacturing dictates how a plant handles customer promises versus shop floor reality. While forward scheduling projects completion dates based on current available capacity, backward scheduling w…