M365Con 2027 – free online conference · 11–22 Jan 2027 · 120 sessions→ m365con.net

2026-09-16 · Season 4

Can You Simulate Your Factory Before Changing It?

Can You Simulate Your Factory Before Changing It?
What happens when you change a factory before you know how the rest of the production system will react? Adding a shift, buying a new machine, reducing buffers, changing staffing, or accepting a different product mix can look like obvious solutions. But factories are interconnected systems.…

Show notes

What happens when you change a factory before you know how the rest of the production system will react? Adding a shift, buying a new machine, reducing buffers, changing staffing, or accepting a different product mix can look like obvious solutions. But factories are interconnected systems. Improving capacity at one resource can simply move the bottleneck somewhere else. In this episode, we explore factory simulation, production planning, Digital Twins, finite capacity, bottleneck management, and manufacturing optimization — and how manufacturers can test operational changes before introducing them on the real shop floor. WHY FACTORY CHANGES ARE HARD TO PREDICT More machine hours do not automatically mean more customer orders shipped. An additional shift may increase machining capacity while assembly, inspection, material handling, maintenance, or qualified labor remain constrained. The result can be higher utilization at one work center while queues simply grow somewhere downstream. This is why production decisions need to consider the entire manufacturing flow, rather than optimizing individual machines in isolation. WHAT FACTORY SIMULATION ACTUALLY MEANS Factory simulation does not have to mean an expensive 3D visualization of an entire plant. A useful simulation models how orders move through production over time. It can represent:

  • Routings and production sequences
  • Machine and labor capacity
  • Shift calendars and maintenance windows
  • Setup and changeover times
  • Material availability
  • Queues and WIP
  • Quality holds and inspections
  • Labor skills and qualifications
  • Batch rules
  • Downtime and disruptions
  • Dispatching and priority rules

This allows manufacturers to test an extra shift without scheduling it, evaluate a machine before buying it, change buffer levels without disrupting production, or simulate a different product mix before customer orders are affected. ERP VS MES VS FACTORY SIMULATION ERP provides the commercial and production plan: demand, quantities, due dates, materials, routings, and planned capacity. MES provides evidence about what actually happened during production. Simulation adds another layer: What could happen if we change something? A work center may appear to have sufficient capacity in ERP while the real shop floor is constrained by setups, tooling, operator qualifications, material availability, inspection, or sequencing. MES history can help make simulation assumptions realistic, but historical data alone cannot answer what happens after a future shift change, capacity investment, or different dispatching rule. FROM FACTORY DATA TO A DIGITAL TWIN Data describes events. A factory model describes behavior. A useful Digital Twin connects products, processes, resources, people, tools, materials, quality conditions, and operating rules. It can represent the current production state and provide the starting point for testing alternative scenarios. The goal is not a perfect virtual copy of every object in the factory. The goal is a model accurate enough to support a real operational decision. TEST CAPACITY BEFORE BUYING CAPACITY Before investing in another machine, manufacturers can simulate alternatives such as: New machine → faster cycle time → additional shift → alternate resource → subcontracting → different sequencing rules. The important question is not simply whether machine capacity increases. It is whether throughput, lead time, queue behavior, and on-time delivery actually improve. A new machine may increase upstream output while creating an even larger queue at inspection or assembly. PEOPLE ARE PART OF FINITE CAPACITY Ten employees on a shift do not necessarily represent ten interchangeable units of capacity. Production may depend on specific operators who can perform setups, approve first-off parts, operate specialist equipment, or complete regulated processes. That means realistic manufacturing simulation needs to consider skills, certifications, shift coverage, supervision, support functions, and qualification constraints, not just headcount. PRODUCT MIX AND SEQUENCING MATTER Two production plans can contain the same number of orders and still create completely different factory loads. Different product families can require different cycle times, setups, tools, inspections, skills, and rework capacity. Average capacity figures can therefore hide the constraints that actually determine delivery performance. Sequence matters too. Grouping similar products can reduce changeovers, while prioritizing due dates may improve selected customer commitments but increase setup time. Factory simulation lets planners compare those rules against the same demand instead of relying only on averages. START SMALL You don't need to simulate the entire factory. Start with one decision, one constrained production area, and one measurable outcome. For example: If we add a late shift at this machining cell, can we improve due-date performance without creating an unmanageable queue at the next operation? Once the model reproduces normal production behavior credibly, alternative scenarios can be tested against that baseline. expensive capacity investment. This episode is for production planners, manufacturing leaders, operations managers, plant managers, industrial engineers, data teams, and anyone working with ERP, MES, APS, Digital Twins, or smart manufacturing. Become a supporter of this podcast: https://www.spreaker.com/podcast/m365-fm-microsoft-365-azure-cloud-power-platform-ai--6704921/support.

Apple Podcasts · Spotify · YouTube · Deezer

Host: Mirko Peters

Related articles

Transcript

Read the full transcript

