DDMRP introduction and Inventory Positioning

Posted by

MRP has been improving since the general availability of Planning Optimization. Demand Driven MRP (DDMRP) is clearly one of them. The next serie of posts will highlight the benefits of this new MRP which has been a great adventure for me exploring all of the setup embedded.

With traditional MRP, customers have faced some issues such as stockouts or overstocks, shortages, leat time, performance… If your customer is quite mature about his supply processes and knows about DDMRP those issues could be resolved.

Few example for improvements done thanks to DDMRP withing Dynamics :

  • Improved customer service (user consistently achieve 97-100% on time fill rate)
  • Lead time compression (Lead time reductions in excess of 80% have achieved in several industry segments)
  • Right-sizes inventory (Typical inventory reductions of 30/45%) are achieved while improving customer service)
  • Lower total supply chain cost (Costs related to expedite activity and false signals are largely eliminated)
  • Easy and intuitive (Planners see priorities instead of constantly fighting the confliction messages of MRP)

Source tech talk

If you want to know more what is exactly DDMRP as a supply chain business feature, there is plenty documentation available such as this one or this one.

Microsoft has followed the 5 steps described in the DDMRP institute which are :

  • Strategic inventory positioning– Identify decoupling points in the supply chain network. Decoupling points are specific points of your supply chain where you put an inventory buffer that you will monitor and replenish.
  • Buffer profiles and levels– For each decoupling point, identify the buffer sizes (minimum quantity, maximum quantity, and reorder point) and the reorder quantity.
  • Dynamic buffer adjustments– Adjust buffer levels, based on varying operating parameters or planned future events.
  • Demand-driven planning– Generate supply orders as they are required. These supply orders include manufacturing orders, purchase orders, and stock transfer orders
  • Highly collaborative and visible execution– Run the supply orders with the help of visualization.

We will see each of this 5 steps starting by the strategic inventory positioning.

Let’s start by activating the “DDMRP for Planning Optimization” feature. Planning Optimization has to be activated for running DDMRP so you will need at least a Tier 2 sandbox.

This feature adds functionality that enables Planning Optimization to support the principles of Demand Driven Material Requirements Planning (DDMRP). It builds on the functionality of the « Priority based planning for Planning Optimization » feature, so you must enable both features to fully implement DDMRP. This feature enables you to:

– Calculate the decoupled lead time of items.

– Specify decoupling points in inventory.

– Manage min, max and reorder for decoupling point items

-Create supply orders for decoupling points according to the specified values and prioritize them according to its net flow position

Where to start? Introducing Decoupling point

It’s a fact to notice that Microsoft Documentation has been improving a lot for the last couple of years. Even if it’s always useful to dig and go deeper by yourself to appropriate the feature, having a look at the tech talk and the lean doc is quite mandatory.

That being said, I must introduce the Decoupling point approach. It will be important to be familiar with that in the next explanations.

So, the decoupling point is basically occurring when the supply chain process change from push to put. Identifying decoupling point within a bill of material is important to prevent stockouts.

Inventories become decoupled from lead times when customer orders are placed into a queue in order of lead time, instead of being assigned to specific production runs. (source What is Decoupling in the Supply Chain? – Jay Group)



Now, let’s have an overview of what has been added.

First, a new menu is available in the Master Planning module, called DDMRP. We will discover all this later on.

A new coverage code value is available within coverage groups: Decoupling point. Actually, you will allocate this coverage group to every decoupling point item identified.

There is new field available under the DDMRP parameters, we will see them later on.

Regarding Item coverage, there is some new tabs : Buffer values, On-hand, and also new DDMRP fields visible in the screenshot above.

On the top, a new section is available for running some calculation and take actions : Buffer values.

Inventory Positionning

Let’s focus on Inventory Postionning, which aims to identify decoupling point for mitigating the bullwhip effect. Basically, a decoupling point is an item with a DDMRP coverage group allocated. It’s mostly a semi-finished product which should be available at any time.

You can consider some criteria to isolate decoupling items such as :

  • External variability (volatility, difficulty to find the appropriate supplier to source it)
  • Inventory leverage and flexibility (for example if the component is used in several BOM)
  • Critical operation protection (any item which is used on a critical operation, subcontract for instance, or with very specific skills required, or with only one resource eligible)
  • Customer tolerance time (customer place an order with a delivery date for yesterday for instance)
  • Sales order visibility horizon (linked with the previous point, no horizon available for customer order placements)
  • Market potential lead time (with again, short lead time)

The Decoupled lead time is taking into account the longest lead time to supply the item.

The Dynamics engine analyses the path for the whole item (every branch / node of the BOM) to calculate the longest lead time.

Here, I have setup one Finished Good item composed by a Semi Finished Good item and 2 components.

I’ve put some lead time on every items (I haven’t tested with lead time from Default order setting or Trade agreements so far).

For my Component COMP1, 5 days for instance.

For COMP2, I’ve put 4 days.

For the Semi Finished, I’ve put 8 days (SF1)

For the Finished Good, I’ve put 2 days (PF1)

For the first test, every item is under a requirement coverage group.

Under the item coverage group for the PF1 item, I’ve run the Calculated decoupled lead time and selected the appropriate bill of materials.

Go under Master planning > Master planning > DDMRP > Decoupled lead time to see the result. In fact, noting is clearly visible from the item covarge.

As you can see, the result of Decoupled lead time for the PF1 is 15 days, taking into account the max for the 2 components (5 days) + the SF lead time (8) + the PF lead time (2) = 15 days

By changing the SF1 item coverage with DDMRP value, let’s run again the previous calculation.

Note : it’s not possible to allocate any DDMRP coverage group directly to the item, this should be done at the item coverage level.

The result is quite different. As any decoupled lead time item should be available, the only lead time taken into account for the PF1 decoupled lead time is the production lead time for the PF1, which is 2 days only.

In fact, any DDMRP item (Decoupling point identified item) will be considered as always available, meaning no lead time will be require for it.

Pay attention, at that stage, I haven’t been able to make it work with production lead time but only purchase lead time (probably a bug as the feature is still on preview when writing this post).

One limitation is that route operations times are also not taken into account. I’ve tested it but so far it seems that lead time are only coming from item setup.

Decoupled lead time take into account any additional lead time linked to the item. So, if I add some security margin on the coverage group for instance:

By running again the calculation, the result is the following :

One additional day has been added to the Decoupled lead time.

That’s it for a start. In the posts to come, we will have a closer look at other DDMRP features.


Additional resources :


Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.