SAP Insiders
Articles/SAP S/4HANA/Demand-Driven MRP (DDMRP) in SAP S/4HANA: Stop Pushing, Start Pulling
SAP S/4HANA

Demand-Driven MRP (DDMRP) in SAP S/4HANA: Stop Pushing, Start Pulling

A practitioner's deep dive into Demand-Driven Replenishment in SAP S/4HANA — the bullwhip problem it solves, the Position-Protect-Pull framework, the four classifications (ABC, PQR, XYZ, EFG) that feed the buffer profile, the red/yellow/green zones with full formulas, the net-flow equation that fires replenishment, and the Fiori-app workflow from product classification to real-time prioritised execution.

Demand-Driven MRP (DDMRP) in SAP S/4HANA — Position, Protect, Pull, with the buffer split into Green, Yellow and Red zones tied to maximum stock, reorder point and safety stock

A production planner runs the overnight MRP. A reasonable forecast goes in. By morning, a thousand purchase requisitions and planned orders come out — correct by the rule book, optimistic by reality. The supplier of one long-lead-time motor missed a shipment last week. A customer added two unscheduled orders. The forecast for next month was off by 8%. Each of those small bumps amplifies as it travels upstream until the supplier at Tier 3 is being asked to swing capacity by 40%. Just-in-case safety stock piles up everywhere. Working capital is locked up. The line still stops when one screw runs out.

This is the bullwhip effect — and classic MRP, however well configured, can't make it go away on its own. MRP pushes on forecast; the forecast wobbles; the wobble amplifies.

Demand-Driven MRP (DDMRP) is the answer. Built into SAP S/4HANA as Demand-Driven Replenishment (DDR), it's not a replacement for MRP — it's an extension that picks up the materials where forecast-driven planning hurts the most (long lead times, high variability, BOM convergence) and switches them to a pull model: strategic stock buffers at the right places, sized dynamically, refilled from actual consumption.

This guide walks DDMRP the way a planner uses it in S/4HANA — the philosophy, the math, the master data, the apps, and the day-to-day workflow.

What DDMRP is — in one sentence

DDMRP is a multi-echelon pull-based replenishment method that places strategically positioned, dynamically sized stock buffers at critical points in your supply chain — so upstream supply replenishes the buffers from real consumption, not the customer orders from a forecast.

Here is the whole concept in one frame. Use it as your map; the sections below expand each part.

Demand-Driven MRP (DDMRP) at a glance — one poster covering the whole concept. The problem: the bullwhip effect amplifies small demand swings up the chain. The big idea: Position-Protect-Pull at strategic decoupling points. How the buffer is sized in four formulas using Average Daily Usage, Decoupled Lead Time, lead-time factor and variability factor. Four classifications: ABC by value, PQR by BOM usage, XYZ by variability, EFG by lead time. The net flow equation: on-hand plus open supply minus qualified demand minus qualified spike. The five Fiori apps in order: product classification yearly, mass maintenance as needed, lead-time classification monthly, buffer proposal calculation daily, replenishment planning and execution real-time. The mental model: MRP pushes on forecast, DDMRP pulls on consumption.

The problem — the bullwhip effect

Long before DDMRP arrived, the supply-chain literature had a name for the pattern at the heart of the planner's problem: the bullwhip effect. A small variation in demand at the customer end becomes a giant variation by the time it reaches a Tier-3 supplier, because every link in the chain layers in its own forecast error, its own safety stock, and its own reorder timing.

The bullwhip effect — at the customer end demand swings are mild and steady; at the OEM the wave is a little bigger because the forecast adds error; at Tier 1 the swing is significantly larger as safety stock and reorder timing kick in; at Tier 2 and Tier 3 the wave becomes chaotic ordering with huge swings, even though customer demand never actually changed that much. Classic MRP pushes on forecast, so the noise amplifies up the chain; DDMRP places strategic buffers to absorb the noise.

Two consequences hurt the most:

  • Too much stock everywhere — every tier adds safety stock to protect against the variation it sees, but it sees inflated variation.
  • Stock-outs anyway — when the forecast is finally wrong in the other direction, the safety stock can't keep up because it was deployed for the wrong distribution of risk.

DDMRP doesn't promise zero variability — variability is inherent to supply chains. It promises to stop amplifying it by breaking the dependency chain at carefully chosen points.

