Demand-Driven Replenishment in Odoo MRP#
Traditional min/max replenishment reacts to stock levels. Demand-driven MRP reacts to actual confirmed demand - creating purchase and manufacturing orders precisely calibrated to fulfill sales orders and production requirements on time.
How MRP Works in Odoo#
Manufacturing → Operations → Run MRP (or via scheduled action):
Odoo's MRP engine:
- Gathers all demand (confirmed sale orders, manufacturing orders needing components, manual forecasts)
- Subtracts available supply (on-hand stock + pending receipts)
- Identifies shortfalls (demand > supply)
- Generates replenishment proposals (purchase orders or manufacturing orders to cover shortfalls)
- Schedules proposals backward from the demand date minus lead time
Setting Up MRP Products#
Product → Inventory tab:
- Routes: Buy or Manufacture (determines whether MRP proposes a PO or MO)
- Lead Time: vendor lead time (for Buy) or manufacturing lead time (for Manufacture)
Product → Purchase tab → Vendors:
- Delivery Lead Time: 7 days (vendor takes 7 days to deliver after PO)
- Minimum Order Quantity: 100 units (PO suggestions are rounded up)
Running MRP and Reviewing Proposals#
Manufacturing → Operations → Run MRP → Replenishment tab:
For each product with a shortfall:
- Product: Widget Component B
- Demand: 500 units (from 3 sale orders)
- Available: 150 units
- Shortfall: 350 units
- Proposed: 400 units (rounded up to minimum order of 100)
- Proposed Date: 2027-10-25 (delivery needed) − 7 days lead time = order by 2027-10-18
Click Confirm → purchase order created automatically.
Multi-Level MRP#
For manufactured products with purchased components:
- Sale order demands 100 finished Widgets
- MRP computes: need 100 Widget BOMs → need 500 units of Component A + 200 units of Component B
- Check Component A stock: 300 on hand → need to purchase 200 more
- Creates PO for Component A: 200 units
This explosion happens automatically through all BOM levels.
Scheduling and Lead Time Accuracy#
MRP proposals are only as accurate as the lead time data:
- Vendor consistently delivers in 5 days but the profile says 7: proposals are 2 days early → excess inventory
- Vendor takes 10 days but profile says 7: proposals are 3 days late → stockouts
Update lead times quarterly based on actual performance data.
MRP Exception Reports#
After MRP runs, review exceptions:
Manufacturing → Operations → MRP → Messages:
- "Late demand": a sale order needs delivery before the proposed PO can arrive
- "Excess supply": stock levels exceed demand - consider delaying a PO
- "Component shortage on MO": an existing MO cannot be completed due to missing components
Address each exception before confirming MRP proposals.

