MRP demystified: what to make and what to buy
Bill of materials, gross and net requirements, stock, open orders and lead times, with a two-level example worked out step by step.
A large order comes in for delivery in six weeks. The plant manager says there’s plenty of material; purchasing says the melamine supplier takes three weeks; the warehouse finds half of what the system says is there. In week four the line stops for a component nobody ordered, while another input was bought twice and fills half the storeroom.
The fix for that mess has a technical name: MRP (material requirements planning). It isn’t software, it’s a method. This guide explains it with an example you can reproduce in a spreadsheet.
The pieces you need
- Bill of materials (BOM): which components, and how many, go into one unit of product. It has levels: the finished product is level 0, its direct components level 1, the components of those components level 2.
- Demand: confirmed orders and, if you use them, forecasts, with their dates.
- Available stock: what is physically there, minus what is already committed to other orders.
- Scheduled receipts: purchase orders already issued and production orders already in progress that will arrive before the need date.
- Lead time: how long a component takes to become available from the moment you order it or start making it.
- Safety stock and order lot: the minimum buffer you want to keep and the quantities your supplier sells in (boxes, multiples).
The formulas
Gross requirement of a component = net requirement of the parent × quantity per unit in the BOM
Net requirement = gross requirement − available stock − scheduled receipts + safety stock (if negative, it’s zero)
Release date = need date − lead time
The detail most often forgotten: a component’s gross requirement is calculated on the parent’s net requirement, not its gross. If you already have finished tables, you don’t need tabletops for them.
Step-by-step method
- Sort items by BOM level and start with level 0.
- Calculate the net requirement of the finished product with its dates.
- Explode the BOM: multiply that net figure by each component’s quantity to get its gross requirements.
- Net each component against its stock, scheduled receipts and safety stock.
- Round to the lot size for purchasing or production.
- Subtract the lead time to know when to release each order.
- Go down one level and repeat until you reach purchased inputs.
- Review the suggestions before turning them into orders.
A two-level example
Assume a furniture factory with an order for 200 tables due in week 6. The bill of materials (hypothetical figures):
- Level 0: table.
- Level 1: 1 tabletop per table (made in-house) and 4 legs per table (purchased).
- Level 2: each tabletop uses half a melamine board (purchased, in multiples of 10) and 2.4 m of edge banding (purchased).
Starting data:
| Item | Available stock | Scheduled receipts | Safety stock | Lead time |
|---|---|---|---|---|
| Table | 20 | 0 | 0 | 1 week (assembly) |
| Tabletop | 30 | 50 (order in progress) | 0 | 1 week (production) |
| Leg | 120 | 200 (arriving in week 3) | 0 | 2 weeks (supplier) |
| Melamine board | 10 | 0 | 5 | 3 weeks (supplier) |
| Edge banding | 300 m | 0 | 0 | 1 week (supplier) |
Level 0 and level 1
| Item | Gross | − Stock | − Receipts | + Safety | Net | Needed in | Release in |
|---|---|---|---|---|---|---|---|
| Table | 200 | 20 | 0 | 0 | 180 | Week 6 | Week 5 |
| Tabletop (180 × 1) | 180 | 30 | 50 | 0 | 100 | Week 5 | Week 4 |
| Leg (180 × 4) | 720 | 120 | 200 | 0 | 400 | Week 5 | Week 3 |
Notice that tabletops and legs are calculated on the 180 net tables, not on the 200 in the order.
Level 2
| Item | Gross | − Stock | − Receipts | + Safety | Net | Lot-adjusted | Needed in | Release in |
|---|---|---|---|---|---|---|---|---|
| Board (100 × 0.5) | 50 | 10 | 0 | 5 | 45 | 50 | Week 4 | Week 1 |
| Edge banding (100 × 2.4 m) | 240 m | 300 m | 0 | 0 | 0 | 0 | — | — |
The MRP output is five concrete decisions:
- Week 1: buy 50 melamine boards.
- Week 3: buy 400 legs.
- Week 4: make 100 tabletops.
- Week 5: assemble 180 tables.
- Edge banding: buy nothing; stock covers it.
Had the plant calculated “by eye” on 200 tables, it would have bought 800 legs and 100 boards. And if the 200 legs on their way arrived in week 6 instead of week 3, they shouldn’t count: a receipt only offsets the need if it arrives before the need date.
Why MRP suggests and a person decides
The calculation is mechanical; the decision isn’t. MRP doesn’t know that:
- The tabletop line is already busy in week 4 with another order (capacity).
- The leg supplier offers a better price if you buy 500.
- There’s a substitute material in stock that works just as well.
- Treasury can’t pay for that purchase this month.
- The customer might change the order and it’s worth waiting.
That’s why the MRP output is a set of suggestions: someone in planning reviews them, accepts the ones that make sense, adjusts the rest, and only then do they become production or purchase orders.
Common mistakes
- Outdated BOM: a design change that never reached the bill of materials ruins the whole calculation.
- Unreliable stock: if system inventory doesn’t match the physical count, MRP is calculating on fiction. Cycle counts are a requirement, not a luxury.
- Optimistic lead times: using the lead time the supplier promises instead of the one it actually delivers.
- Ignoring scrap: if cutting a tabletop wastes material, the BOM should include it with a scrap factor.
- Mixing units: the supplier sells boards and the BOM consumes square meters; without a clear conversion, quantities don’t add up.
- Exploding on the parent’s gross requirement: you double needs that stock already covered.
- Running MRP once a month: demand changes every week; the plan should too.
- Replanning everything every day: the other extreme. Freeze orders for the next few weeks and adjust only what’s further out.
Metrics to know if it’s working
- Stoppages due to missing material: how many times a month the line stops waiting for a component.
- Accepted suggestions: suggestions accepted ÷ suggestions generated. If it’s low, your master data (BOM, lead times, stock) doesn’t reflect reality.
- Inventory accuracy: items whose count matches the system ÷ items counted.
- On-time orders: production orders finished on the planned date ÷ total.
Taking it into a system
For a handful of products, a spreadsheet with these tables is enough. When bills of materials have several levels and orders change every week, an ERP like MKA can explode the recipe, cross demand with stock and propose what to make and what to buy, so you accept or reject each line (see planning and MRP).