This post is part of a series about Demand-Driven MRP (DDMRP). After an introduction to DDMRP and a summary of why DDMRP is needed, I’ll now dedicate one post to each of the 5 DDMRP components, and what is lacking in standard SAP ERP for a basic DDMRP solution. The official DDMRP software compliance criteria, as defined by the Demand Driven Institute, can be found here, and we’ll come back to these criteria as we discuss our basic SAP DDMRP solution.
The Power of Decoupling
DDMRP attacks some of MRP traditional weaknesses (as discussed in part II) by building stock positions and hence decoupling the supply generation from each (nervous and often wrong) demand signal. I am not going to detail here the advantages of having these decoupling positions, but suffice it to say for now that they will allow you to (1) absorb variability and (2) compress lead times. The goal, as I see it, is to simplify the system by dividing it into smaller sub-systems, but in a way that ensures that you are still working towards a global optimum and not local ones.
Lead time compression (more about that below) will also allow you to do not depend on forecasts, switching from Push and Promote to Position, Protect and Pull.
Decoupled Lead Time
When talking about lead time for a manufactured part, we usually think of one of two things: either the time it takes to manufacture the part assuming all components are available (ie, the manufacturing lead time, in SAP some something like the sum of MRP2 fields in-house production time and goods receipt processing time) or, at the other extreme, the longest BOM path assuming no components are available (cumulative lead time). With the introduction of buffered (stocked) positions, it makes sense to think of an intermediate lead time: the longest BOM path, but assuming that stocked positions are available. DDMRP refers to this as the Decoupled Lead Time (DLT).
A quick example: for a certain finished product, we need 15 days to procure the raw materials, 5 days to manufacture a semi-finished product, and then 2 extra days to manufacture the final product. For the finished product the manufacturing lead time is then 2 days, and the cumulative lead time is 15 + 5 + 2 = 22 days. The LDT will depend on where you position your buffers: it could be 0 days (finished product is buffered), 2 days (semi-finished product is buffered), 7 days (raw materials are buffered) or 22 days (no buffers).
Criteria for Buffer Positioning
Ok, this is great, but where should I position my inventory buffers? That depends on several factoring, including:
- Customer Tolerance Time: How long is my typical customer willing to wait?
- Market Potential Lead Time: Lead time that would allow me to increase price or sales.
- Sales Order Visibility Horizon: How much in advance are sales orders received?
- External Variability: Is my demand subject do spikes? Is my supplier reliable?
- Inventory Leverage and Flexibility: Which common components will help me more in compressing lead times?
- Critical Operation Protection: Which operations in my routings should I protect to avoid starving?
So where can SAP help?
First, SAP will need to be able to calculate decoupled lead times. Provided you already have a field in your material master to define if it is a buffered material, this should be pretty straightforward with a function like CS_BOM_EXPL_MAT_V2. In SAP there is already a field called Total Replenishment Lead Time (MRP3) which can be used for ATP, and I would argue should be filled with the DLT in a DDMRP scenario; in standard SAP this field has to be maintained manually. This ability to automatically calculate DLT is the only thing that is mentioned as mandatory in the compliance criteria:
Our DDMRP solution should also be able to help with buffer positioning. Looking at the position criteria above, we can exclude 1 and 2, as this information should mostly come from the sales and marketing guys. The software could maybe help with 3 (comparing historical requested dates with order creation date), with 4 (maybe by analyzing demand standard deviation, and by comparing purchasing requested dates with actual goods receipt) and 6 (possibly checking convergent and divergent points in the routings, as these are usually good candidates, or maybe calculating resources with high utilization), but again in many situations this analysis can be done by the business in a relatively easy way.
This leaves us with criteria 5, and the idea here is that a common component that is used in several parts, and belongs to those parts longest unprotected BOM paths, is a good candidate for buffering. For this, DDMRP authors suggest the use of a Matrix BOM, which is just a table with parent parts as columns, and components as rows. The BOM for each finished product is exploded, and the table cells are filled with the number of times that a specific parent-component connection appears. Standard SAP only includes a where-used list, which is much less powerful; however, this BOM explosion and the creation of a Matrix BOM ALV report should be pretty straight forward.
The sky is the limit, of course, and you think of other useful tools in a more complete DDMRP solution. As we will see, the positioning of these buffers will influence the total inventory level. This advanced DDMRP solution could make a simulation of the impact on total inventory levels if a set of materials are flagged or unflagged for buffering. We could even go one step further, and make the software optimize inventory positioning considering a set of contraints (like customer tolerance time and maximum inventory).
- calculation of decoupled lead times is mandatory (and easy to develop in SAP);
- tools to help with positioning could be useful;
- tools for simulation and optimization could be available in a more advanced solution.
One final word to mention that we’ve been talking about manufacturing, but things should not be much different in a distribution scenario (but instead of BOMs, you’d have the lead times between the different warehouse levels). The same advantages (variability absorption and lead time compression) could be obtained when compared to a traditional DRP solution.
Next post is about component 2, Buffers Profiles and Levels: having already discussed where to buffer, we’ll now focus on how much to buffer.