The big idea — Position · Protect · Pull

The five formal components of DDMRP (per the Demand Driven Institute, codified by SAP in S/4HANA's DDR module) read as five steps; in practice they collapse into a three-word mental model:

  • Position — decide where in your supply chain you'll place buffers. You don't buffer everything; you buffer the parts where the bullwhip hurts most.
  • Protect — size and re-size those buffers. Each buffer has three zones (Red / Yellow / Green) calculated from Average Daily Usage, Decoupled Lead Time, and two factors derived from product classifications.
  • Pull — replenish from real consumption. The system tracks each buffer's net flow position; when it drops below the top of the Yellow zone, a supply order fires, prioritised by how deep it has drifted.

Plus two implementation steps that S/4HANA handles for you: dynamic buffer adjustments (the buffer re-sizes itself as ADU and lead time change) and visible execution (a colour-coded priority worklist the planner actually works through).

Push vs pull — DDMRP and MRP are complementary

This is the single most-misunderstood point: DDMRP does not replace MRP. In a typical S/4HANA plant, DDMRP runs on maybe 5–20% of materials — the ones at decoupling points — and MRP Live runs everything else.

Classic MRP versus DDMRP — push vs pull. Classic MRP is driven by forecast, PIRs and sales orders; it pushes by exploding the BOM and planning net requirements; buffers are static safety stock everywhere; best for stable demand, short lead times, accurate forecasts; lives in SAP at MRP Live (MD01N) with MRP types PD, M0/M1, VB/VM. DDMRP is driven by actual goods issues and Average Daily Usage; it pulls by replenishing buffers when net flow crosses a zone; buffers exist only at strategic decoupling points and are dynamic; best for volatile demand, long lead times, high-mix products; lives in SAP at Demand-Driven Replenishment with MRP type D1 and lot size H1.

Said another way: classic MRP pushes from a promise of demand (forecast). DDMRP pulls from evidence of demand (consumption). Most plants want both — DDMRP for the volatile/long-lead handful, MRP for the predictable majority.

Position — strategic decoupling points

The first practical question is where to put the buffers. Get this right and DDMRP earns its keep; get it wrong and you've just added safety stock under a fancier name.

Strategic decoupling points — same supply chain shown two ways. Without decoupling: every step is dependent so demand wobbles propagate all the way up the chain causing bullwhip and safety stock at every step. With decoupling: independent buffers at chosen points break the dependency chain so wobbles get absorbed by the buffer and upstream replenishes the buffer rather than the customer order. Where to put them: long upstream lead time, high BOM convergence (parts used in many BOMs — the P parts), customer service point like a distribution centre or finished-good warehouse, variable supplier with capacity constraints or unreliable lead time.

Four good rationales for putting a buffer at a particular SKU + plant:

  1. Long upstream lead time — if the parts feeding this node take weeks or months, buffer here so you can quote short customer lead times.
  2. BOM convergence — a part used in many BOMs (a "P" part in the PQR classification). Buffer once, serve all parents.
  3. Customer service point — a distribution centre or finished-goods warehouse where the customer expects off-the-shelf delivery.
  4. Supplier variability — a supplier with unreliable lead time, capacity constraints, or quality issues.

Real example. A centrifugal-pump manufacturer typically buffers three places: motor windings (12-week lead time from a specialist supplier), the impeller sub-assembly (used in every pump variant — a strong "P" part), and the finished pump at the distribution centre (the OEM customers expect 48-hour delivery).

DDMRP doesn't choose your decoupling points for you — that's a planner judgement informed by the classifications below.

Protect — the four classifications

S/4HANA gives you four out-of-the-box classifications to help identify candidates and size the buffers. The first three run together via the Schedule Product Classification (DD) app; the fourth runs separately because it depends on the first three.

Four classifications, two factors, one buffer. ABC by value uses goods-issue value and the Pareto principle — A items are high value, low quantity and are prime DDMRP candidates. PQR by BOM usage counts how many BOMs each part appears in — P items used in many BOMs are great convergence points. XYZ by variability uses coefficient of variation on actual demand — X is steady, Z is highly variable — feeds the Variability factor. EFG by lead time buckets the Decoupled Lead Time — E is short, F is medium, G is long — feeds the Lead-time factor. The factors go into the buffer profile maintained in table PPH_BF_PRFLDET_V per procurement type (Make, Buy, Transfer) with SAP defaults of 0.3 (Low/Short), 0.5 (Medium), 0.8 (High/Long).

In summary:

ClassificationWhat it measuresHow it's used
ABCGoods-issue value (Pareto)Find candidates — A items often warrant DDMRP
PQRBOM usage countFind convergence points — P parts shared across BOMs
XYZCoefficient of variation on actual demandFeeds the Variability factor in buffer profile
EFGDecoupled Lead Time bucket (short / medium / long)Feeds the Lead-time factor in buffer profile

The Decoupled Lead Time (DLT) is the key quantity behind EFG: it's the sum of the longest lead times of non-buffered products in a sequence headed by a DD-relevant product in the BOM. In English: how long it would actually take to satisfy demand for this buffered part if its own stock ran out. DLT is computed by the Schedule Lead Time Classification of Products (DD) app after the ABC/PQR/XYZ run, then stored on the material master MRP3 view as the Total Replenishment Lead Time.

Protect — buffer profiles and zones

Once a product is DDMRP-relevant and classified, its buffer profile decides the two multipliers used in the math. SAP ships defaults of 0.3 / 0.5 / 0.8 for Low/Medium/High variability and Short/Medium/Long lead time, separately for Make / Buy / Transfer procurement types. Most organisations tune these over months as they learn the rhythm of their supply chain.

The buffer itself is split into three coloured zones plus a fourth "overflow":

Buffer zones — four formulas size every DDMRP buffer. Stock level goes up the Y axis with Blue zone at the top for excess stock, then Green zone whose top is the maximum stock level, then Yellow zone whose top is the reorder point, then Red Safety zone whose top is the safety stock, then Red Base zone whose bottom is the stock-out line. Formulas on the right: Green equals max of Yellow times Lead-time factor, Minimum Order Quantity, or Average Daily Usage times Order Cycle. Yellow equals ADU times DLT. Red safety equals Red base times Variability factor from XYZ. Red base equals Yellow times Lead-time factor from EFG. Worked example with ADU equals 100 per day, DLT equals 20 days, XYZ is Z variability 0.8, EFG is F lead-time 0.5: Yellow is 2000, Red base is 1000, Red safety is 800, Green is 1000, Maximum stock is 4800.

The math, top to bottom:

  • Green zone = max( Yellow × Lead-time factor, Minimum Order Qty, ADU × Order Cycle ) — the replenishment zone. Receipts land in green.
  • Yellow zone = ADU × DLT — the working stock. The Top of Yellow is the reorder point.
  • Red Safety = Red Base × Variability factor — the variability cushion (driven by XYZ).
  • Red Base = Yellow × Lead-time factor — the lead-time cushion (driven by EFG).
  • Sum of all three = the Maximum stock level. Anything above is Blue zone (excess — review it).

The three coloured zones map directly to S/4HANA's familiar safety stock, reorder point, and max stock — DDR writes these back to the material master after the buffer-proposal job runs.

Pull — the net flow position equation

With buffers sized, the day-to-day question is simple: do we need to order this? DDMRP answers with one equation, calculated continuously, called the net flow position.

Net flow position — the signal that fires DDMRP replenishment. The equation is: Net flow position equals On-hand stock plus Open supply minus Qualified demand minus Qualified spike. Qualified spike explained on a timeline: today on the left, end of spike horizon at SHM times DLT plus SHC, future on the right. The spike threshold is a dashed line. An order below the threshold and inside the horizon does not count. An order above the threshold and inside the horizon is qualified and gets pulled forward. An order outside the horizon — whether above or below threshold — is ignored. Small wobbles smooth out via the ADU average; real spikes get treated as demand now.

The four ingredients:

  • On-hand stock — physically in your warehouse, unrestricted.
  • Open supply — purchase orders, planned orders, stock-transport requisitions in flight.
  • Qualified sales demand — sales orders due today.
  • Qualified spike — a future daily demand that lies above the Spike Threshold and within the Spike Horizon.

When the net flow drops below the Top of Yellow, the buffer fires a replenishment signal. The deeper it goes — into Yellow, into Red Safety, into Red Base — the higher the planning priority.

Spike horizon — why future orders sometimes count now

The spike machinery is the cleverest part of DDMRP. Average Daily Usage already smooths the day-to-day demand, but big future orders need to start replenishing now so the supply lands in time. The spike horizon is the window where they count:

Order Spike Horizon  =  (Spike Horizon DLT Multiplier × DLT) + Spike Horizon Constant

Inside that window, any future daily total above the spike threshold is "qualified" and subtracted from net flow today. Outside the window, even huge orders are ignored — they're either too far away to need supply yet (the next run will catch them) or they fit naturally into the ADU.

The thresholds and horizon constants are maintained per buffer profile in Buffer Profile Maintenance (table PPH_BF_PRFLDET_V / Fiori app from 1809).

Planning priority — the colour-coded worklist

The Replenishment Planning by Planning Priority Fiori app gives the planner the day's worklist, sorted by buffer penetration percentage — how deep the net flow has drifted into the zones:

Net flow positionZoneAction
Below Top of Red (very low)RedExpedite — risk of stock-out
Top of Red ≤ NFP < Top of YellowYellowCreate supply order
Top of Yellow ≤ NFP ≤ Top of GreenGreenNothing to do — monitor
Above Top of GreenBlueExcess — investigate

This list is the operational heart of DDMRP. A planner with thousands of materials needs to focus on the red rows first, then yellow — green rows are deliberately quiet.

The five Fiori apps — in the order you use them

S/4HANA splits DDR into configuration apps (run periodically to keep settings fresh) and operational apps (run continuously to plan and execute). The recommended cadence:

FrequencyAppPurpose
YearlySchedule Product Classification (DD)ABC + PQR + XYZ classification
As neededMass Maintenance of Products (DD)Mark products as DD-relevant; flip MRP type to D1
MonthlySchedule Lead Time Classification of Products (DD)EFG classification + Decoupled Lead Time
DailySchedule Buffer Proposal CalculationRecalculate Red / Yellow / Green
ContinuousManage Buffer LevelsReview and tune buffer settings
ContinuousReplenishment Planning by Planning PriorityPlan replenishment from the priority list
ContinuousReplenishment Execution by On-Hand StatusExpedite open POs / production orders
ContinuousMonitor Material CoverageReview what MRP Live did after the buffer changes

Configuration apps are scheduled as background jobs. Operational apps are the day-to-day tools the planner lives in.

Master data — MRP type D1 and lot size H1

Two material-master settings switch a material from classic MRP to DDR:

  • MRP type = D1 (planning procedure C) on the MRP 1 view. This marks the material as DDR-relevant and routes it through the buffer-based planning logic instead of net-requirements MRP.
  • Lot-size procedure = H1 (replenish to maximum stock level). With this lot rule, safety stock and reorder point become mandatory fields and the buffer proposal calculation writes them automatically.

When you flip a material to D1, classic MRP Live no longer creates net-requirement-driven planned orders for it. Instead, the DDR run creates supply orders to keep the net flow position above the top of Yellow.

You don't need to touch every MRP type by hand. The Mass Maintenance of Products (DD) app lets you select all products in a classification combination (e.g. all A × P × Z parts) and flip MRP type and lot size in bulk.

Configuration prerequisites

Before any of this works, three pieces of customising have to be in place:

  • Buffer profiles maintained per plant + procurement type in table PPH_BF_PRFLDET_V (transaction SM30) or the Buffer Profile Maintenance Fiori app (from 1809).
  • Buffer profile assignment + spike maintenance in table PPH_BF_PRFLASG_V — set the Spike Horizon Constant, Spike Horizon DLT Multiplier, and Spike Threshold per plant.
  • Classification thresholds for ABC (% of value), PQR (BOM count), XYZ (coefficient of variation), EFG (lead-time days) — configured as job parameters in the four classification apps.

A common mistake is to start the classification jobs before the buffer profiles exist — you can run the classifications, but the buffer-proposal calculation will fail or produce zeros.

When DDMRP fits — and when it doesn't

The honest version. DDMRP is not magic — and it's not free. It earns its place under specific conditions.

Strong fit:

  • Demand is volatile or seasonal; the forecast is regularly off by >10%.
  • Lead times are long (raw materials, supplier-far parts).
  • BOMs converge — a handful of parts feed many finished goods.
  • You can tolerate carrying a moderate strategic buffer (working capital is acceptable; the cost of a stock-out is high).
  • You have at least 6 months of clean consumption history for the parts you'll classify.

Poor fit:

  • Demand is stable and forecast is accurate — classic MRP is simpler and equally effective.
  • Make-to-order with no realistic stock position (you'd be buffering a per-order custom configuration).
  • Very short lead times end-to-end — there's nothing for the buffer to absorb.
  • Highly seasonal with unpredictable peaks and no historical signal — DDMRP needs ADU to be statistically meaningful.

The right answer is almost always hybrid: DDMRP on the materials where the bullwhip hurts (long lead, high variability, BOM convergence), MRP on the predictable rest.

Common gotchas

A short list, all from real DDR deployments:

  • Wrong MRP type left in place. A material with the right classification but still PD instead of D1 will be ignored by DDR and planned by classic MRP. Use Mass Maintenance.
  • Lot size not H1. Without H1, safety stock and reorder point won't be updated automatically by the buffer proposal job — your buffer math runs in pMRP-land while operative MRP still uses the old static values.
  • Buffer profile not defined for the procurement type. Default Buy/Make/Transfer rows are needed. Missing one → the buffer proposal job throws errors for that subset.
  • Spike Horizon Constant left at 0 (or 1) and DLT not yet known. Initially DLT isn't classified, so the spike horizon collapses to the constant. Run the EFG classification before relying on spike behaviour.
  • Forecast still being maintained as PIRs. DDR doesn't use PIRs in the net-flow equation, but PIRs left active will still drive classic MRP for that material if MRP type is wrong. Clean up.
  • Customer order does not change ADU. ADU is computed from historic goods issues over the averaging interval. Sales orders affect net flow through qualified demand and qualified spike, not through ADU.
  • Releasing the buffer proposals. The Buffer Proposal Calculation produces proposals. They become the active safety stock / reorder point / max stock only when adopted in Manage Buffer Levels. Auto-adopt is configurable per buffer profile.

Frequently asked questions

Does DDMRP need an Integrated Business Planning (IBP) integration? No — DDR in S/4HANA is standalone for the planning + execution side. IBP integrates upstream for tactical S&OP and demand sensing, but you can run DDR on its own.

How does DDR work with MRP Live? MRP Live still runs every night. Materials with MRP type D1 are handled by the DDR logic (not net requirements). Everything else is handled by classic MRP. Both write to the same operative plan.

Can DDMRP and pMRP coexist? Yes. pMRP is a simulation sandbox; DDR is operational. When pMRP releases a simulation, it can adjust both PIRs (for classic MRP materials) and buffer levels (for DDR materials).

Do I need a separate license? DDR was introduced with S/4HANA 1709 and is enhanced through subsequent feature packs. It's part of the standard SAP S/4HANA Manufacturing and Supply Chain licensing — verify with your account team for the current product condition.

What if I have very few historic goods issues for a new product? DDR depends on ADU statistics; for a brand-new material you'll see warnings on the buffer proposal. Manually seed the buffer for the first few weeks, then let the ADU build up.

Is DDMRP the same as Kanban? They share a pull mindset, but DDMRP is more sophisticated — three zones instead of one bin level, dynamic resizing based on classifications, multi-echelon awareness, and a system-driven priority list. Kanban remains useful for shop-floor pull within a cell; DDMRP plans the chain above the cell.

Key takeaways

  • DDMRP is an extension of MRP, not a replacement — used together: DDMRP for buffered critical materials, MRP for everything else.
  • The mental model is three words: Position · Protect · Pull. Pick the right decoupling points, size the buffer with formulas, refill it from real consumption.
  • Each buffer has three zones — Green / Yellow / Red — calculated from ADU × DLT and shaped by two factors: variability (from XYZ) and lead time (from EFG).
  • The net flow position = on-hand + open supply − qualified demand − qualified spike. Below Top of Yellow → order. The deeper, the higher the priority.
  • In S/4HANA, DDR is driven by MRP type D1 + lot size H1 plus the buffer profile table; managed via a sequence of Fiori apps (Classification → Mass Maintenance → Lead-time Classification → Buffer Proposal → Replenishment Planning / Execution).
  • DDMRP shines on volatile, long-lead, BOM-converging materials. On stable predictable items, MRP is simpler and equally effective.

The promise of DDMRP isn't "less inventory" or "no stock-outs" — it's the right inventory in the right places, decoupled from forecast noise, so when the chain wobbles the buffer absorbs the swing and upstream stays calm.