1. What is MRP?
Material Requirements Planning (MRP) is a time-phased planning method that answers four questions for every item a company makes or buys:
What do we need?
How many do we need?
When do we need them?
When must we order or start production so they arrive on time?
MRP was formalised by Joseph Orlicky in the 1970s (Orlicky, 1975) and became practical with the spread of computers in manufacturing. Today it is the core calculation engine of virtually every ERP system (SAP, Oracle, Microsoft Dynamics, Odoo, etc.).
Dependent vs. independent demand
The key idea behind MRP is the distinction between two kinds of demand:
Independent demand: demand for finished products, set by the market (customer orders, forecasts, spare parts). It cannot be calculated; it must be forecast or taken from orders.
Dependent demand: demand for components, sub-assemblies and raw materials. It is derived from the demand for the parent item through the Bill of Materials. It can, and should, be calculated, not forecast.
Reorder-point methods treat every item as if its demand were independent and smooth. For components of assembled products demand is typically lumpy (zero for weeks, then a large batch when a production order starts), and statistical methods perform badly. MRP exploits the known structure of the product to calculate exactly what is needed, and when.
2. Inputs and outputs
MRP is a computation with three main inputs and a handful of outputs.
Inputs | Content |
|---|---|
Master Production Schedule (MPS) | Time-phased quantities of each end item to be produced (from customer orders + forecasts, after Sales & Operations Planning). |
Bill of Materials (BOM) | Hierarchical structure of the product: which components, in what quantity, at which level. |
Inventory/item master records | On-hand stock, scheduled receipts (open purchase/production orders), allocated stock, lead time, lot-sizing rule, safety stock, scrap/yield factors. |
Outputs | Use |
|---|---|
Planned order releases | When to launch purchase orders (buy items) or work orders (make items). |
Planned order receipts | When the goods are expected to be available. |
Action (exception) messages | "Expedite", "de-expedite/postpone", "cancel", "release now". |
Pegging | Link from a component requirement back to the parent orders that generate it. |
3. Essential terminology
Term | Definition |
|---|---|
Lead time (LT) | Elapsed time between placing an order (or releasing a work order) and having the item available. For purchased items: order processing + supplier production/queue + transport + receiving and inspection. For manufactured items: queue + setup + run + move + wait time. In MRP it is a planning parameter, usually fixed per item. |
Cumulative lead time | Longest path through the BOM, summing lead times from raw material to end item. It is the minimum time needed to build the product from scratch, and drives how far ahead the MPS must be frozen. |
Gross requirements (GR) | Total demand for an item in a period, before considering stock (from the MPS for end items; from parents' planned order releases for components). |
Scheduled receipts (SR) | Quantities already on order (open POs or work orders) with a known due date. |
Projected on-hand (POH) | Expected inventory at the end of each period. |
Net requirements (NR) | Quantity that must be covered by new orders: GR minus available stock and scheduled receipts, plus safety stock. |
Planned order receipt / release | Quantity of the new order and the date it should arrive (receipt) or be placed (release = receipt shifted back by the lead time). |
Safety stock (SS) | Buffer inventory held to absorb uncertainty in demand, supply and lead time. |
Reorder point (ROP) | Inventory level at which a replenishment order is triggered in a continuous-review system. |
Lot-sizing rule | Policy converting net requirements into order quantities (lot-for-lot, fixed quantity, EOQ, etc.). |
Low-level code (LLC) | The lowest level at which an item appears in any BOM. MRP processes items level by level, so an item is calculated only once all of its parents have been calculated. |
Planning horizon / time fences | The length of the plan (must be at least the cumulative lead time) and the periods in which changes to the MPS are frozen or restricted. |
Time bucket | Period of the plan (typically one week; daily for fast environments). |
4. The Bill of Materials and requirements explosion
4.1 The BOM structure
A multilevel BOM is a tree. The end item is at level 0; its direct components are at level 1; their components at level 2, and so on.
A (level 0) - end item
├── 2 × B (level 1) - sub-assembly
│ └── 3 × D (level 2) - purchased part
└── 1 × C (level 1) - purchased part
The number next to each item is the quantity per parent (usage factor). Note: if the same component appears in several places in the tree, its low-level code is the deepest level. For example, if D is also used directly in A, it still has LLC = 2, so MRP will calculate D only after both A and B are done and can sum all the demand for D in a single pass.
4.2 The explosion logic
"BOM explosion" means translating the requirements of a parent into requirements for its components. For each component i of parent p:
Gross requirement of i in period t = Σ over all parents p [ planned order release of p in t × quantity-per of i in p ] + independent demand for i (e.g. spare parts)
Two details are essential:
The explosion uses the parent's planned order releases (not its receipts), because components must be available when the parent's order starts.
Adjust for yield/scrap: if a process has 95% yield, the quantity-per is divided by 0.95.
Phantom items (transient sub-assemblies that are never stocked) are "blown through": their components are treated as direct components of the parent, with zero lead time.
4.3 The processing order
Start at level 0: net the MPS against inventory, determine planned order releases for end items.
Explode the releases to level 1 gross requirements.
Net level 1 items, size lots, offset by lead time, obtain their releases.
Repeat down to the lowest level.
Purchased items (leaves of the tree) generate purchase requisitions; manufactured items generate work orders.
5. The MRP record: netting, lot sizing, offsetting
For each item and each period t the system builds a grid.
Step 1: Netting
POH(t) before ordering = POH(t−1) + SR(t) − GR(t)
NR(t) = max(0, SS − POH(t) before ordering)
If projected on-hand would fall below the safety stock (SS), a net requirement is created for the shortfall.
Step 2: Lot sizing. The planned order receipt is set by the lot-sizing rule (section 8), and POH is updated:
POH(t) = POH(t) before ordering + Planned receipt(t)
Step 3: Lead time offsetting
Planned order release(t − LT) = Planned order receipt(t)
If the release date falls before today, the order is past due: the plan cannot be met without expediting, reducing lead time, or reallocating stock. These are the cases that exception messages highlight.
6. Worked example (with BOM explosion)
Product structure (from section 4.1): A = 2 B + 1 C; B = 3 D. We trace A → B → D (C is analogous).
Item | Type | LT | On hand | Safety stock | Lot-sizing rule |
|---|---|---|---|---|---|
A | Manufactured, end item | 1 week | 20 | 0 | Lot-for-lot |
B | Manufactured | 2 weeks | 50 | 10 | Lot-for-lot |
D | Purchased | 1 week | 200 | 0 | Fixed lot of 250 |
No scheduled receipts exist. The MPS requires A: week 3 = 40, week 5 = 50, week 6 = 30.
Item A (level 0)
Week | 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|---|
Gross requirements | 0 | 0 | 40 | 0 | 50 | 30 |
Projected on-hand (after) | 20 | 20 | 0 | 0 | 0 | 0 |
Net requirements | 0 | 0 | 20 | 0 | 50 | 30 |
Planned order receipt | 0 | 0 | 20 | 0 | 50 | 30 |
Planned order release | 0 | 20 | 0 | 50 | 30 | 0 |
Check week 3: 20 on hand − 40 demand = −20, so net requirement = 20. With LT = 1 week, the order is released in week 2.
Item B (level 1): explosion of A's releases × 2
Week | 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|---|
Gross requirements (2 × A releases) | 0 | 40 | 0 | 100 | 60 | 0 |
Projected on-hand (after) | 50 | 10 | 10 | 10 | 10 | 10 |
Net requirements (incl. SS = 10) | 0 | 0 | 0 | 100 | 60 | 0 |
Planned order receipt | 0 | 0 | 0 | 100 | 60 | 0 |
Planned order release | 0 | 100 | 60 | 0 | 0 | 0 |
Check week 4: POH carried in = 10 (equal to the safety stock). Demand of 100 would give −90, and restoring the safety stock requires another 10, so net requirement = 100. Lead time of 2 weeks means release in week 2.
Item D (level 2, purchased): explosion of B's releases × 3
Week | 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|---|
Gross requirements (3 × B releases) | 0 | 300 | 180 | 0 | 0 | 0 |
Projected on-hand (after) | 200 | 150 | 220 | 220 | 220 | 220 |
Net requirements | 0 | 100 | 30 | 0 | 0 | 0 |
Planned order receipt (lot 250) | 0 | 250 | 250 | 0 | 0 | 0 |
Planned order release (PO to supplier) | 250 | 250 | 0 | 0 | 0 | 0 |
Check week 2: 200 − 300 = −100, so net = 100; the fixed lot of 250 covers it and leaves 150. In week 3, 150 − 180 = −30, so another lot is needed, leaving 220.
What the purchasing manager reads from this
Place a PO for 250 units of D now (week 1) and another for 250 units in week 2, each with a 1-week supplier lead time.
If the supplier's real lead time were 2 weeks, the week-2 receipt could not be met: the system would flag a past-due release and trigger an expedite request.
Because the plan is a function of the MPS, any change to the sales plan (e.g. 50 → 80 units of A in week 5) propagates automatically down to the purchase orders.
7. Safety stock, reorder point, and how they relate to MRP
7.1 Reorder point (continuous review)
For an item with roughly stable independent demand:
ROP = d̄ × L + SS
where d̄ is average demand per period and L the replenishment lead time. An order is placed when inventory position (on-hand + on-order − backorders) drops to ROP.
7.2 Safety stock
Under normal-demand assumptions and a target cycle service level:
SS = z × σ_LT, with σ_LT = √( L·σ_d² + d̄²·σ_L² )
z = standard normal quantile of the target service level (e.g. z ≈ 1.28 for 90%, 1.65 for 95%, 2.33 for 99%).
σ_d = standard deviation of demand per period; σ_L = standard deviation of lead time.
Note how lead time variability enters quadratically with demand: unreliable suppliers are expensive to buffer. For a purchasing manager, reducing σ_L (supplier agreements, consignment, shorter transport) is often cheaper than holding more stock.
7.3 When to use which
Reorder point | MRP | |
|---|---|---|
Demand type | Independent, fairly continuous | Dependent, lumpy |
Information used | Past consumption | BOM + MPS + current inventory |
Orders triggered by | Stock falling below a level | Time-phased net requirements |
Typical items | Finished goods / spares, MRO, C-class consumables, low-value bulk items | Components, sub-assemblies, raw materials for assembled products |
Inventory carried | Average includes cycle stock + SS at all times | Stock tends to be needed only when a parent order starts |
7.4 Using safety stock correctly within MRP
Safety stock in MRP is entered as an item parameter and is netted as shown in section 5. It should be used sparingly: the more levels hold buffers, the more inventory accumulates and the more distortion appears at the lower levels.
Preferred placement: on end items (demand uncertainty), on purchased parts with unreliable suppliers, and on common parts with many parents. Avoid buffering every intermediate level.
For dependent demand, safety lead time (ordering earlier than needed) is an alternative that protects against timing uncertainty instead of quantity uncertainty.
Do not double-count: if an item's demand comes from MRP explosion, do not also compute SS from a historical demand variance of that item. The variance of its demand reflects the lot-sizing of its parents, not customer uncertainty.
Hybrid approach: many companies run MRP for A-class and structured items and a reorder-point or min/max (Kanban) system for cheap, high-volume C-class parts (screws, packaging), which MRP would otherwise burden with planning effort.
8. Lot-sizing rules
Netting gives the requirement; lot sizing decides how to group requirements into orders. The trade-off is between ordering/setup cost S and holding cost h per unit per period.
Rule | Logic | Typical use |
|---|---|---|
Lot-for-lot (L4L) | Order exactly the net requirement in each period. | Expensive items, low setup cost, JIT environments. |
Fixed order quantity (FOQ) | Always order a fixed size (supplier pack, container, MOQ, truckload). | When imposed by supplier or process. |
Economic Order Quantity (EOQ) | Q* = √(2DS / h), where D is demand per period. Derived for constant demand. | Stable demand; approximate under MRP. |
Period Order Quantity (POQ) | Cover the requirements of a fixed number of periods; number ≈ EOQ / average demand. | Lumpy demand, simple to use. |
Silver-Meal / Least Unit Cost / Part-Period Balancing | Heuristics that extend the order until the average cost per period stops decreasing. | Lumpy demand. |
Wagner-Whitin | Dynamic programming; gives the optimal solution for a known demand profile and a finite horizon. | Benchmark; used where the cost structure justifies it. |
Important: lot sizing at a parent level enlarges and bundles the demand seen by its components (the lot-size amplification effect), so rules should be consistent through the structure. Also consider supplier minimum order quantities, price breaks and packaging multiples: these are the constraints purchasing managers deal with every day.
9. Using MRP for effective procurement
9.1 From plan to purchase order
Run MRP (regenerative, or net-change for daily updates).
Review the output: planned orders (not yet firm), exception messages, past-due items.
Convert planned orders into purchase requisitions and then into purchase orders within the buyer's lead-time window ("firming").
Communicate the forecast beyond the firm horizon to key suppliers: planned order releases are the best available view of future demand and enable suppliers to prepare capacity and material.
Close the loop: receipts update inventory; supplier confirmations update scheduled receipts; the next run reflects reality.
9.2 Working with action messages
Message | Meaning | Typical buyer response |
|---|---|---|
Release order | Planned order has reached its release date. | Convert to PO. |
Expedite / reschedule in | An open order arrives after it is needed. | Call supplier, split shipment, air freight, or find an alternative. |
Postpone / reschedule out | An open order arrives too early. | Postpone delivery to cut inventory. |
Cancel | An open order is no longer needed. | Cancel before the supplier incurs costs. |
9.3 Procurement levers that interact with MRP
Lead time management: MRP is extremely sensitive to the accuracy of lead times. Review them regularly against actual receipt data; do not inflate them "for safety" (see 10.3).
Supplier contracts: frame/blanket agreements and call-offs (the MRP plan generates the call-offs); vendor-managed inventory (VMI) and consignment for high-volume items.
Make-or-buy and multi-sourcing: split planned orders between suppliers using quota arrangements.
Consolidation: combine planned orders for the same supplier within a time window to cut transport and ordering costs, accepting the trade-off in holding costs.
Long-lead-time items: identify items whose lead time defines the cumulative lead time and manage them proactively (forecast-based pre-buying, strategic stock).
9.4 KPIs
On-time delivery by supplier (against confirmed date), actual vs. planned lead time, inventory turns, stockout/line-stop incidents, number of past-due and expedited orders, percentage of POs raised inside the lead-time window, forecast/MPS stability, and inventory record accuracy and BOM accuracy.
10. Common pitfalls
Data accuracy ("garbage in, garbage out"). MRP assumes the BOM, inventory records and lead times are right. Practitioners' guidelines commonly target roughly 98% BOM accuracy and 95% or higher inventory record accuracy (cycle counting is the usual tool; see Ptak & Smith, 2011).
Infinite capacity assumption. Basic MRP does not check whether machines or suppliers can deliver the plan. Closed-loop MRP and MRP II add capacity requirements planning (CRP/RCCP) to verify feasibility (Wight, 1984).
Lead time inflation. If planners add buffer to each lead time, longer lead times lead to earlier orders, more work-in-process, longer queues, and still longer actual lead times: a vicious circle documented in the "Factory Physics" literature (Hopp & Spearman, 2008).
System nervousness. Small changes in the MPS cause large changes in lower-level planned orders. Countermeasures: time fences, frozen windows, firm planned orders, and lot-sizing choices that dampen reaction.
Fixed, static parameters. Lot sizes, safety stocks and lead times must be reviewed periodically, not set once at implementation.
Ignoring the human side. Planners must understand why the system proposes an order (use pegging) and be able to override intelligently and record why.
11. Beyond classic MRP
Closed-loop MRP: adds feedback from shop floor and suppliers and capacity checks.
MRP II (Manufacturing Resource Planning): integrates MRP with finance, sales planning, and capacity planning (Wight, 1984).
ERP: extends integration across the enterprise; MRP remains the planning engine.
APS (Advanced Planning & Scheduling): finite-capacity, constraint-based optimisation.
DDMRP (Demand Driven MRP): places decoupled, dynamically sized buffers at strategic points of the BOM to reduce the nervousness and bullwhip effects (Ptak & Smith, 2016).
12. Practice exercises (for students)
Extend the worked example by adding C (1 per A, LT 2 weeks, on hand 30, L4L). When must the first PO for C be released?
Change the lot size of D to lot-for-lot and compare total orders placed and average inventory with the fixed-lot case.
A supplier has mean lead time 4 weeks, σ_L = 1 week; weekly demand averages 100 units, σ_d = 20. Compute safety stock for a 95% service level and the ROP. How much does SS fall if σ_L is reduced to 0.5 weeks?
Explain, with an example, why the same component appearing at two BOM levels needs a low-level code.
Discuss when you would manage a bolt (cost €0.02) with Kanban rather than MRP.