Skip to Content
Author's profile photo Rui Pedro Dantas

Demand-Driven MRP – Part IV: Buffers

This post is part of a series about DDMRP. Previously there was an introduction to DDMRP, a brief explanation of why DDMRP is needed, and a post about the first of the DDMRP components, inventory positioning. This post is about the second component, strategic buffers. I will, as usual, not go into all the detail about DDMRP buffers, but rather try to explain just enough to then discuss what would be needed in an SAP solution.

Strategic Buffers

For each decoupled part, we’ll use a certain buffering level. The total buffer will consist of 3 zones: green, yellow and red.

The way these zones ares used will be detailed later when we discuss demand driven planning. For now a brief summary of each zone should be enough:

  • The green zone is used for supply order generation. It determines order size and frequency.
  • The yellow zone is used for inventory coverage.
  • The red zone is used for safety purposes.

The size of each zone, and therefore of the total buffer, will be different for each part. This is accomplished in part by creating material groupings (buffer profiles), and in part by individual material traits.

Buffer Profiles

Parts are grouped according to its characteristics. It is suggested that you group them according to:

  1. Part type: manufactured (m), purchased (p), or distributed (d)
  2. Decoupled lead time: short (s), medium (m), or long (l)
  3. Supply and / or demand variability: low (l), medium (m), or high (h)

This is only a suggestion, as the actual profiles created depend on the nature of the business. According to the buffer profile a part falls on, we should be able to configure some factors that will later be used for buffer sizing:

  • a lead time factor: the longer the lead time, the smaller this factor. For example, 0.2 for long lead time, 0.5 for medium, and 0.8 for short.
  • a variability factor: the more variability, the higher this factor. For example, 0.25 for low variability, 0.5 for medium, and 0.75 for high variability.

Individual Part Attributes

The following attributes, which are also used for buffer sizing, are different for each part:

  • Average daily usage (ADU) – which can be past or forward looking, or a mix of these
  • Decoupled lead time (DLT) – calculated as explained in the previous post
  • Minimum order quantity (MOQ), if applicable

Calculating Buffer Zones

To calculate the buffer zones we’ll often use the average usage over the entire decoupled lead time (ie, ADU x DLT). Though there is no standard DDMRP name for this value, I will refer to it below as Lead Time Usage (LTU).

Each zone is then calculated as:

  • Green zone: LTU x Lead time factor. Exception: if MOQ is higher, use MOQ instead.
  • Yellow zone: LTU.
  • Red zone: sum of “red base” (LTU x Lead time factor) and “red safety” (variability factor x red base).

So now in SAP…

These are the official compliance criteria for this second component:


In SAP, material grouping could maybe be made via MRP controller or MRP group, or a Z field in the material master, and we would then need a Z table to configure the factors per grouping. Pretty straightforward for now.

For the individual part attributes, we already considered calculation of DLT in the last post, and MOQ (or minimum lot size) is a standard SAP field (MRP1).

Average daily usage (ADU) is somewhat trickier. We need first to configure how it should be calculated (for example, average of 4 weeks in the past and 2 weeks in the future). Past consumption could be calculated in a number of different ways, depending on how the system is configured: we could use the Logistics Information System, the consumption history (MVER) or even checking directly the material movements. For the future we’d have to look at existing requirements (both independent and dependent demand). ADU should be refreshed frequently, probably through a daily job, and it is import for analytics purposes to keep a history of each part’s ADU per day.

In summary:

  • (manual) grouping of materials and assignment of attributes to each of these groups (easy)
  • calculation of average daily usage (can be tricky when you think of the details, but far from rocket science)
  • automatic daily calculation of zone sizes per part, once we have all the required attributes (easy)

For now, then, implementation in SAP is quite easy, but it will get more difficult. There is still one post about manual buffer adjustments, before we really discuss how to use these buffers for demand driven planning.

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Saiteja Joginapally
      Saiteja Joginapally

      Hi Rui,

      I am new to DDMRP and I find your blog really helpful. I have a question though, the buffer zone sizes depend on the lead time factor and as per the logic mentioned, if the value of lead time factor is smaller for really long lead times, the size of the buffer will clearly be smaller (since Red Zone Base = ADU*DLT*Lead time Factor). Isn't it supposed to be the other way around? Shouldn't the buffer size be larger for parts having long lead time compared to those with shorter lead times? I really appreciate you for your time in helping me understand this.

      Thank you


      Sai Teja

      Author's profile photo Bharat Goswami
      Bharat Goswami

      Hello Sai Teja,


      You are right that the safety stock is smaller in case of higher lead time due to lower lead time factor. But think it in this way, you have many incoming orders in your inventory pipeline due to small green zone. As such, keeping smaller inventory can reduce total cost of supply chain.

      In case of lower lead time, the incoming orders are not frequent. As such the % safety stock compared to ordering quantity is higher.


      I hope this clears your doubt.


      Best regards,

      Bharat Goswami

      Author's profile photo Michele Carolina Bassani
      Michele Carolina Bassani

      Hello Rui, bom dia! 🙂

      Related to the buffer we have a customizing table to set the buffer profiles (this is also an app called Buffer Profile Maintenance). Do you have any documentation or experience in how to customizing this?

      for example the table PPH_BF_PRFLASG_V, for what the fields below are used and how to fill this table?

      Spike Horizon Constant (SHC)
      Spike Horizon DLT Multiplier (SHM)
      Spike Threshold Factor
      On-hand alert threshold factor

      Thanks a lot!!