Balancing the need of high material availability with low inventory is tricky. Pull systems are a very good way to achieve this. But sometimes people argue with me that planning can be better if you use all the available information to create a production plan which then outperforms a pull system. In theory, this could work, but in practice it rarely does. After all, that is what conventional push systems are trying to achieve, usually with mediocre results. Let’s have a look.
The reason that we need inventory is primarily to decouple fluctuations. Other ways to decouple fluctuations are adjusting capacity (tough to do on short notice) and waiting (which always works, but often it is least desirable to let the customer wait). Often, inventory is simply the best choice to decouple short-term fluctuations. Of course, even better but much harder is to reduce fluctuations so you don’t have to decouple them afterward.
Your production system is also a potential cause of fluctuations. Leveling aims to reduce these fluctuations. However, breakdowns and other disruptions increase fluctuations. A bad production program can also increase fluctuations. In theory, there is another option to handle fluctuations: You could just run your production system in sync with the fluctuations.
For example, if your customer requires more products, you would not need inventory if you just happened to produce more of these products. If your customer requires less, you would not increase inventory if you just happened to produce less of this product. If the output of your production system is perfectly synced with the demand, you would not need any inventory and would still achieve 100% material availability.
If you are in production, you probably already see a lot of holes with this plan. I agree on this. But, just for the sake of understanding, let’s have a look at what would be necessary to make this perfectly synced production system a reality, and why it is not possible, or at least is possible only in a limited way.
The All-Knowing Production Planner
In theory you can imagine (or dream) of a perfectly synced production system, where each produced item would perfectly match the customer demand. One possibility would be a system where there are no fluctuations at all… which is a fallacy. In reality, every production system fluctuates, some more, some even more, and some even much more.
Another purely theoretical option would be to know all fluctuations beforehand and plan around them. You would know for every part sold when the customer would order it, you would know all machine breakdowns, all supplier delays, and anything that will happen on your shop floor way before it happens.
In this case, you could include all fluctuations in the production plan, ensuring that a part is completed exactly when you need it, not earlier or later. Inventory would only exist to be worked on, or if you decide to go for larger batches (i.e., you would not order every screw separately, but a box of 500 when you need the first screw, or you may have larger lot sizes due to changeover times).
Obviously, knowing all fluctuations beforehand is impossible. You are not an all-knowing god on the shop floor, and some fluctuations you simply do not know beforehand.
Foreseeable and Unforeseeable Fluctuations
Some fluctuations you know beforehand, others only after they hit you, and some you may not even notice. With some effort you can predict maybe a few more fluctuations, but it is impossible to know them all. The question is: Can you use your knowledge of foreseeable fluctuations to reduce the inventory level and produce closer to the customer demand, even if it is not perfect?
This is possible, albeit with limitations. It is done frequently, with a common example being seasonality. Seasonality is often decoupled by increasing and decreasing capacity. You can also decouple seasonality by increasing and decreasing demand (e.g., if you are using pull systems, increase the inventory target or the number of kanbans before the season, and reduce afterward). If you are working in production, I am pretty sure you have done something like this. Similar build-ups of inventory are also common for larger maintenance shutdowns, replacement of machines, or other foreseeable and major fluctuations.
And this brings me to a key point: Besides being foreseeable, these fluctuations are major. What about doing the same thing for smaller fluctuations by adjusting the production plan and capacity to have inventory for these smaller fluctuations? Sounds too nice to be true, right?
It is too nice to be true. While it is possible in theory, it quickly becomes more and more work for the planning. Instead of doing this two (seasonality) or three times (maintenance) for a product or line per year, you would have to do this weekly or even daily. This would be a lot of effort. Few planning departments would be prepared for this enormous increase in workload. In the extreme case, every product would be make-to-order for the predicted customer demand. This would be an immense workload. And you still would have to deal with the unforeseeable fluctuations. At one point, the reduction in inventory would simply no longer be worth the effort to do so.
Many ERP push systems try to calculate the schedule on the best available data, but still need safety buffers (time or inventory) for unforeseen fluctuations. Despite all that, they usually perform worse than pull systems. If you would try it, you would end up with a push system, having lots of work, and the unforeseeable fluctuations would still mess things up significantly (especially for job shops, where small fluctuations can have an enormous impact on the lead time).
If You Do It, Do It with Pull
There is one way out of this, which could be a good compromise between workload and impact. You do it with a pull system. A make-to-stock pull system is an (almost) automatic system to refill your inventory to the target level. The only thing you adjust periodically is the inventory level.
Well… adjust more often. Foreseeable fluctuations can be handled by increasing and decreasing the inventory level in your pull system. Increase or decrease the number of kanban to match the expected fluctuations. But again, this is not easy. If your pull systems are quite new, then put your effort on improving the stability of the pull system. Adjust only infrequently (maybe every quarter, or only twice per year for seasonality), even if you may have a sliver more inventory than bare-bones necessary. Because frequent adjustments of the inventory level are still quite a bit of work, albeit probably easier and definitely more stable than scheduling every single product.
If you have the planning capacity for more frequent adjustments, you could adjust more frequently. Or, you could put the effort into reducing fluctuations! Rather than addressing the symptoms by planning with the fluctuations, you could address the root cause and reduce fluctuations! Overall, I am not always convinced that a higher planning effort is worth a small reduction in inventory, but of course it depends on the details of your industry.
Sometimes software tools are sold with the promise to plan around the fluctuations. I believe this is an enormous effort and nevertheless has a high risk of stock-outs. If you really want to adjust to fluctuations, don’t do it for every part, but for short periods by adjusting the inventory limit of your pull system. This will be much easier and much more stable. But if you can, put your effort into reducing the fluctuations rather than managing them. Now, go out, reduce your fluctuations, or let your pull system take care of them if you are short on time, and organize your industry!