If last week’s post on multi-level BOMs was about the data structure a factory needs, this one is about the calculation that data structure was built for. MRP is what the BOM is for. Without it, the BOM is a parts list. With it, the BOM becomes a procurement plan.
I run MRP setup as part of every launch-factory onboarding at OEMup. The mechanics are the same everywhere — pumps, plastics, fabrication, food, chemicals. The thing that varies is the quality of the inputs. Half of MRP success is the algorithm; the other half is whether someone keeps the input data clean. This post covers both.
What is MRP, really?
MRP — Material Requirements Planning, formally defined in the ASCM / APICS CPIM body of knowledge — is the procedure that answers one question: given what we’ve sold (or expect to sell), what do we need to buy or build, and by when?
It does this by taking demand at the top of the BOM tree, exploding it down through every level, comparing the gross requirements against what you already have or have on order, and emitting time-phased recommendations to fill the gap.
The trick is that the answer is non-trivial. A 200-pump sales order in June touches 30+ raw materials, 8 sub-assemblies, 3 different lead times, and stock at 2 locations. No human can hold all of that in their head and get the order-release dates right. The Tuesday-morning Excel is a brave attempt; MRP is the right tool.
MRP (Material Requirements Planning) plans materials only. MRP II (Manufacturing Resource Planning) extends it to plan capacity — machine hours, labour hours, work-centre availability — and integrates with finance. Most modern manufacturing ERPs implement MRP II under the simpler MRP label. When we say "MRP" in this post, we mean MRP II as practised today.
The four inputs MRP needs
Get these four right and MRP works. Get any one wrong and the output is misleading at best, dangerous at worst.
Demand
Either firm sales orders (you have signed POs from customers and dispatch dates), or a sales forecast (your planner’s best estimate for the next 4-12 weeks), or both. Most SMEs use a hybrid: firm orders for the next 30 days plus a forecast for weeks 5-12.
Multi-level BOMs for every finished good in scope
Every product the demand signal references must have a clean, current BOM. If 30% of your SKUs have a "BOM in someone’s head" status, MRP will simply skip those during the explosion and you’ll under-procure. See last week’s BOM guide.
Current on-hand stock + open orders
Live inventory per item per location, plus a complete picture of what is already on order (open purchase orders not yet received) and what is in production (work orders releasing finished goods or sub-assemblies in the coming weeks). Stale inventory data is the single most common reason MRP recommends buying something you already have in the godown.
Lead time per item
How many calendar days between ordering an item and receiving it (for purchased items), or between releasing a work order and the finished sub-assembly being available (for in-house items). Lead time is what turns a flat shopping list into a calendar of order-release dates.
The five-step MRP run (worked example)
To make this concrete, let’s walk through one MRP cycle for a pump factory. Demand: 100 of the 1HP-CENT-V2 pump from last week’s BOM, due for dispatch on 15 August 2026. Today is 1 June 2026.
Step 1 · Gather the four inputs
The planner confirms: yes, 100 pumps on 15 Aug is a firm sales order (not a forecast). The BOM v2 from the multi-level-bom post is current. Inventory snapshot is taken at 9 am on 1 June. Lead times: castings 21 days, bearings 14 days, motor sub-assembly 60 days (imported), shaft from EN8 bar 30 days end-to-end (including machining).
Step 2 · Explode the BOM tree (gross requirements)
The system walks the BOM tree top to bottom. For 100 pumps, each line gets multiplied by the parent quantity and scrap factor. The leaves of the explosion (raw materials and bought-out items) are accumulated into a flat gross-requirement list:
| Item | Gross req | UoM | Notes |
|---|---|---|---|
| Casing-Top-Casting | 105 | pc | 100 × 1.05 (5% scrap) |
| Casing-Bottom-Casting | 105 | pc | 100 × 1.05 |
| Impeller-Casting | 108 | pc | 100 × 1.08 (8% scrap, older mould) |
| EN8-Round-Bar-25mm | 18.0 | kg | 100 × 0.180 |
| Bearing-6203 | 200 | pc | 100 × 2 |
| Motor-Sub-Assembly | 100 | pc | bought-out, imported |
| Bolt-M8x40-SS304 | 800 | pc | 100 × 8 |
| Washer-M8-SS304 | 1,600 | pc | 100 × 16 |
| Paint-Powder-RAL5010 | 8.0 | kg | 100 × 0.080 |
| Label-Pump-1HP | 100 | pc | |
| Carton-Pump-Small | 100 | pc | |
| Cutting-Fluid | 4.0 | L | 100 × 0.040 (both casing operations) |
This is what an Excel-based planner would have to compute by hand. For 100 pumps it’s tedious. For 200 SKUs across 50 sales orders, it’s impossible.
Step 3 · Net against on-hand stock and open orders
Gross requirements are not the same as what you need to procure. The system subtracts current on-hand stock and any open purchase orders or work orders already in the pipeline:
| Item | Gross req | On hand | Open PO | Net req |
|---|---|---|---|---|
| Casing-Top-Casting | 105 | 20 | 0 | 85 |
| Casing-Bottom-Casting | 105 | 15 | 0 | 90 |
| Impeller-Casting | 108 | 40 | 50 | 18 |
| EN8-Round-Bar-25mm | 18.0 kg | 22 kg | 0 | 0 |
| Bearing-6203 | 200 | 60 | 100 | 40 |
| Motor-Sub-Assembly | 100 | 10 | 0 | 90 |
| Bolt-M8x40-SS304 | 800 | 1,200 | 0 | 0 |
| Paint-Powder-RAL5010 | 8.0 kg | 3 kg | 0 | 5.0 kg |
Reading the table: we don’t need to buy any EN8 bar or M8 bolts (stock covers it). We do need 85 top castings, 90 bottom castings, 18 more impeller castings (40 in stock + 50 already on order leaves an 18-unit gap), 40 more bearings, 90 motors, and 5 kg more paint.
Step 4 · Time-phase by lead time
Now the calendar part. For each net requirement, the system works backwards from the demand date by the item’s lead time to compute the order-release date. Castings also need machining time (a 7-day in-house operation), so their effective lead time is casting lead time + machining lead time.
| Item | Net req | Lead time | Needed by | Order release date |
|---|---|---|---|---|
| Motor-Sub-Assembly | 90 | 60 days (import) | 5 Aug | 6 Jun (urgent) |
| Casing-Top-Casting | 85 | 21 + 7 days | 5 Aug | 8 Jul |
| Casing-Bottom-Casting | 90 | 21 + 7 days | 5 Aug | 8 Jul |
| Impeller-Casting | 18 | 21 + 10 days | 5 Aug | 5 Jul |
| Bearing-6203 | 40 | 14 days | 1 Aug | 18 Jul |
| Paint-Powder-RAL5010 | 5.0 kg | 10 days | 12 Aug | 2 Aug |
The needed-by dates above sit 10 days before the 15 Aug dispatch — a buffer for final assembly, QC, and packing. Notice the motor: with a 60-day import lead time and a needed-by of 5 August, the PO has to release on 6 June — five days from today. This is the kind of insight a Tuesday-morning Excel misses until it’s too late. MRP catches it the moment the sales order is booked.
Step 5 · Emit recommended orders
The system outputs a planner’s queue:
- 3 planned purchase orders: motors (90 pc, release 6 Jun, urgent), bearings (40 pc, release 18 Jul), paint (5 kg, release 2 Aug)
- 1 planned PO + 1 planned work order per casting type: the casting PO releases on 8 Jul to the vendor, and the machining work order releases internally on 29 Jul when castings arrive
- Skipped items: EN8 bar and M8 bolts — stock already covers the requirement
The planner reviews this queue, sanity-checks (maybe the motor vendor recently quoted 75 days instead of 60 — the planner updates the lead-time master and re-runs), and converts the recommendations to firm purchase and work orders with one click each.
Forecast vs sales-order driven MRP
The example above was purely firm-order driven. Real factories also use a forecast layer to cover the gap between the visible-orders horizon (next 30 days) and supplier lead time (longer for many items).
Typical Indian SME pattern:
- Weeks 1-4: firm sales orders drive MRP (high confidence)
- Weeks 5-12: sales forecast drives MRP (lower confidence, items with long lead times only)
- Weeks 13+: typically not planned at item level; long-lead-time items (imported motors, special castings) covered by a separate strategic-purchase plan
The MRP output flags forecast-driven recommendations differently from firm-driven ones so the planner can apply judgment. A forecast that moves 20% week to week shouldn’t trigger 20% swings in motor orders — the planner uses a smoothed signal or a min-max order quantity.
Five settings that decide if MRP gives you gold or garbage
Setting 1 · Lead-time master — the silent killer
The lead time stored in the item master is what MRP uses. If it’s a number from 2023 when your motor vendor was reliably 30 days and reality is now 60 days, every MRP run will under-time-phase by a month.
Pitfall: lead times drift quietly. Set a quarterly review where the planner compares MRP’s assumed lead time against actual receive-vs-order data from the last 90 days. Update the master.Setting 2 · Safety stock and reorder point
MRP can net against safety stock too — meaning "treat the first X units of on-hand as untouchable." Without safety stock, MRP will let your bearing inventory hit zero exactly when the order is due. With it, you keep a buffer for unexpected demand or vendor slippage.
Pitfall: safety stock set too high creates working-capital lock-up; too low and you get stock-outs. Start with 7-10 days of average consumption per A-category item; tune per item over 2-3 cycles.Setting 3 · Lot size and minimum order quantity
Many vendors won’t accept orders below a minimum (often a full pallet, drum, or coil). MRP needs to know the lot multiplier — if you need 5 kg but the supplier ships in 25-kg drums, MRP should recommend a 25-kg order, not 5 kg.
Pitfall: forgetting the lot size means MRP keeps recommending impossibly small orders that procurement has to manually round up. Painful and avoidable.Setting 4 · Planning fence (firm zone)
Most MRP systems let you define a "no auto-change zone" close to today — usually 7-14 days. Inside this fence MRP shows recommendations but won’t automatically modify existing orders. This stops MRP from cancelling a PO that’s already at the gate of your factory because of a downstream forecast change.
Pitfall: no planning fence and MRP becomes a noise machine. Procurement loses trust within 2-3 weeks.Setting 5 · What "on hand" actually means
Does "on hand" include reserved-for-other-orders stock? Stock in QC-hold? Material on the shop floor that’s technically issued but physically still there? The wrong definition makes MRP recommend buying material you can’t actually use.
Pitfall: define an "available to promise" view that excludes reserved, QC-hold, and issued-but-not-consumed inventory. Use it as the MRP input, not raw on-hand.Why your Excel-based MRP is quietly lying to you
I’ve seen the Tuesday MRP Excel at probably 30 Indian factories. They all do roughly the same thing: a list of demand items, a column of stock, a calculated “need” column, a manual lead-time lookup. Three things break:
- Stock is stale. The Excel was populated Monday evening; the godown shipped out 40 castings Tuesday morning before the planner opened it. Every recommendation is 40 castings off.
- Multi-level explosion is wrong or absent. Excel either flattens the BOM to one level (under-counting sub-assembly components) or maintains a separate Excel for each sub-assembly (inevitably out of sync). The "200 pumps need 200 motors" arithmetic works; "200 pumps need 218 impeller castings after scrap and the 40 impellers we already have built" does not.
- Open POs and in-flight work orders are invisible. The planner remembers some of them; not all. So MRP keeps recommending to buy 100 bearings while a 100-bearing PO is already in transit.
The result is procurement that’s either over-buying (working capital wasted, godown bursting) or under-buying (line stops because a ₹3,000 part wasn’t ordered in time, holding up a ₹3-lakh dispatch). Both are common. Both are MRP problems hiding as procurement problems.
If your planner spends a full day per week building this Excel, you don’t have an MRP — you have a planner doing MRP’s job by hand. The cost is not the Excel; the cost is the planner’s time and the imprecision that creeps in week after week. A real MRP run takes 30 seconds and produces a better answer.
How OEMup runs MRP (and what we tuned for SMEs)
Off-the-shelf MRP from a global ERP is over-engineered for an Indian SME of 50-200 people. We tuned two things:
- Default planning fence at 7 days. Sensible for most SMEs; configurable per item for long-lead-time materials.
- Visual variance flagging. Items where MRP recommends an order that’s significantly different from the historical pattern get highlighted — the planner can spot a data-entry error before approving a 3x-larger-than-usual PO.
For most launch factories we onboard, an MRP run replaces three days of monthly planning (and the senior planner’s wrist-pain from Excel) with a 30-minute weekly review. The planner stops being a calculator and starts being a judge — which is the right job for a person. The MRP module is included in every OEMup plan, configured as part of the standard onboarding.
See an MRP run on your real BOM — in 20 minutes
Bring a sample BOM and one open sales order. We’ll set up the items, run the explosion, net against a sample inventory, and show you the recommended PO queue live on the call.
Book a Demo →The bottom line
MRP is not exotic. It’s the basic arithmetic that turns a multi-level BOM and a sales order into a procurement plan. The hard part isn’t the math — the math takes milliseconds. The hard part is keeping the four inputs (demand, BOM, stock, lead time) clean enough that the math produces a trustworthy answer.
If you have a multi-level BOM (covered last week) and live inventory data, you have 80% of what MRP needs. The remaining 20% is the discipline to update lead times quarterly, keep open orders linked, and define safety stock per item. Those are operating habits, not software features. The software just makes them possible.
Companion reads: Multi-Level BOM Explained for the data foundation MRP runs on; How to Migrate from Tally to a Manufacturing ERP for getting your masters into a system that can run MRP; Job Work and ITC-04 for the GST side of sub-contracted sub-assemblies.
FAQ
What is MRP in manufacturing?
Material Requirements Planning — the calculation that turns demand (sales orders or forecast) into recommended purchase orders for raw materials and work orders for in-house sub-assemblies, using your multi-level BOMs, current inventory, and supplier lead times.
What inputs does MRP need?
Four: demand, multi-level BOMs, current on-hand stock plus open orders, and lead time per item. Any one being wrong corrupts the output.
How often should I run MRP?
Weekly is right for most Indian SMEs. Daily is overkill unless lead times are very short or demand is volatile. Always re-run after a large order is booked or cancelled.
What is the difference between MRP and MRP II?
MRP plans materials only. MRP II adds capacity (machine hours, labour) and finance integration. Most modern ERPs implement MRP II under the simpler MRP label.
Can I run MRP without a multi-level BOM?
No. MRP works by exploding the BOM tree from finished good to raw materials. A single-level BOM gives you a procurement list, not an MRP.
What is time-phasing?
Computing the order-release date by working backwards from the demand date using each item’s lead time. A 60-day-lead-time motor needed on 1 August must release on 2 June.
Why does my Excel-based MRP keep being wrong?
Three reasons: stock is stale, multi-level explosion is wrong or absent, and open POs / work orders are invisible to the spreadsheet. An ERP-based MRP reads live data and explodes BOMs natively.