Technical name
Secure dependencies


Beta License: LGPL-3 OCA/ddmrp Translate me on Weblate Try me on Runboat

Demand Driven Material Requirements Planning is a formal multi-echelon planning and execution method developed by Ms. Carol Ptak and Mr. Chad Smith.

DDMRP combines blended aspects of Material Requirements Planning (MRP), Distribution Requirements Planning (DRP) with the pull and visibility emphases found in Lean and the Theory of Constraints and the variability reduction emphasis of Six Sigma.

This method has five sequential components:

  1. Strategic Inventory Positioning. Answers the question “Given our system and environment, where should we place inventory to have the best protection?” and determines where should decoupling points of inventory be placed.
  2. Buffer Profiles and Levels. Determine the amount of protection at those decoupling points.
  3. Dynamic Adjustments. Allow the company to adapt buffers to group and individual part trait changes over time through the use of several types of adjustments.
  4. Demand Driven Planning. Allow to launch purchase orders (POs), manufacturing orders (MOs) and Transfer Orders (TOs) based on the priority dictated by the buffers.
  5. Visible and Collaborative Execution. These POs, MOs and TOs have to be effectively managed to synchronize with the changes that often occur within the “execution horizon.”

These five components work together to greatly dampen, if not eliminate, the nervousness of traditional MRP systems and the bullwhip effect in complex and challenging environments.

This approach provides real information about those parts that are truly at risk of negatively impacting the planned availability of inventory.

DDMRP sorts the significant few items that require attention from the many parts that are being managed. Under the DDMRP approach, fewer planners can make better decisions more quickly. That means companies will be better able to leverage their working and human capital.

Demand Driven Material Requirements Planning is quickly being adopted by a wide variety of leading companies across the world.

Some of the benefits reported by the DDMRP method include:

  • High fill rate performance
  • Lead time reductions
  • Inventory reductions, while improving customer service
  • Eliminate costs related to expedite
  • Planners see priorities instead of constantly fighting the conflicting messages of MRP

It is highly recommended to read the book ‘Demand Driven Material Requirements Planning (DDMRP)’ by Carol Ptak and Chad Smith.

Table of contents


We strongly recommend to uninstall procurement_jit (so deliveries related to Sales Orders aren’t automatically reserved) and to avoid to reserve stock for specific moves, buffers are in fact a reservation of stock. However, while reservation is discouraged, it is still available to be used, in case of reserved stock be aware that the buffer will be blind to this transfers and stock and you are bypassing the DDMRP reordering flow.


Scheduled actions

  • Go to Settings > Technical.
  • ‘DDMRP Buffer ADU calculation’. Computes the Average Daily Usage for all Buffers.
  • ‘Reordering Rule DDMRP calculation’. Computes the Qualified Demand, Net Flow Position, Planning and Execution priorities for all Buffers.

Decoupled Lead Time computation

The DLT is automatically computed by the system.

For manufactured products’ buffers just remember to provide and set properly the following information:

  • The Manufacturing Lead Time for the manufactured product. It can be found at the product form view under the tab Sales.
  • The Delivery Lead Time for the preferred vendor of a product. This is important for the products which are purchased and are components in any Bill of Materials.

For purchased/distributed products’ buffers the logic is simpler.

  • In the first place the system will look if there are Vendors for the product, if so it will use the Delivery Lead Time of the preferred one.
  • In case of absence of vendors, the Lead Time at the bottom of the Buffer form view will be used.


To easily identify were are you maintaining buffers in your Bill of Materials, you will need to first provide location information on the Bills of Materials.

  • Go to Manufacturing / Products / Bill of Materials and update the ‘Location’ in all the Bill of Materials and associated lines, indicating where will the parts be placed/used during the manufacturing process.
  • Print the report ‘BOM Structure’ to display where in your BOM are you maintaining buffers, and to identify the Lead Time (LT) of each product, and Decouple Lead Time (DLT).


To list the list of inventory buffers, go to one of the following: * Inventory / Master Data / Stock Buffer Planning * Inventory / Master Data / Reordering Rules

Buffer Profiles

Buffer profiles make maintenance of buffers easier by grouping them in profiles. Changes applied to the profiles will be applicable in the associated buffer calculations.

  • Go to Inventory / Configuration / Buffer Profiles.

The Buffer Profile Lead Time Factor influences the size of the Buffer Green zone. Items with longer lead times will usually have smaller green zones, which will translate in more frequent supply order generation.

  • Go to Inventory / Configuration / Buffer Profile Lead Time Factor to chan

The Buffer Profile Variability Factor influences the size of the Buffer Red Safety zone. Items with longer lead times will usually have smaller green zones, which will translate in more frequent supply order generation.

  • Go to Inventory / Configuration / Buffer Profile Lead Time Factor.

Usual factors should range from 0.2 (long lead time) to 0.8 (short lead time).

Product attributes

  • For manufactured products, go to Manufacturing / Products and update the ‘Manufacturing Lead Time’ field, available in the tab Inventory.
  • For purchased products, go to go to Purchasing / Products and update the Delivery Lead Time for each vendor, available in tab Purchase and section Vendors.

ADU Calculation Methods

The Average Daily Usage (ADU) defines the frequency of demand of a product in a certain location. It can be computed in different ways, which you can configure with ADU calculation methods as follows:

  1. Go to Inventory / Configuration / DDMRP / ADU calculation methods.
  2. Indicate a name, a calculation method (fixed, past-looking, future-looking or blended).
  3. Fill the corresponding period (past, future or both for blended method) to specify the length of period consideration (in days).
  4. Indicate the source of information: stock moves or demand estimates.
  5. If you use the blended method fill also the Past Factor and Future Factor.

If you do not have prior history of stock moves in your system, it is advised to use fixed method or start to work on future estimates. If you have past-history of stock moves, best use past-looking method or blended method.

The ADU is computed every day by default in a background job independently from the other buffer fields. This computation can be done with less frequency but it is not recommended to run it less than weekly or more than daily. Circumstantially, If you need to force the calculation of the ADU go to Inventory / Configuration / DDMRP / Run DDMRP and click on Run ADU calculation.

Known issues / Roadmap

The DDMRP roadmap and known issues can be found on GitHub.

Changelog (2020-07-01)


    • New setting Update NFP on Stock Buffers on relevant events.
    • New dedicated settings block. (#50) (2020-06-11)

  • [MIG/REF] Migration of module to v13 and refactor (added new dedicated model for stock buffer). (2019-02-21)

  • [ADD] New chart that depict information about the supply and demand ( displaying also de order spike threshold and horizon) for a buffer. (#40) (2019-01-29)

  • [IMP] Performance improvement of execution priority calculation and ADU. (#36)
  • [IMP] Use the minimum quantity to adjust the procure recommendation. (#37) (2018-08-31)

  • [IMP] Implemented Blended ADU calculation method. (#23) (2018-07-16)

  • Start of the history

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.



  • ForgeFlow


Other credits

The initial development of this module has been financially supported by:

  • Aleph Objects, Inc.


This module is maintained by the OCA.

Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

Current maintainers:

JordiBForgeFlow LoisRForgeFlow

This module is part of the OCA/ddmrp project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

0.0 / 5.0
based on 0 ratings

Python dependencies

Package Version Secured
freezegun 0.3.15
bokeh 3.5.0

Available languages

Language % translated
Spanish / Español
Italian / Italiano
Spanish (AR) / Español (AR)
French / Français
Indonesian / Bahasa Indonesia
Portuguese (BR) / Português (BR)