Here's a problem most manufacturers don't talk about. A production change often starts with a sentence that sounds harmless. Let's add a shift. Let's move this work to another machine. Let's reduce the buffer. Let's accept more orders from this product family. And then the factory has to live with it. You're not changing a line in a planning file. You're changing the daily work of operators, planners, maintenance teams, quality staff, material handlers, people who already carry the weight of customer dates. A change can hit machines, but it also hits cues, handovers, inspection capacity, material flow, and the next order waiting behind the first one. That's why a factory change is often a live experiment, even if nobody writes that on the change request. More demand can trigger it, late orders can trigger it, a new product mix can trigger it. Maybe one machining cell keeps becoming the bottleneck, or maybe staffing gaps force the same people to cover too much work. The pressure feels immediate, so the answer usually feels immediate too. Add capacity, add overtime, add stock. But before you ask the factory to absorb a change, there's a better question can you test it first? Test it in the abstract, test the actual operating conditions you expect. What happens if demand rises, but inspection stays flat? What happens if the extra shift has fewer qualified operators? What happens if you reduce work in progress? Then a supplier delivery arrives late. Simulation gives you a way to ask those questions before the consequences become overtime, expediting, and misdelivery dates. Let me give you a concrete example, a capacity change that looks obvious at first, but isn't. A simple capacity change with non-simple consequences. Picture a plant with a machining cell that feeds final assembly. The cell contains a constrained resource, and then maybe a CNC machine, maybe a specialist process that only a few people can run. Orders collect there, planners keep moving dates around. Sales are started asking why lead times keep stretching, someone proposes an extra shift, the logic sounds reasonable. If the machine runs for more hours, it should produce more parts. More parts should feed assembly. Assembly should ship more orders. Problem solved. Except factories don't work as a straight line. Say the machining cell adds a late shift from Monday through Thursday. The machine can run, but the cell needs a qualified operator, materials ready at the point of use, the right tools available, and a maintenance plan that still protects the equipment. If the extra shift eats into the normal maintenance window, the plant may gain output this week and lose availability later. So already, it's not as simple as "more hours equals more capacity". Now follow the parts downstream. Assembly receives more machine components, but can assembly absorb them at the same rate? Maybe the assembly team works only two shifts. If you've finished units wait for a final test station, maybe the test station needs an engineer to release certain product variants, and that engineer isn't on the late shift. The machining cell then looks busy, its utilization rises, yet the customer still doesn't receive the order any earlier. This is more common than most planners want to admit because local output and customer service are different measures. A machine can run flat out, while the factory creates a bigger queue somewhere else. You haven't removed the constraint, you've moved it. Let's add another detail. The machining cell processes several part families. One family runs quickly with minimal setup. Another needs a fixture change, a tool check and an inspection step before assembly can use the part. When demand shifts to what the harder family, the extra shift may produce fewer completed parts than the simple calculation predicted. The calendar showed available hours. It didn't show the work inside those hours, then there are people. A plant may have enough head count on paper, but not enough coverage, where the work actually happens. One operator can load material but can't approve a setup. Another can run the machine, but needs a second person for certain lifting or quality checks. A supervisor may need to be present before a new employee can work independently. A staffing plan based only on names and shift totals misses all of that. Materials apply can also break the simple plan. More machining output creates higher and earlier demand for raw material, cutters, inserts, fixtures and consumables. If purchasing stores or internal logistics still replenish on the old rhythm, the extra shift spends part of its time waiting. You paid for hours, but the machine didn't cut metal. Then think about inspection. Some factories treat inspection as a final gate. Others inspect during the route. Either way, releasing more work from machining can create a hidden pile of parts waiting for checks. That queue may not show up in the original capacity proposal because the proposal focused on the loudest bottleneck, not the full flow. There's also the customer promise. Imagine two planners looking at the same extra shift proposal. One sees higher output at the machining cell. The other sees orders with fixed ship dates, limited assembly slots and a shortage of packing capacity at month end. Both are looking at the same factory. They're just asking different questions. The first asks, can we run more hours? The second asks, can we deliver more orders on time? Those answers can differ. This doesn't mean the extra shift is a bad idea. It might be exactly the right choice, but it needs testing against the constraints that shape the actual result, not against a simple rate calculation. Think of the proposed change as the first domino. The hard work is tracing where the next domino's fall, where work waits, who needs to act, and which customer commitments move when the system comes under pressure. That's the role of factory simulation. That factory simulation actually means. When I say factory simulation, I don't mean a glossy 3D model with animated forklifts driving around a virtual plant. That kind of thing helps communicate an idea, but it's not the point. A useful simulation is a controlled model of how work moves through part of your factory. It takes the rules you run under today. The resources you depend on, the orders you need to process, and the normal variation that disrupts every plan. Then you change one condition and see how the system responds. You can test an extra shift without asking anyone to work it, test a new machine without buying it, test a smaller buffer without starving a real assembly line, and test a different product mix without putting customer delivery dates at risk just to see if the plan actually holds up. Think of it as a flight simulator, but with fewer buttons and much more material waiting in queues. The goal isn't to produce a perfect copy of every bolt, person, and pallet in the plant. It's to model enough of the real operating rules, so a decision can be tested in a believable way. That word believable matters more than perfect. No factory model knows the future. Demand can change, a supplier can miss a delivery, and a tool can fail at the least helpful moment as tools always do. Simulation doesn't remove uncertainty. It gives that uncertainty a place in the decision before it shows up on the shop floor. So instead of asking what will happen next Tuesday at 10/17, you ask a more useful question. If we change this operating rule, what range of outcomes should we expect under normal conditions and what happens when the day goes badly? That's a different kind of planning conversation. A simulation contains the things that shape flow. It knows and order needs a route through operations. A resource has a calendar and may not run all the time, and it can represent setup time, queues, batch rules, material readiness, inspection holds, and labor availability, where those things affect the decision you're testing. It also needs decision rules. When two work orders wait for the same machine, for example, what happens? Does the earliest due date go first? Does the planner group parts by product family to reduce changeovers? Does a customer priority override the queue? Or does the machine wait until a full batch arrives before starting? Those rules shape output. They aren't just admin detail. A model without them can still produce numbers, but those numbers don't describe how your factory actually behaves. They describe a cleaner factory with fewer arguments and fewer exceptions than the one you run. Most production teams would recognize that factory immediately. It's the one that exists in PowerPoint. The point of simulation is not to find one magic answer. You compare choices. Maybe you run the same demand through the current setup, then an extra shift plan, then a plan with a different release rule. You don't ask the model to decide for you. You ask it to expose the likely effects, the trade-offs, and the weak points in each option. One option might increase total output, but push more orders past their due dates. Another might protect on-time delivery but require more setup work. A third might work only if a qualified operator covers a specific period. Those are practical findings that give planners and production leaders something concrete to discuss. That's also why simulation differs from a dashboard. A dashboard reports what happened or what is happening now. It can tell you a machine stopped, backlog increased, or a work center produced fewer units than planned. Those facts matter, but the dashboard doesn't run an alternative future where you change the shift pattern and compare the result. It describes the factory. It doesn't rehearse the decision. A spreadsheet can go further. You can calculate capacity, load, labor hours, and planned output, and for a stable process with few constraints that may be enough. Spreadsheets stay popular because they let experienced people test ideas quickly, and they're often the only place where local knowledge has been written down. But spreadsheets tend to struggle when timing and interaction matter. They can calculate that two operations each have enough hours across a week, but they don't naturally show what happens when work reaches the second operation in the wrong sequence, waits for an inspection release, then blocks the first operation from sending more work forward. You can build that logic into a spreadsheet, but eventually you've built a simulation engine in cells. At that point, Excel has quietly become the factory platform Microsoft Never Planned. A simulation model follows events over time. When order arrives, a machine becomes free, material becomes available, a shift ends, a quality hold stops a batch. The model applies the rules you gave it and records the result. Then you repeat the same scenario with a change condition and compare what changed. That comparison is where the decision value comes from. Before anyone trusts a model with a large capacity decision, start with a real production question people already care about. Not, can we model the whole factory? That question can consume a lot of time and produce a very expensive conversation. First, instead, what decision do we need to make and what would we change if the model showed us a risk? That keeps the model tied to work that matters. The question's worth simulating. A simulation earns its place when it sits beside a decision someone must make soon, not a broad question like how can we digitize the plant? Ask something more direct. Should we add a weekend shift at this work center, can we take this new order mix without missing current commitments or would an extra buffer protect the line or just create more work in progress? The decision should have an owner, the production manager, the planner, the operations director, or the person responsible for a specific product family. That person needs to know what action the model can inform because a simulation that answers no real decision eventually becomes another report people stop opening. Capacity questions often come first because they carry cost and pressure. You might be considering a new machine, an alternate resource, subcontracting one operation or changing the available hours on a constrained process. The model can test the proposal against real order flow rather than a broad weekly capacity total. That changes the question from, do we have enough hours? To which orders finish earlier, where does the queue move and what happens to the orders already in the system? Staffing questions need the same discipline. A plant can add head count, approve overtime, change break cover, or cross train people for another operation. But people aren't interchangeable capacity units. A person may work a shift but lack the approval, training or experience needed at the operation causing the delay. So test the coverage that matters. If you add an operator to a shift, can that person run the bottleneck resource? Complete the inspection check and cover a break without stopping the process. If cross training becomes part of the plan, what work can move immediately and what still needs supervision? That produces a more honest labor discussion. You stop talking about total heads in the building and start talking about qualified coverage when and where the work needs it. Buffers deserve testing too, although they often get changed by instinct. When lead times grow, people add stock between operations. When inventory becomes uncomfortable, people remove it. Both reactions can make sense depending on the process, but the right buffer depends on where variation enters the flow and what the next operation can absorb. You can test a smaller work and progress buffer and ask whether the downstream process runs short when an upstream machine slows down. You can test a larger buffer and see whether it protects output or berries quality issues and stretches lead time. A buffer can protect flow, but it can also hide a planning problem behind a growing pile of parts. Product mix needs the same treatment. Two demand plans can contain the same number of units and put very different pressure on the factory. One mix might have parts with short roots and familiar setups. Another might need longer cycle times, specialist tools, extra inspections or more rework capacity. The total volume looks stable while the load on the actual constraint changes sharply. A simulation helps you test that shift before the orders hit the floor. You compare the current mix with a proposed mix and see what happens to throughput, queue time, resource load and due date risk. If the answer depends on sequencing certain families together, that becomes visible before the planers start fighting the schedule. Then there are disruption questions, which are often the most useful ones. What happens if a machine stops during the busiest period, a supplier shipment arrives late, a batch sits on quality hold, or an urgent customer order enters the queue halfway through the week. You're not trying to predict every problem. You're testing whether the operating plan can absorb normal bad days without turning every interruption into a crisis. For each scenario, decide what outcome you care about. It might be customer delivery performance, total output, lead time, overtime exposure, queue growth or the risk of starving a downstream operation. Pick measures that relate to the decision, not measures that are simply easy to collect. You also need to state the constraints that cannot move. Safety rules don't disappear because the model wants more output. Quality release steps, maintenance needs, labor agreements, material limits and customer commitments all shape the choices that remain available. And ask who's risk the proposal moves. An extra shift might relieve a machining queue while loading pressure onto quality. A smaller buffer might reduce stock while giving planners less room to recover from a late delivery. The model should make those transfers plain because someone will carry the consequence. Many planning tools can show demand, planned load and due dates. They often stop before they reach these shop floor choices, web time, sequence, people, and constraints collide. Why ERP planning doesn't answer the shop floor question? Your ERP system has one job, plan the business. It holds demand data, customer dates, bills of material, inventory positions, purchasing needs, routines and planned orders. Without it, you're flying blind on the commercial and material plan. That work matters. When sales accepts an order, procurement needs to know what to buy. Finance wants a view of supply and cost. Production needs work orders to execute. ERP pulls those decisions into one place, often across plants, warehouses and long supply chains. It pans the factory a plan with dates and priorities. But here's the thing, a plan at that level can't always tell you what to do on the floor during the next shift. Take a plan routing. It might show that part A needs machining, then cleaning, then assembly, then final test. That's the intended path. But what the routing won't tell you is that machining needs a particular fixture that fixture is already booked and only one operator on the shift can sign off the setup for that part family. Those details decide whether the planned order can actually move. ERP also tends to work with capacity at a broad level. A work centre has a calendar and a planned number of available hours. That's fine for rough cut capacity planning. Checking whether demand broadly exceeds what the site can handle. A finite shop floor runs under tighter limits. Two orders both need the same machine but only one can run first. One job might require a long setup. Another might share tooling with a job already running. A third has all parts available except for one bought in component, still on a truck somewhere. The calendar says there's capacity. The floor has a sequence problem. In sequence changes the answer, consider a machining resource with 8 available hours. ERP sees two jobs that each need four hours, load looks fine. But if each job needs a two hour change over and only one operator can do those changes, the day doesn't fit. The machine can't process 16 hours of work inside 8 hours just because the routing rates looked clean. This is why planned capacity and capacity that can actually run on the same thing, available capacity depends on more than the machine. It depends on the operator, tool, fixture, program, material, maintenance window, quality support and the work already waiting in front of that resource. Some of those constraints sit in different systems. Some live in local work instructions. Some live in the heads of experienced people who know which combinations create trouble. None of that means ERP has failed. It means ERP has a different job. It should plan, demand materials, supply and broad production needs. It should provide the commercial frame that production works within. Asking it to model every dispatching decision setup rule, labor qualification, shortstop and local exception turns a useful enterprise system into a poor imitation of a shop floor engine. You can add more detail to ERP. Many organizations do and sometimes that helps, but there's a practical limit. Each extra rule needs data, ownership, maintenance and a clear reason to exist. If plan is still override the result every morning because the system can't see what they see, then more fields haven't solved the problem. They've just given it a larger form. Think about a late order. ERP can show the due date, the planned route, the material demand and perhaps the work center load. A planner still needs to decide. Release the order now, hold it for missing material, place it ahead of another job, group it with a similar setup or send part of the route to an approved alternate resource. Those choices depend on the state of the factory right now. They also depend on the rules that govern the next few hours, not just the planned result at the end of the week. That's where a simulation model can take the ERP plan as an input and test how it performs under finite conditions. ERP provides the work to be done. Dates, quantities, routes and material demand. The simulation asks whether that work can actually flow through the real constraints without creating a new problem somewhere else. Keep that distinction in mind when we bring mess into the conversation. ERP tells you what the business planned. MES can tell you much more about what production actually executed. Why mess history still isn't a future model? Your mess sits much closer to the work. It records what happened as an order moved through production. Start and finish times, quantities produced, scrap, quality results, machine stops, work order status and sometimes operator activity. That record matters because it replaces guesswork with evidence. If a routing claims an operation takes 20 minutes but MES history shows, it usually takes longer once setup, inspection and normal stops into the picture. You've found something worth investigating. Same deal when a machine appears available in a plan but production history shows recurring delays around tools, material or changeovers. MES gives you the trace of execution, but a trace isn't a future model. It tells you an order weighted. It doesn't tell you what would happen if you changed the Q rule, added a late shift, moved work to an alternate resource or released a different product mix into the same area. That difference can seem small until a planner needs an answer by the end of the day. Think about a machine that stopped several times last month. MES may record each stop, its duration and maybe the reason code selected at the time. You can calculate lost time and review patterns with the maintenance team. That supports better decisions. Still, the history alone can't decide how a proposed production plan behaves when the same kind of stop occurs next week. For that, you need more than a list of past events. You need rules for what work does when the resource stops. Does the queue remain in place? Can approved jobs move to another machine? Does a setup need to restart? Does the shift supervisor release overtime? Does inspection become the next constraint once the machine recovers? The MES may hold parts of those facts. The decision logic often sits somewhere else. OE makes this point clearly. OE combines availability, performance and quality into a measure of how effectively equipment ran against its planned time. It helps you spot lost patterns and focus improvement work. It gives teams a common way to discuss equipment performance. Yet, an OE result isn't a promise of future throughput. A machine with a strong OE result can still fail to protect customer dates if the wrong work arrives at the wrong time. A skilled operator isn't available or parts wait for a quality release. On the other side, a machine with lower OE may not threaten delivery if it has enough planned slack and a healthy buffer before the next operation. The measure tells you something real. It just doesn't contain the whole operating decision. This is where teams sometimes make an understandable mistake. They collect more MES data, add more reason codes and build a better report, hoping the future answer will appear through volume alone. Better history helps and poor history creates blind spots. But data collection can't replace a model of how choices affect flow. You need to describe the decision points. When demand enters the plant, which orders can start first. When materials arrive late, which jobs stay on hold and which can proceed, when a skilled operator goes home, which tasks can another person take over. When quality blocks a batch, how does that change the next queue? Those are behavior rules. They turn recorded events into a testable view of how the factory responds. A good simulation can use MES history to set realistic assumptions. Actual cycle time ranges can shape, process, duration. Recorder downtime patterns can inform disruption cases. Quality records can expose rework parts that the clean routing never captured. Work order progress can show where queues tend to build. But the model needs a conscious choice about what to do with those conditions. That's not a weakness in MES. It's a boundary between systems with different jobs. MES records and coordinates execution. A simulation uses operational evidence plus agreed rules to test a future operating choice before people carry it out. So when someone asks, can we trust the model? Don't answer by pointing only to the amount of MES history behind it. Ask a sharper question. Does the model behave like this part of the factory when conditions change? That brings us to the distinction underneath all of this. Data describes events. A factory model describes behavior. Data describes events. Data describes behavior. A factory generates facts constantly. An order enters the system. A machine changes state. An operator books time. A palette moves. A batch fails inspection. Inventory shifts location. Each fact might be correct, but the planning question still sits unanswered. Think about the data sitting across your systems right now. ERP knows the order, the due date, and the planned route. MES records operation status and quantity. The maintenance system flags a resource that needs work. Quality holds a failed test result. Labor records show who worked with shift. Those systems describe parts of the same factory. They don't automatically describe how those parts depend on each other when you change a rule that dependencies the model. Say a planner wants to move work from machine 12 to machine 14 because machine 12 has a growing queue. The data shows both machines can process the same product family. That looks promising. But can machine 14 run the current revision of the part? Does it need a different fixture? Is the correct tool available? Does the operator on that shift hold the right qualification? Does the route require an inspection step before or after the move? A list of records won't answer that by itself. The model needs to link the product to its approved process, the process to the resource, the resource to the tools and people it requires, and the order to its material and quality state. Then it can test the proposed move under the same rules people face on the floor. That's context, but it's also behavior. A factory model needs to know what happens over time. A job doesn't simply appear at every operation when the plan says it should. It waits for material. It waits for a machine. It may wait for a setup, a forklift, a first of approval, or the next shift. Those waits shape lead time. Queue rules matter as well. Some plants release work as soon as material becomes available. Others limit work in progress because too much released work creates a queue. Nobody can control. Some areas process by due date. Others run campaigns by family because cleaning, tooling, or setup takes too long between variants. None of those rules are just background detail. They create the factory behavior that the model needs to reproduce. Take a shift hand over. On paper, one shift ends and the next begins. In practice, work may pause while people exchange information, review quality concerns, confirm tool condition, or decide whether a partly completed batch can continue. Some processes can hand over cleanly. Others need the same operator to finish a critical stage. A model that treats every hour as identical will miss that. Transport also affects flow. Especially where the root crosses a large plant, a warehouse boundary, or a shared logistics team. A part can finish machining and still wait before it reaches inspection. The machine finished its work, but the order didn't move. This is how local performance reports can look healthy, while customer lead times keep stretching. Timing rules turn isolated facts into a working model. You also need to handle batch size. A process may run one piece at a time, or it may wait until enough work collects for a furnace load, a wash cycle, a paint run, or an inspection batch. Larger batches can reduce setup effort, but they can also hold urgent work in a queue longer than anyone expected. The model lets you test that trade off under a realistic demand pattern. That's where the term "digital twin" often enters the conversation and I think it needs a plain definition. In this context, a digital twin is a model connected to real operational facts, so it can represent the current condition and relationships of a physical process. It doesn't need to look like a virtual factory tour. A useful digital twin might know which resources are running, which orders wait in front of them, which materials are released, and which routes are valid for a product. It may feed a simulation with the current starting position, then test a capacity or staffing decision from there. The visual layer is optional, the operational model isn't. This also means a twin needs maintenance, products change, routing versions change, machines gain or lose capability, new fixtures arrive, people gain qualifications. If the model still follows last year's rules, it can calculate very quickly and still send people to what the wrong decision, fast, wrong answers, remain wrong answers. So don't start with a question like, where can we store all the factory data? Start with which relationships and timing rules decide whether this flow succeeds. That brings you from data collection to an operating model people can test. To see what that looks like in practice, let's follow one work order through the factory. Follow one work order through the factory. Take one work order for a machine component needed in a customer assembly. The order enters from ERP with a quantity, a due date, a routing and a list of required material. That sounds complete until you ask a simple question. Can this order actually start today? First, the model checks material status. The main raw material may sit in stock, but that doesn't automatically release the order. Perhaps the material needs a quality release, perhaps it has been allocated to a higher priority order. Or a bought-in, insert, seal or electronic part may still be missing. The order exists in the plan, but it can't yet enter the queue. Once the material clears, the routing tells the model where the work can go. Maybe the first operation normally runs on machine 12. That machine has a queue, a shift calendar and a setup state. The order can't simply jump to the front because the model knows the dispatch rule used in that area. If due date drives the queue, the work might move ahead of less urgent jobs. If the plant groups by product family, it may wait behind a similar part already on the machine. Neither choice is automatically right. One can protect the customer date while the other can cut change over time and preserve capacity for the rest of the week. That is where simulation starts to look like factory work, not a generic capacity calculation. The order reaches the machine, but the machine still needs the correct conditions. A fixture may need to be installed. The cutter may need replacement. The program revision must match the product revision. And the operator must have approval to complete the setup and first off check. A resource listed as available on a routing is only a possible route. The model needs to test whether it is a usable route at this moment. Imagine the planned operator is present, but their qualification only covers the standard version of the part. This order has a customer specific change that needs senior approval. The machine has free time, the person is there, yet the order waits. Because the actual constraint isn't machine time or headcount, it's qualified release. That kind of wait often gets lost in broad planning views after setup the part runs. Cycle time matters, but it isn't the only clock running. A batch may need a first off inspection. A process may create scrap or require rework. The model can represent those parts where they affect the decision rather than assuming every piece exits the operation in perfect condition because the routing would prefer quiet life. Suppose the first batch passes machining but inspection places it on hold. Maybe a measurement sits near a limit and quality needs to review it. The parts are physically complete at that operation. But they aren't available for the next one. Assembly can't use them yet. Visible stock and usable stock can differ quite a lot. Once the quality hold clears, the work moves to the next operation. That movement may depend on internal transport, a scheduled collection run or space in the receiving area. If the next operation has no room, the finished batch blocks the earlier process. Suddenly, the machining cell has worked done, but nowhere to put it. Local output can rise while flow slows down. Then assembly receives the components. Once assembly needs a matching component from another route, a kit of purchased parts, and an available test slot after build. The original work order now affects another order sequence, another team's labour plan, and potentially another customer date. A delay of 30 minutes at machining might not matter on its own. But if it misses the last inspection release before shift end, assembly may lose a full shift. If assembly then misses its test slot, packing moves to the next day. The customer sees a late shipment. Even though no single team saw a dramatic problem in its own area. That is how a small local delay turns into a delivery issue elsewhere. Behind every step, sit product process resource links. This product needs this routing version. This operation can run on these resources. This resource needs these tools and these qualified people. This batch needs this inspection before the next operation can begin. The order needs all of those conditions at the right time. A factory model connects those links and lets you test what happens when one of them changes. So if you propose an extra shift, a new machine, or a different Q rule, you aren't only asking whether one operation can produce more. You're asking whether the full order can reach the customer sooner. Under the rules and limits the factory already lives with. Before major decisions depend on that answer though, the model needs to earn trust. It should start with a decision people know well enough to challenge rather than trying to explain every corner of the plant in one attempt. Start with one decision, not the whole plant. Once you can trace a single work order through the model, the obvious next move is to go big. At every work centre, every product, every system, until you've built a digital twin for the entire site. I'd resist that urge. A factory wide model might become useful later, but it's a terrible first target. Every extra area you pull in brings more roots, more exceptions, more ownership squabbles, and more arguments about which rule is actually current. You can burn months mapping complexity before anyone learns whether the simulation actually helps make a real decision any better. So start where the pressure already sits. Maybe it's a constrained machining cell that keeps pushing work late. Maybe there's a shift change planned for one assembly line, or perhaps one product family creates unstable cues whenever demand rises. Pick a flow people know, a decision they revisit, and a boundary you can explain without needing to pull out a map of the whole plant. Keep the first question narrow enough that you can actually answer it. For example, if we add a late shift at the cell can we improve due date performance for this product family without creating an unmanageable cue in the next process? That gives the work a purpose. It also tells you what belongs in the model and what can stay outside for now. The model needs a clear starting point which means getting agreement on the current operating rules, the product mix, the staffing pattern, and the service target the team wants to protect. If people disagree about how the area works today that's actually useful, it exposes the assumptions that normally sit below the planning conversation, don't hide those assumptions. A planner might release work by due date. A production lead might hold work back until material and capacity looks stable. An operator might group jobs differently because they know a certain setup causes trouble late in the shift. All three views can contain part of the answer but the team needs to decide which rule the first scenario should test. Otherwise, the model becomes a debate with a spreadsheet attached. You also need a decision owner before you build much. Someone has to be able to say if the model shows this outcome, I'll consider changing the shift pattern. Or if this option reduces late orders but creates too much overtime, we'll reject it. Without that link to action, simulation becomes an interesting technical exercise that doesn't change how production runs. That happens more often than people admit. Define the output in plain terms too. The owner might need to compare late orders, queue time, resource loading or overtime exposure. They might need a range rather than one forecast. They might need to know which condition causes the plan to fail. Those needs shape the model more usefully than a broad request for better visibility. Visibility is easy to ask for. A decision needs a sharper question. Suppose the first project focuses on one constrained line and a planned weekend shift. You don't need every warehouse rule in the company model if the decision depends mostly on routing, line calendars, qualified coverage, upstream release and the capacity of the next process. You can represent external conditions at the level needed for this decision, then test whether the proposed shift changes the result. That scope boundary protects the project. It also gives operators and planners a chance to challenge the model while the problem is still familiar. They can spot a missing setup rule, an unrealistic handover assumption or an exception that happens often enough to change the result. Fixing those gaps in one area is manageable. Fixing them after you've modeled an entire plant is much less pleasant. Everyone wants a digital twin of everything, almost nobody wants to own the thousands of rules that follow. A focused model can earn trust because people can compare its behavior with work they already understand. Does it create queues in the places where queues usually build? Does it react sensibly when a shift ends? Does it show the same type of delivery pressure that planners see today? If it doesn't, you've learned where the model needs work before using it for a costly change. That's a good outcome, not failure, but learning. The first simulation project shouldn't prove that the factory is digital, it should help one accountable person test one change with less guesswork. Once that works, you can extend the model from a stable base instead of trying to repair a giant one, nobody fully understands. Next, you need to define normal operations well enough for the model to behave plausibly. Build a baseline that looks like normal operations. Before you test the proposed change, the model needs to handle today's operation in a way that the people running it recognize. Not perfectly. No model captures every small exception. And plausibly enough that a planner, operator or production lead can hear the result and say, yes, that's broadly how this area behaves. That starts with rootings. For the product family you're focusing on, document the root each order follows, including approved alternate roots where they really exist. Don't add an alternate machine just because it looks similar in a master data table. Confirm whether it can actually run the part with the current process revision, tooling, quality requirements, and normal labor coverage. Then capture the time behind each step. Normal time is often the first number people reach for, but a single average can hide the condition you're trying to understand. A part might run quickly once the process settles, while a first piece after a change over takes longer. Another part might run at different speeds depending on material grade, tool condition, or operator experience. Use a range where the work varies. That doesn't mean you need to turn every process into a statistical research project. It means the model should allow for the normal spread people see on the floor. If an operation usually takes somewhere between 18 and 25 minutes, a fixed 21 minute assumption might create a need plan that no shift ever experiences. Setups need the same treatment. Record what triggers a setup, how long it normally takes, and whether the sequence changes that time. A change from one part family to another might take much longer than moving between two related variants. Some setups require a qualified person, a first off inspection, or a fixture that has to arrive from another area. Those conditions affect when the machine can actually start. Calendars also need more detail than a weekly total of available hours. Local working shifts, planned breaks, shift handovers, scheduled maintenance, and known periods when support functions aren't available. If quality only releases a certain process during defined hours that belongs in the baseline, if material handling slows down during a handover included where it affects the flow you're testing. The model should use the factory's actual operating rhythm. Down time deserves careful handling too. You don't need to reproduce every historical stop one by one. Instead, use production evidence and local knowledge to define the patterns that matter. A resource might suffer short interruptions often or a longer stop less often and recovery might depend on who's present and where the spare parts are available. Those patterns shape capacity more honestly than a theoretical machine rate. Next comes the rules that decide how work waits and moves. Does the area release orders as soon as material clears? Does it hold work until a downstream resource can accept it? Does it process in fixed batches? Or can it run smaller lots when a due date starts to slip? Those choices affect queue lengths and lead time, inspection holds, and rework loops need to place in the model too. If a process regularly sends some work back for correction, removing that path creates false capacity. If inspection occasionally holds a batch until the next day, the model must show that delay when it changes downstream flow. Nobody needs a model that only works when every part behaves. This is also where you need to separate unknown from assumed. Teams sometimes feel pressure to fill every blank with one clean number. That creates a calm looking model built on guesses. It's better to record the gap, state the assumption, and test whether the decision changes when that assumption moves within a sensible range. And certainly doesn't disappear just because you type a number into a field. Once the baseline contains the main rules, compare it with the past production period. Choose a period that represents normal operation for the area, not an unusually quiet week or a major shutdown. Feed the model the same order pattern, staffing calendar and relevant starting conditions, then compare its output with what production experienced. You're looking for behavior, not a perfect replay. Did queues form in roughly the places where they usually form? Did the model produce a similar flow of completed work? Did it show pressure around the same shifts, process steps, or release points that planners remember? If it misses badly, don't tune the output until the numbers look attractive. Find the rule, timing assumption, or missing constraint behind the difference. Planar judgment belongs in this review. Experience planners might not describe their logic as a formal rule, but they often know why an apparently good schedule fails. They know that a supplier delivery needs checking before release. They know that a certain job should never follow another without extra cleaning. They know which resource only looks interchangeable until a difficult order arrives. Turn that knowledge into an explicit assumption where it affects the decision. Operators should review the baseline too. They can spot practical gaps that data alone won't expose, like a setup that requires two people. A material move that only happens on a regular route or a quality check that blocks a process longer than the system timestamps suggest. This isn't a challenge to the data team. It's how the model gets closer to the work. A baseline gains trust through those conversations. As the model improves, keep a record of the routing version, calendar, time ranges, queue rules, and assumptions used for each test. Factories change, and the model needs to change with them. Without that discipline, people eventually compare results from different rule sets and wonder why the same scenario produces a different answer. The baseline doesn't need to predict every single day. It needs to behave credibly under normal conditions, with its known gaps visible and its assumptions open to challenge. Only then can you test a capacity proposal without confusing a clean model with a real factory. Once your model behaves like normal production, you can finally test the question that usually starts the whole conversation. Do we actually need more capacity? And if so, where? Buying a machine feels like the direct answer. Faster resource, more output, less pressure, and sometimes that's the right call. But here's the problem. A capital request built on theoretical rate alone can send your money toward the wrong constraint, while the actual delay sits in a queue, an approval step, or a downstream process that has no room to absorb more work. So test your options before you commit, take a constrained operation where demand regularly exceeds available time. You have options, add a new machine, improve cycle time on the existing one, add more operating hours, root work to an alternate resource, or send part of it to a subcontractor. Each one changes the flow differently, and the first option that adds hours isn't always the one that improves delivery. Start with the current case by running the expected order pattern through the baseline model using the normal calendars, routing rules, and variation the production team already signed off on. That gives you a point of comparison. You can see current throughput, lead time through the affected area, queue growth, late orders, and resource load, then change one condition at a time. For a new machine, don't just plug in its nominal hourly rate. Give it a real calendar, with setup requirements, valid product families, tooling needs, plant maintenance, and the people needed to run it. If it can only process part of the demand, model that boundary. A machine that handles the easy work might free up the constrained resource for the difficult work, which can help a lot, but it could also create a new queue at a shared inspection point. For a faster cycle, test the full effect instead of just looking at saved minutes. Maybe a new tool cuts runtime but needs more frequent checks. Maybe a process improvement shortens one operation, but creates a smaller batch that arrives more often at the next station. Faster processing can improve flow, but it can also expose a limit the slower process had quietly masked. A few hours need the same discipline approach. A plan for more shifts can increase available time, but productive time depends on what can happen during those hours. If materials arrive only on the normal shift, if quality release stops before the late shift begins, or if maintenance loses its planned window, the new calendar may not produce the output people expect. Available hours aren't the same as productive hours. The model should separate theoretical rate from the time that actually produces released usable parts. Theoretical rate starts with the machine's best case cycle, while available productive time subtracts the hours lost to planned breaks, setup, maintenance, missing work, normal stops, and support constraints that stop and order from moving. That difference alone can change the entire investment case. Imagine the model shows a new machine lifts output at the first operation, but the queue before final inspection grows every day. The factory processes more work, yet customer orders still wait for the same release step. In that case, the new machine still has a purpose, but it doesn't solve the delivery problem on its own. The constraint has moved. This is why capacity testing needs to watch the whole affected flow, not just the resource under review. Track throughput, completed work that can proceed or ship. Track lead time, because more output at one point can still mean longer time through the factory. Watch queue growth and queue age, an ageing queue can expose future late orders before the missed dates even appear. Also track resource load, but don't treat high utilization as success by itself. A resource running near full load creates fragile flow because normal variation has nowhere to go. Stop, a late job or a long changeover can push work into the next shift. Some spare capacity at the right point protects delivery better than chasing maximum utilization across every machine. I know that sounds uncomfortable in a plant under pressure. Idol time looks wasteful when a backlog sits right there, but a resource with no recovery room can turn a minor disruption into a schedule problem. The model lets you compare that trade off with evidence instead of instinct. Run several plausible cases, one assumes expected demand and normal conditions, another tests higher demand or less favorable product mix. A third includes the new machine or extra shift but with realistic downtime and downstream limits. You're not after the most optimistic output figure, you want the option that still protects the outcome you care about when the plant hits ordinary factory variation. Sometimes the result says yes by the capacity, sometimes it points to a different answer. Better sequencing, targeted subcontracting or changing where work enters the flow. Either way the decision gets clearer because you can see exactly where the pressure moves, and capacity still depends on the people who can operate the process. Staffing is more than headcount. A capacity model can show a machine has time available, but that doesn't mean the operation can actually run. People turn planned capacity into productive capacity, and in many factories the real limit isn't the headcount. It's whether qualified people cover the right operation on the right shift when a specific order reaches that point in the route. Headcount can hide that problem. Picture a production area with ten people on a shift. On paper, the labour plan looks fine, but only two of them can set up the constraint machine, and can approve the first off-part, and another holds the certification for a special process several urgent orders require. If one of those people is absent, the area doesn't lose one tenth of its capacity. It may lose the ability to release certain work entirely. That's the distinction a useful simulation needs to capture. A person present in the building isn't always able to perform the task that controls flow. The model needs to represent skills, approvals, certifications, shift coverage, and sometimes supervision rules. The sketch practical very quickly, say you want to add output at a machining cell by assigning another operator. The first question isn't just whether they have free hours, can they load the machine independently, change the tooling, respond when the process drifts, and complete the checks to release first production parts. If the answer is no, you haven't added the same type of capacity. You may have added support capacity, which can still help, but the model needs to show that difference. A training matrix becomes part of the operating model here. It doesn't need to become an HR project. It just needs to state which work a person can perform under what conditions and whether they can work alone or need backup. That matters when you test changes. Cross training often sounds like the obvious answer. Train more people, create more flexibility, reduce dependency on a few experienced operators. I agree with the direction, but the model needs to treat cross training as a real operating change. Not a check box. A person in training works more slowly, needs supervision, and can't approve certain product variants. A experienced operator training them also spends time away from their normal work. And if quality risk rises during the learning period, that needs attention too. None of that argues against cross training. It just tells you what it costs in the short term and what flexibility it can create later. Break coverage creates a similar issue. A line may appear staffed for the full shift, but the bottleneck station stops whenever the one qualified operator takes a break. That pause could be harmless if a buffer protects the next operation, or it could trigger a delay that keeps expanding through the day. The answer depends on the actual flow, not the head count total. Shift handover needs a place in the model too. Some work transfers cleanly between operators, but other work needs continuity. Because in in process check, a difficult setup or a quality concern sits with the person who started it. When a plan assumes every handover works perfectly, it treats people like a resource calendar with legs. Production doesn't work that way. Fatigue deserves a careful approach. I wouldn't claim a simulation can measure how tired someone feels. That's false precision. But you can model the labor rules and operating limits that affect the decision. Systemum over time, rest periods, restricted tasks, need for extra supervision and planned coverage for longer hours. Those limits protect both people and process stability. Absence works the same way. A workforce plan might tolerate one absence in a general assembly area, but fail when the absent person holds a rare approval. Test a normal absence case, then ask which order stop which work can move and how much recovery time the plan needs. That's more useful than treating absence as a flat percentage removed from total labor. Here's another point that often gets missed. Most roles constrain production, just as much as direct operators. A late shift might need material handling, tool support, quality release, maintenance cover, or a supervisor for escalations. If those roles stay on the old calendar, the new operating hours just create work that waits for help. The machine might run, but the order may not move. So when you simulate staffing, map the roles that control release and recovery, not just the people who touch the product. Identify where work needs a specific skill, where two people must overlap, and where an absence removes a decision or approval rather than just reducing hands on the floor. That gives you a model of usable labor that also changes the discussion with managers. Instead of asking for more heads, you can ask for qualified coverage at the operation that shapes delivery performance. Instead of treating overtime as a broad answer, you can test whether it covers the actual constraint or just creates more work waiting downstream. A staffing decision should show who can do what, when they can do it, and which limits still apply. Anything less produces a schedule that looks fully staffed until the first order needs a person who isn't actually available. Test shift patterns and labor rules. Once you know which skills actually control the flow, you can test how the shift design itself holds up. This is where a lot of capacity plans get oversimplified. Someone sees a calendar and says, add a late shift, approve overtime, run Saturday, or stagger the starts. And that can feel like the obvious answer. More hours can help, but they only work if the work can actually move through the full process during those extra hours. Picture a constrained assembly operation running two standard shifts. Everything goes up, backlog grows, and the natural proposal is a third shift. On paper, that looks easy. More hours at the assembly benches means more capacity, right? But the third shift doesn't just need assembly operators. It needs material available at the point of use. It might need someone who can resolve a quality issue as soon as it shows up. It might need test equipment support, maintenance cover, and a supervisor with authority to release a deviation or decide what to do when an order can't continue. If those support rolls finish at the end of the second shift, the extra assembly hours may just produce partly completed work. The labor plan looks full. The customer order still waits. That's why I'd model the shift as an operating system, not as an extra block of time. You include the bottleneck operation, sure, but you also include the support functions that let that operation actually release work. In some areas, material handling controls the pace. In others, it's test, inspection, maintenance, or the tool room. The whole shift needs enough coverage to complete the work it starts. Overtime needs the same kind of test. It can recover a short term problem, especially when the work, material, and approvals are already sitting ready. But Overtime can also extend a queue into an area that doesn't have the same coverage. You work longer at one resource, then create a bigger pile in front of the next one, but that might still be the right call. At least you can see the trade-off before people commit to it. Staggered shift starts can produce a different result. Instead of everyone arriving and leaving at the same time, you can extend coverage around the process that causes delays. A material handler might start earlier. Quality support might overlap the busy part of the day. Maintenance might use a quieter period without taking the bottleneck offline during peak flow. The model can test those choices against the same demand and the same operating rules. That comparison matters because a shift pattern changes more than labour hours. It changes handovers, break timing, the timing of material moves, and the point when support becomes unavailable. A schedule that looks fine at the weekly level can fail every day at the same 2 hour gap. And those gaps rarely show up in a broad labour total. We can work needs careful treatment too. Saturday capacity can look attractive when demand pressure builds, but it may depend on temporary cover, limited maintenance support, reduced logistics activity, or a delayed quality release. You need to test which work can truly finish over the weekend and which work just waits until Monday for the next approved step. Temporary staff create a similar question. They can help with packing, material movement, basic assembly or work that follows a stable instruction. That can free up experience people for the constrained task. But the model shouldn't treat temporary staff as fully interchangeable from day one. All the work they can perform, the support they need, and the points where an experienced person must step in. This helps you avoid a common mistake, planning labour at plant level when the constraint sits at one operation. You can have enough people across the building and still miss customer dates because one inspection station lacks qualified cover for part of the shift. That's the coverage you need to test. Think about the result you actually want from the scenario. More output is one measure, but it may not be the right one. You may care more about late order risk, work released through final inspection, or the time needed to clear a backlog after disruption. A third shift that raises machine hours but pushes more work into a Monday morning queue may not improve service at all. Here's where simulation helps production and labour planning speak the same language. Instead of debating whether a shift should work, you can compare what each patent does to completed orders, queues, support load and recovery time under realistic conditions. You still need judgment, labour rules, safety limits, fatigue management and local agreements remain real constraints, not variables to optimize away. The model tests options inside those boundaries. It doesn't give permission to ignore them. And once the team starts changing schedules, another instinct often follows. If work keeps waiting, add stock between operations. That can protect the flow. It can also cover up the reason the flow needs protection in the first place. Buffers, protect flow, until they hide a problem. When a line starts missing pace, someone usually suggests more buffer, put more material before the process, release work earlier, keep extra stock nearby, just in case. That instinct comes from experience because buffers can protect flow when normal variation hits. It only helps when you know what risk they are meant to absorb and how much protection the process actually needs. A buffer can take several forms. It can be raw material held before the first operation, work in progress between two operations or finished goods held for customer demand. Sometimes the buffer is time. An order released early enough to absorb a normal delay. Sometimes it's spare capacity, where resource has enough room to recover after a stop. All of these create options when something doesn't go to plan. Consider two connected operations. The upstream process runs with small frequent interruptions. The downstream process needs steady feed and can't easily restart after it runs out of work. A controlled amount of work in progress between them can keep the downstream process running while the upstream team resolves a short problem. In that case, the buffer protects flow, but the buffer also changes what people can see. When work piles up between operations, the upstream team may keep reporting strong output while the downstream team struggles with old jobs, changing priorities, and parts that no longer match the schedule. The factory has more inventory, it doesn't automatically have more usable capacity. That distinction matters. Two little buffer can create starvation. A machine, line, or operator reaches the next task and finds nothing ready. The cause might be a late material move, an inspection delay, or a small upstream stop. The result is lost time at a resource that could otherwise run. Too much buffer creates another set of problems. Lead time grows because orders sit in wait. Cash stays tied up in work that can't ship yet. Many issues can stay buried inside a large queue, sometimes until the affected parts reach a downstream process days later. The pile may feel safe, it can also become a storage system for unresolved problems. This is why a universal buffer target rarely works. A few hours of work in front of one process may protect a sensitive constraint. The same amount in another area may only add waiting time, hide poor, release discipline, and consume floor space. The right answer depends on variation, recovery time, process sequence, and the consequence of a resource running short. Then let's you test those conditions instead of relying on a fixed rule. You can change the buffer size and then observe how the flow responds under normal operating variation. Does the downstream process run short-list often, does the queue stay within a limit the team can manage, do late orders fall, or do orders simply spend longer in the factory? Those are different outcomes. Release rules matter as much as physical stock. If planners release every available order early, the buffer may fill with work that has no near term paths through the next operation. It becomes harder to manage because urgent orders enter a queue already packed with less urgent work. A controlled release rule can work differently. It might release work only when material is ready. The next stage has capacity within a defined period and the order has a real chance of moving through the root. That doesn't mean the plant runs with no inventory. It means inventory has a job. Think of the buffer as protection with a purpose. For example, a buffer before a constrained process may absorb short variation upstream. A buffer after a quality release step may protect assembly from the timing of inspections. Finished goods may protect customer service where demand changes faster than production can respond. Each case needs its own reason, its own limit and a clear owner. Without those buffer decisions turn into habit. There is also a human side to this. Large queues can make daily priorities harder to trust. Operators see many jobs waiting, planners keep expediting, and supervisors spend time asking which pallet should move next. The lack's work, yet the wrong work can still arrive at the wrong point in the process. That is not flow. So when you test a buffer change, don't ask only how much stock should we hold? Ask where variation enters, which operation needs protection, how long recovery normally takes, and whether the buffer protects customer delivery or merely makes the backlog less visible. The model should show both sides. It should show when a smaller buffer starves a process and when a larger one creates longer lead times with no service gain. It should make the waiting visible, not treat every completed upstream operation as progress. Because sometimes the most expensive part in the factory is the one that has already been worked on, can't move forward, and nobody can explain why it's still waiting. The buffer before the bottleneck. Let me make this buffer question concrete for you. Picture an upstream machining cell feeding a heat treatment process. Heat treatment is the constraint step. It runs in batches, has a fixed operating calendar, and takes time to recover when a load, furnace, or quality check causes a delay. The machining cell can produce parts faster than heat treatment can accept them at certain points in the week, and that creates a familiar debate. One group once a large cube before heat treatment because the furnace must never sit empty. Another group once tighter work in progress limits because the queue keeps growing, priorities keep changing, and parts wait longer than anyone planned. Both positions can make sense. The answer depends on the flow. Suppose the machining cell produces batches through the day while heat treatment accepts work at defined loading times. If the queue before heat treatment is too small, a short stop in machining can leave the furnace waiting without a full approved load. The furnace loses time, and because it controls the pace of the route, the delay spreads to everything behind it. A buffer can protect against that, but now increase the buffer without changing the release rule. Planners release more work early. Machining keeps producing the area before heat treatment fills with pallets, and every pallet looks like progress because machining has completed its operation. Some of that stock may not be ready to run. A batch could still wait for a quality release, need a certificate for its material, carry a routing status that prevents it from entering heat treatment, or belong to a product family that needs a different furnace recipe than the one currently scheduled. Visible inventory and usable inventory are different things. A simulation model can represent that distinction. It doesn't only count pallets waiting in a physical area. It checks whether each batch has the material, quality status, route approval, and process condition needed for the next step. That changes the conversation from, do we have enough work in the buffer? Two, do we have enough released work that the bottleneck can actually process? Those questions lead to different decisions. In the model, you can test a smaller buffer with a strict release policy. Only work that has passed, the required checks can enter the queue. Then you can see where the normal variation upstream starves heat treatment, and how often that happens. Next, test a larger buffer under the same demand pattern. Watch whether the furnace remains supplied more often, but also watch queue age. If parts wait for days, you may protect furnace use while damaging lead time and due date performance. A full queue doesn't mean healthy flow. Machine needs attention too. Machining may not have space to put completed work. The machining cell then stops even though the machine operator and material are ready. That stop isn't caused by a machining problem. It comes from the next step being unable to absorb the output. This is why the model needs both sides of the bottleneck. It needs to show when heat treatment becomes starved because upstream cannot provide released work. And also when upstream becomes blocked because heat treatment cannot accept more work. Those two states can alternate during the same week, priority adds another layer. Say an urgent customer order enters the plant after a queue has already built before heat treatment. The order may have a close due date, but it may not match the recipe currently planned for the furnace. Do you interrupt the campaign except more setup and process risk or let the urgent order wait behind lower priority work that already fits the next load? There isn't a universal answer. A simulation can compare the choices. It can test the customer impact of preserving a stable campaign against the effect of inserting the urgent batch. It can show whether the urgency really protects the shipment or whether another missing component means the order cannot finish anyway. That stops expediting from becoming a reflex. You can also test the release policy itself. Perhaps work should enter the buffer only when the next heat treatment slot sits within a defined time window. Perhaps the buffer needs separate limits by product family or recipe rather than one shared pile of work. Maybe a small protected space for urgent orders prevents them from fighting with normal production. Each rule changes how the constraint behaves. The purpose isn't to find a perfect buffer size that stays fixed forever. Demand changes, product roots change and process reliability changes. The purpose is to understand how much protection the bottleneck needs, what type of work belongs in that protection and where the queue begins to hurt more than it helps. That becomes even harder when the product mix changes because average capacity assumptions break down very quickly once different products compete for the same constrained process. Product mix changes the factory you think you know. A factory can receive the same total demand this month as last month and still behave like a different factory. That happens when the mix changes. Total units may look stable in the ERP plan while the load on machines, people, tools, inspection and shared support shifts in ways that a simple capacity total cannot explain. Think about two product families moving through the same plant. One family has high volume, a stable root, short cycle times and few change overs. The other family has lower volume, but longer machining time, more setups, a higher inspection load and a tighter need for a skilled operator. All in order are not always ten orders. If demand moves from the first family toward the second, the plant may produce fewer finished units even though the order count barely changes. The bottleneck may run longer, the shared fixture may become harder to schedule. Quality may receive more first off checks and more complex inspection work. The people who know the difficult setup may spend their week supporting one process rather than covering several. That's why average capacity can mislead you. A broad plan may say the machining area has enough hours for the monthly demand. It may even use a sensible average cycle time across the whole product range. But averages smooth out the very differences that create pressure. They turn a mix of easy and difficult work into one imaginary product that nobody actually builds. Production doesn't run imaginary products. Let's make this practical. Say a plant normally produces a high volume of standard components. They move through a familiar root, use common tooling and fit well into a repeatable sequence. Then a customer changes the demand profile. Standard demand falls, but several lower volume variance rise. The total number of units stays close to the plan. And paper, nothing dramatic happened. On the floor, the team now changes tools more often, runs more first off checks, waits for different material and needs more inspection time for each batch. A machine that seemed lightly loaded through an average capacity view now spends much more of its calendar in setup and approval. The pressure comes from the mix, not from volume alone. Scrap and rework can also change with mix. A stable mature product may run with predictable yield, a complex variant, a newer design or product with tighter tolerances may create more rework or more time in quality review. If that family grows, the downstream load changes, even if the original machining time does not. You can't treat every completed operation as the same amount of future work. Shared resources expose this quickly. A special fixture might support several product families, but only one job can use it at a time. A skilled programmer may need to approve a revised process. A test stand may handle a limited range of products, while another test stand accepts only the standard range. The resource map changes when the mix changes. That's why a good simulation needs product level differences where those differences affect the decision. It should know that one product family takes longer at a bottleneck. It should know that another family needs a special tool, a different root or an extra quality step. It should represent the conditions that alter flow. You don't need to model every part number from day one. Start with families that behave differently. Group products where they share similar roots, run times, setup needs, material risk and inspection demand. If 20 part numbers all follow the same path with near enough the same constraints, one family model may be enough for the first capacity test. But don't group products just because their descriptions sound similar. A small design change can put a part into a different process world. It may need another machine, another fixture, a longer test or an operator with a different approval. The sales description might still call it the same product family. The factory may experience it as a separate workload entirely. That difference needs a place in the model. The point isn't to produce a perfect catalog of every product. The point is to capture the mix drivers that change the result. Which products consume the constrained resource? Which ones create long setups? Which ones compete for a rare tool or skilled person? Those are the questions behind the capacity number. Once you test the expected mix, test a few plausible shifts around it. What if demand for the complex family rises faster than expected? What if the standard product drops? Removing the long production runs that normally absorb setup time? What if urgent customer orders arrive mainly from the family that already creates the most pressure? The result may show that your current capacity plan works for the total volume, but only for the mix you assumed. That's a much more honest answer than saying the plant has enough hours. It also changes how you talk about demand with commercial teams. Instead of only asking for volume forecasts, you can ask for the expected mix by family and the range of changes production needs to handle. Sales does not need to become a scheduling department. But production needs a view of demand that matches the way work consumes factory resources. This can connect the dots between IT and OT in a very practical way. ERP holds the demand signal. MES history can show the actual effort and root behavior by product family. Quality and maintenance data may reveal where certain products create extra load. A simulation model brings those facts into a test of how the flow behaves when the mix changes. Microsoft Fabric can help bring that data together later, but data collection alone won't answer the question. The model still needs the product process resource links that explain why one order consumes a very different amount of factory time than another. And once different products compete for the same equipment and people, the order in which you run them starts to matter just as much as the volume you plan. Sequence matters more than average load. When different product families start competing for the same equipment and people, average load stops telling you the whole story. Two schedules can use the same number of machine hours in a week and still produce completely different results for output, due dates and overtime. The difference almost always sits in the sequence. Picture a machining area handling several related product families. On Monday, the planner groups similar jobs together, so the machine stays on the same fixture longer, the same tools stay in place and operators avoid repeated setup work. That makes the weekly load look manageable because the machine spends more time cutting parts and less time changing over. That schedule may work well for efficiency, but it could still push an urgent order past its customer date. Now take the same demand, the same people, the same total hours, but sequence the work by due date. The urgent jobs move first. Customer dates might improve for a few orders, but the area changes between product families more often. Setup time grows, tool changes rise and first off checks appear more frequently. By Thursday, the machine has used the same weekly hours but completed less total work. Both schedules look reasonable if you only look at average load, this is where planning turns into a real trade off. Grouping work into campaigns can protect capacity. A campaign means running related products together before changing the machine, toolset, process settings or material. In some processes, that's not simply a preference. Cleaning, validation or a long changeover can make frequent switching impractical. But campaign logic can also make work way too long. A job with an early due date might sit behind a larger batch of less urgent work because it belongs to another family. The planner can reduce changeovers and still lose service performance. Meanwhile, pushing every urgent job to the front can create a factory where everything becomes urgent, setups consume the calendar and nobody can predict when the normal work will run. That's not a planar problem, it's a rule problem. Now here's where assimilation becomes useful. You put those rules under the same demand pattern and compare the outcomes. One scenario might group by product family wherever possible. Another could use due date as the main rule. A third might apply customer priority, but only when material is ready and the job can move through the next stages without creating a new blockage. The rules decide the behavior. Material readiness needs a place in sequencing as well. There's little value in moving a work order to the front of a queue if a bought in component, approved material or a required tool still isn't available. A schedule can look responsive while repeatedly reserving time for work that cannot start. With dispatch logic checks whether a job is truly ready. Some plants need fixed campaign runs because of process conditions. Paint lines, furnaces, chemical processes and complex cleaning steps may need a controlled sequence to avoid long resets or quality risk. In those cases the question isn't whether campaigns are good or bad, it's how much delivery risk the campaign rule creates and whether a controlled exception can protect an important customer commitment. You want to test the cost of that exception before the order arrives. Consider two schedules with identical weekly load. Material one runs long campaigns and achieves fewer changeovers. Schedule two interrupts the campaigns for selected urgent orders. The second schedule may use more setup time but it could avoid several late shipments or it may only move the delay because the urgent order still wait later for test inspection or a matching assembly component. The model can show the full effect, not just the first machines calendar. This also gives planners a safer way to challenge old habits. Maybe the team has always grouped by family because setups used to take most of a shift. If setup time has improved, the old campaign rule may now delay orders more than it protects capacity or perhaps due date dispatch worked when the product range was simple but the current mix now creates too many changeovers. Rules need testing when conditions change, I wouldn't expect the model to replace the planner's judgment. Planners see customer relationships, supplier concerns and local conditions that may sit outside the formal schedule. But simulation can make the recurring choices visible. It can show how a queue rule affects setup time, throughput, order lateness and the pressure passed to the next operation. That gives judgment a stronger starting point. Before changing planner behavior, run the current sequencing rule as a baseline. Then test the proposed rule against the exact same orders, calendars and resource limits. Keep the comparison fair. If one rule only looks better because it received a kind of demand pattern, you haven't learned much. The sequence should earn its place through the outcomes it creates. And even a well chosen sequence can fall apart when normal factory disruption enters the week. A plan without disruptions is a demo. A schedule can look perfect when every machine runs, every delivery arrives on time and every operator shows up as planned. That schedule belongs in a demo. Real production includes interruptions and most of them aren't dramatic. A machine stops for a sense of fault. A tool reaches the end of its life earlier than expected. Material arrives at the gate but waits for incoming inspection. A batch moves into a quality hold. Someone with a rare qualification calls in sick, an urgent order arrives and suddenly changes the day's priorities. You don't need to assume disaster. You need to include normal factory life. If you test a capacity increase only under ideal conditions, the answer will almost always look good. Add a shift, add a machine, reduce the cycle time and the model produces more parts. But the factory already knows how to look good on a quiet day. The decision needs to survive the days when conditions are less kind. That's where the simulation earns its place. Start with the disruptions that production teams recognize. Not every exception belongs in the first model. You're looking for events that occur often enough or hurt enough to change the decision. A short machine interruption may matter a lot at the constrained process. The same interruption on a resource with spare time may barely affect the customer date. Location matters. For each disruption describe three things. How often does it occur? How long does it usually last? And what rule does the factory follow once it happens? Think about a machine stop. The model doesn't need a mythical average breakdown that treats every failure as identical. Instead, it can represent a pattern people recognize. Short stops that happen regularly, along with less frequent longer repairs. Recovery also needs rules. Can maintenance respond on every shift? Does the machine need a qualified restart? Does quality need to release the first part after a repair? A machine doesn't return to normal just because the alarm disappears. Late material needs the same care. The ERP plan may show an expected receipt date, but the order only becomes usable when the material arrives, passes the checks it needs and reaches the point where production can consume it. If the missing item belongs to one product family, the scheduler may switch to another job. That sounds simple until the alternate job needs a different setup, fixture or worker. The recovery action creates its own effect. Quality holds can change the flow in a less visible way. A batch may finish an operation and appear as produced yet it cannot move because somebody needs to review the result. If the hold clears quickly, a buffer may absorb it. If it extends into the next shift, the effect can reach assembly, test, packing or shipping. The model should represent the hold where it blocks the route. Operator absence often gets simplified too much. Removing a percentage from the labor plan doesn't tell you which tasks can no longer happen. The more useful question is which approvals, setups, checks or recovery actions lose coverage when that person isn't there. That gives you a scenario people can act on. Tool issues belong in the same group. A warn cutter, missing fixture, calibration problem, or unavailable test device can delay work even when the main machine has time. These events might sit outside the machine state data, which is one reason a model needs input from the people who run the process, not only timestamps from systems. The factory contains more constraints than the event log can name. Once you describe plausible disruptions, test the plan under them, run an expected case where normal variation occurs at a manageable level, then run a strained case where a few ordinary problems arrive close together. You can also test a severe but still believable case such as a longer outage at the constrained resource while a material delay affects an urgent order. Don't call that pessimism, call it preparation. The question isn't whether every bad event can be prevented. It can't. The question is whether the proposed plan has enough room to recover. Does the extra shift still improve customer delivery after a short stop? Does the larger buffer protect the constraint? Or does it only create more aged work when quality holds a batch? Does the new sequence provide a sensible fallback when material fails to arrive? A good plan has recovery paths. This also changes how you read efficiency. A plan that fills every hour with productive work may deliver the highest output in the ideal case. Yet if one interruption turns it into a week of expediting overtime and missed dates, it may be more fragile than a plan with modest recovery room at the right point. The model can expose that difference before the shop floor pays for it. Keep the result honest. Simulation doesn't tell you that a machine will fail at 10 past 11 on Thursday. It tells you how a chosen operating model tends to behave when failures, delays and holds occur within the ranges you consider credible. That is a much better question than pretending certainty. When a scenario performs well only if nothing interrupts it, you haven't found an efficient plan. You've found a plan that depends on luck. When one machine goes down, a constrained machine stops for three hours in the middle of the day. Nobody needs a simulation to tell you that three hours of loss production hurts. But the harder question is what the rest of the factory should do while that machine is down. Because the best local response can still create a worse result for customer orders. Picture a resource that runs a part family with a tight route. Several orders already wait in its queue. Some belong to customers with near due dates and others still need the same inspection station, a special tool and assembly capacity after machining. Then the alarm comes in and the machine stops. The first choice is to wait. Maintenance works on the fault, the queue stays where it is, and the planner protects the schedule as much as possible. That can make sense when the repair has a known short duration, and the work behind the machine can still recover within the shift or through approved overtime. But waiting consumes recovery room and that room doesn't come back. The second choice is re-sequencing. The planner looks for orders that don't need the failed resource right now, or for work already ready at another operation. That keeps people busy and stops a wider part of the route from running dry. But it can also pull tomorrow's work forward, leaving less flexibility after the machine returns. You haven't removed the pressure. You've just moved it through time. Then there may be an alternate route, maybe another machine can process some of the affected parts. Before treating that as an answer, the model needs to ask practical questions. Is the alternate machine approved for this process revision? Does it have the fixture program and tooling? Is a qualified operator available on that shift? Can quality accept output from that route without another delay? An alternate resource only counts when the full route supports it. Suppose it can run the work but at a slower rate. Moving the urgent orders may still protect a customer date, but at the same time the alternate machine might displace other work that had its own deadline. It may also feed the same inspection station, creating a queue that wasn't visible when everyone focused on the breakdown. That's why a machine outage is never only a machine problem. A simulation can take the orders already released. Their due dates available material, approved routes, labor cover and downstream limits, then compare the choices. One case waits for the repair. Another moves selected orders. A third uses overtime after the machine returns, and a fourth accepts a delay for lower priority work to protect the orders that still have a real path to shipment. The results need to stay tied to the whole flow. You might find that moving every possible order to the alternate machine creates the most activity, but does little for customer delivery, because final inspection becomes overloaded. Or you may find that leaving a small group of jobs in place and moving only one product family protects more shipments with less disruption. More movement isn't always better recovery. Material status matters during the outage too. A job may look ready in the queue, but a required bought-in component might arrive later, or its material certificate may still wait for approval. If the planner moves that job into the alternate machine slot, they lose scarce time that another truly ready order could use. The model needs to distinguish planned work from runnable work. Inspection limits can decide the outcome as well. After repair, some processes need a first off check before regular production resumes. If the inspection team cannot respond until the next shift, a three hour equipment stop may become a longer production stop. The same applies when an alternate route needs extra verification before parts can proceed. That's the sort of detail that changes a recovery plan. There's also a customer choice. Sometimes no option protects every order. The model can show which promise breaks under each response, how much work moves, and where recovery capacity disappears. Then the production lead planner and commercial team can make a conscious call instead of discovering the effect after the data's passed. A late order is bad enough. A late order nobody wants the customer about is usually worse. The point isn't to automate a breakdown response from a distance. People close to the work still need to judge safety, machine condition, quality risk, and customer priority. Simulation gives them a tested set of options with the constraints visible. That matters because a three hour outage rarely arrives alone. Its effect depends on the other variation already moving through the factory. Simulation should use ranges not pretend certainty. A factory model should never pretend it knows the future down to a single number. You might run a scenario and hear that the proposed shift pattern will produce exactly a certain number of completed orders with a precise lead time and no late work. That can sound reassuring, especially when someone needs to approve a budget or defend a plan. But factories don't operate on fixed cycle times, fixed repair times, fixed yields or fixed attendance. They operate inside ranges. A machining operation may usually finish within a narrow time band, but material condition, toolware, setup quality, and the product variant can shift that time. A maintenance repair may take a short period when the fault is familiar and the spare parts sits in stores. The same fault can take longer when diagnosis takes time or support isn't available on that shift. The model should reflect that spread, yield works the same way. A route may normally produce acceptable parts at a predictable rate, but not every batch follows the average. If you model yield as perfect, you remove rework and scrap pressure from the plan. If you use one fixed yield value, you may still hide the difference between a normal week and a difficult one. The point isn't to make the model gloomy. It's to give the decision an honest shape. Think about incoming work. Customer demand may arrive in uneven patterns. Material receipts may arrive early, late, or in partial quantities. Absence can affect a general work area very differently from a constrained operation with only one person approved for a task. A plan needs to handle the variation that the factory already sees. So instead of asking what will happen, I'd frame the question differently. Under expected conditions, what result is likely? Under strained conditions, where does the pressure appear? And under a severe but believable combination of events which customer commitments or internal targets become exposed? Those are decisions you can use. An expected case might use normal demand, normal operating time, and the usual range of small interruptions. It gives you a view of how the proposal behaves when the factory runs in a broadly familiar way, not in an imaginary perfect week. Then build a strained case, maybe demand, includes more of the difficult product family. Maybe a repair takes longer than usual, while a quality hold delays one batch. Maybe an absence removes qualified coverage for part of a shift. None of those conditions needs a disaster plan. They are ordinary sources of pressure that can arrive close together, and that's usually when a weak plan reveals itself. A severe case should still stay plausible. Don't invent a sequence of failures that nobody has seen and then reject every change proposal because the model produces chaos. Use events the team recognizes, then combine them in a way that tests, whether the proposed operating model has recovery room. The scenario should challenge the plan, not rig the result, because variation includes chance one run doesn't tell you enough. Run the same scenario many times with different draws from the cycle time, repair time, yield arrival and absence ranges. In some runs, the week may flow well. In others, ordinary variation may stack up at the wrong time. That spread tells a better story than one answer. You may find that an extra shift clears the backlog in most expected runs, but creates a growing queue in a meaningful share of strained runs because inspection cannot keep up. Or a new machine may reduce late orders on a normal demand, but only if a trained operator and shared fixture remain available. Now you can see the conditions behind the result. This is where scenario outputs need careful language. Don't present one number as a promise. Present a range, the assumptions behind it and the trade-offs. You might say that a proposal improves the expected outcome, but delivery risk rises when a given resource loses coverage or when demand shifts toward a harder product family. That gives decision owners something real to discuss. Confidence also needs a practical meaning. It doesn't mean the model has somehow removed uncertainty. It means the team understands the input ranges, has checked the model against normal behavior, and knows where the result becomes sensitive to an assumption. A sensitive assumption deserves attention. Perhaps the recommendation changes completely if a repair takes longer than the maintenance plan assumes. Perhaps the result depends on quality release during a late shift. Those are not flaws to hide. They tell you where a small improvement in process knowledge, staffing cover or operating rule could reduce risk. The model becomes a way to find fragile assumptions before they turn into real disruption. And there's a temptation at this point to ask an AI system for the best answer. That can be useful in the right place, but a language model shouldn't invent certainty around a schedule, a safety rule, or a customer promise. Where industrial AI fits and where it doesn't. So you're probably wondering, can AI just figure out the best production plan for me? It can help, but here's the thing. AI covers a bunch of different kinds of work. And when you lump them together, you get trouble fast. Industrial AI can spot patterns in machine signals that point to abnormal behavior. It can classify quality notes, pull data from supplier documents, find demand patterns, or let a planner ask a plain language question instead of digging through reports. Those are solid practical uses, especially when the data is governed and the question stays sharp. But a simulation model and an optimization engine do a completely different job. They work with explicit rules. They need to know which machine can run which operation, how long setup takes, whether a tool is available, which operator has approval, and what has to happen before a part moves to the next step. They test the effect of choices against those constraints. That's not a limitation. That's the whole point. A language model can help someone explore what a scenario actually means. It might answer which assumption drives most of the late order risk, or which product family puts the most load on final inspection in the strained case. If it can access approved scenario results and model facts, that makes analysis a lot faster for people who don't live inside the planning system all day. But the model still provides the answer space. Think about a co-pilot style assistant in the setting. It should not get a vague prompt like fix next week's schedule and then invent a plan from incomplete data and general knowledge. Production schedules contain safety rules, process approvals, labor agreements, customer commitments, and local constraints that can change our shift. Those rules need a controlled source, a better patent looks like this. The simulation and scheduling tools run approved scenarios using known inputs and clear constraints. The results show possible outcomes, risk ranges, queues, resource load, and customer data exposure. Then the AI assistant helps the planner understand those results, compare documented options, or produce a clear briefing for the production meeting. That keeps the roles clean. Generative AI works well with language, documents, explanation, and guided access to information. It can turn a maintenance note into structured data. It can search operating procedures. It can explain why a selected scenario performs poorly. Provided the reason actually exists in the model output or source data. What it should not do is create process facts just because a prompt sounds confident. Optimization tools work differently again. If you define the objective and the hard constraints an optimizer can search through tons of possible combinations of assignments, sequences, or resource choices. For example, it might look for a schedule that reduces late orders while respecting approved roots, finite capacity, shift calendars, and setup rules. That can be powerful, but it depends entirely on the rules you gave it. If the model treats an operator as qualified when they're not, the optimizer might produce a schedule that looks mathematically clean, but fails at the first shift handover. If it ignores inspection release, it may promise output that can't ship. An optimizer doesn't know which assumptions are wrong. It just follows them with impressive discipline. Computers are very good at being consistently wrong at scale. So I separate prediction, simulation, optimization, and generative AI instead of treating them like one thing. Prediction estimates what may happen based on past patterns. Simulation tests how the factory behaves under stated conditions. Optimization searches for a preferred option within those conditions. Generative AI helps people work with language and knowledge around the decision. Each has a place. There's another useful role for AI in simulation work. It can help identify model gaps. If historical data shows that a routing takes longer for a certain product family or that a queue grows after a specific quality event, analytics might point the team toward a rule they need to examine. Then people who understand the process decide whether that pattern belongs in the model, that judgment can't disappear. A planner may know that a customer order needs special handling. A maintenance lead may know that a repeat fault only occurs after a particular setup. A quality engineer may know a root change is pending approval. These facts may not sit neatly in a database, yet they can change the right decision. AI should help bring those facts into the discussion, not pretend they don't exist. As a Microsoft MVP, I spend a lot of time looking at where tools like Azure AI, Co-Pilot, Fabric, and Power Platform fit in an industrial architecture. They can connect the dots between IT and OT, give teams better access to information and support decision work. But none of them replaces the factory model. The model defines the relationships, constraints, and approve choices. AI can make that model easier to query and easier to explain. It can support a planner. It cannot take responsibility for releasing work into a real factory. Before putting AI near a production decision, ask a simple question, what does it actually know and where did that knowledge come from? If the answer is a mix of reports, notes, and whatever it can find, keep it away from schedule changes. If the answer includes controlled data, explicit rules, versioned assumptions, and human approval, it can become a useful part of the decision process. Now connect that to Microsoft. The first requirement isn't an AI prompt. It's a data foundation that teams can trust. Microsoft Fabric as a data foundation. If you want to test factory changes with any confidence, the model needs inputs people can trace. That starts with data from the systems that already run the business and the plant. Microsoft Fabric can provide a shared data foundation for that work. It can bring data from ERP, MES, IoT sources, quality systems, maintenance records, and labor systems into a governed environment where teams can prepare it, compare it, and use it for analysis. That sounds simple, but it rarely is. Your ERP might identify a work order one way. MES may record the same work through an operation record or production lot. Maintenance may know the machine by an asset tag that doesn't match the name used in the schedule. Quality may track a batch number while material data follows a supply a lot. Fabric can bring those records into one place, but it can't decide on its own whether they refer to the same real world thing. So the first job is data engineering. You need to extract the records, manage refresh timing, check data quality, and keep a trace back to the source. You also need rules for identities, time stamps, units, and status values. If one source means complete when machine processing finishes, while another means final quality release, a simulation fed by both needs to preserve that difference. Otherwise, the model starts with an argument about what happened. Think about the flow from the shop floor upward. A machine or PLC creates operational signals. MES records execution quantities and stops. ERP contributes demand, work orders, due dates, rootings, and material plans. Quality adds holes, inspections, and release status. Maintenance adds planned downtime, failure history, and repair activity. Fabric can bring those streams together so the team doesn't build every analysis from disconnected extracts and manually maintain files. That doesn't mean every signal needs to enter the simulation model. In fact, loading every available data point into a model usually creates noise and slows the work down. You need data that explains the decision you are testing. For a staffing scenario at a constrained cell, you may need shift calendars, skill coverage, routing steps, cycle time ranges, set up rules, current queue state, and downstream release limits. High frequency vibration readings from an unrelated asset might help a maintenance team, but they probably don't change that staffing decision. Use the data because it answers a question. Governance becomes part of this as soon as scenario results affect production planning. People need to know which routing version the model used, when the source data refreshed, which assumptions came from operational judgment, and who approved a change to the inputs. A model with unclear inputs can produce an impressive result and still create a bad decision. Fabric can support governed data access, managed pipelines, and a shared place for curated tables. But your organization still needs to assign ownership. Someone must own the root data, someone must own the resource calendar, someone must decide whether the quality status means a batch can move. Technology cannot settle those process responsibilities. Power BI fits naturally on top of this foundation, but its role needs to stay clear. You can use it to review the baseline. Inspect cycle time variation, downtime patterns, QAGE order lateness, and the data quality issues that affect the simulation. After a scenario runs, Power BI can help a planner or production lead compare the options. One view might show completed orders by scenario. Another might show where Q's build, which resource carries the load, or where late order risk rises under strained conditions. That makes the results easier to discuss, but Power BI does not simulate a factory. It reports and explores the data and outputs you provide. Microsoft Fabric does not generate routing logic, understand a worker qualification, or decide how a bottleneck responds to a release rule. Those behaviors need to come from the factory model and the people who understand the process. This distinction keeps the architecture honest. Fabric can become the data layer that connects the dots between IT and OT. It can support repeatable data preparation, control access, and a common view of source facts. As your services and integration tools may sit around it, depending on how data enters from plant systems and where the simulation engine runs. Yet bringing data together still leaves a harder question. When the model asks whether an order can move to another resource, it needs more than a table of orders and machines. It needs to know the relationships between the product, process, resource, worker, tool, material, and current production state. Digital Twin and Knowledge Graph for factory context. That missing layer often gets called a digital twin, even though the term gets used for everything from a 3D building model to a live machine view. For factory simulation, I use it in a more practical sense. A digital twin is a current model of the factory and all the relationships that let work move through it. It needs to know the present state, which orders are waiting, which resources can run, which materials have cleared the required checks, which tools are in use, and which workers have the approval for a given operation. But current state alone doesn't answer a planning question, because the model also needs the rules that connect those facts. Think about the question, can this order move to another machine? That sounds simple until you break it down. The part may need a certain process revision, the alternate machine may physically handle it but lack an approved program, a fixture might be required and already booked elsewhere, the order may need an operator with a named qualification, and even if the operation finishes, the next inspection step may only accept output from approved routes. Those links are exactly what a knowledge graph captures, a knowledge. Graph gives you a way to represent those connections clearly. It treats the factory less like a pile of separate tables and more like a network of connected facts. A product links to a process, a process links to one or more approved resources, a resource links to tools, capabilities, calendars, and maintenance state, a worker links to qualifications. An order links to its current route, material, due date, and quality status. That context turns a machine record into a production decision. Say the planner sees an order waiting at machine A. Without the graph, they might see two machines with similar names and similar rated capacity. With the graph, the model can test whether machine B supports the exact operation,

← APS Software vs. ERP: What's the Difference?Production Planning Software: When Does a Manufacturer Actua →