What MRP actually is
MRP — material requirements planning — is the calculation that turns what you have promised to deliver into what you must buy and make, and when. It starts from demand (released sales orders and plans), explodes the multi-level bill of materials to find the gross requirement for every component and raw material, nets those requirements against stock on hand and supply already on order, and outputs a time-phased answer: purchase requisitions for the bought-out shortfall and production demand for the items you make yourself.
Without MRP, planning is guesswork dressed as experience: the storekeeper buys what ran out last time, production discovers a missing bracket the morning it is needed, and working capital sits in material nobody currently needs. With MRP inside an integrated ERP, every requirement descends from a real order through a real BOM and is netted against real stock — so the purchase list is exactly the gap between promise and possession, no more and no less.
The three inputs MRP needs
MRP is only ever as good as its three inputs, which is why it belongs inside the ERP rather than beside it:
- Demand — the released Order Acceptances and the sales plan: what has been promised, in what quantity, for when.
- Structure — the multi-level BOM and BOR for each ordered item, including which lines are made and which are bought, with lead times from the item master.
- Supply — free stock on hand from the store ledger, plus open purchase-order quantities not yet received (pending = ordered − received on each PO line).
Notice that all three already live in the ERP: demand in sales, structure in the BOM, supply in stores and purchase. That is why an MRP run in Fast ERP needs no imports and no reconciliation — the calculation reads the same tables the transactions wrote.
Step one: the BOM explosion
The explosion walks the BOM from the ordered finished item downwards, multiplying quantities at each level. An order for 100 assemblies where each assembly carries 4 brackets generates a gross requirement of 400 brackets; if each bracket consumes 0.5 kg of sheet steel, the explosion carries on to 200 kg of sheet — level by level, down to raw material. Every figure it produces is traceable upwards: this sheet requirement exists because of that bracket, because of that assembly, because of that order.
Because the explosion is level-wise, intermediate stock matters. If 30 of the brackets are already on the shelf, the explosion does not need to plan sheet for them — which is where the second step comes in.
Step two: netting gross to net
Netting converts gross requirements into net requirements by subtracting what you already have or have already arranged:
Netting is the step that separates MRP from naive list-multiplication. It is also why stock accuracy is a planning issue, not just a stores issue: if the ledger says 30 brackets exist and the bin holds 12, MRP will under-buy with complete confidence. One store engine recording every receipt, issue, transfer and reservation — as in the Fast ERP Production & Planning and stores modules — is what keeps the netting honest.
Step three: the outputs — buy and make
What comes out of the run splits along the make-or-buy character of each item:
A worked example, end to end
100 gear housings, three levels, one run
A machine builder releases an order for 100 gear housings. The BOM says each housing needs 1 casting, 6 studs and 1 cover plate; each cover plate consumes 0.8 kg of MS plate. The explosion posts gross requirements of 100 castings, 600 studs, 100 cover plates and 80 kg of plate. Netting finds 20 castings free in stores and 200 studs already on an open PO: net requirements become 80 castings and 400 studs. Cover plates are made in-house, and 25 sit in stock — so a work order is planned for 75 plates, and the plate steel requirement shrinks to 60 kg. Purchase requisitions go out for castings, studs and plate; a work order is created for the cover plates; and every line of all of it traces back to the one released order. Figures are illustrative; the mechanism is exactly what runs in the system.
Still working out shortages on a spreadsheet the night before?
Bring one live order and its parts list — we will explode it, net it against sample stock and hand you the requisition list, in a 30-minute session.
MRP vs reorder-level planning
MRP is not the only way to trigger buying, and it is not always the best one. The older, simpler mechanism — the reorder level — watches stock instead of orders: when an item falls to its reorder point, a requisition fires. The two suit different kinds of demand, and a real factory runs both.
| Aspect | Reorder-level planning | MRP |
|---|---|---|
| Trigger | Stock falls to the reorder point | A released order explodes through the BOM |
| Looks at | The past — consumption that already happened | The future — demand that is coming |
| Best for | Fasteners, consumables, stable run-rate items | Order-driven, engineered, lumpy or seasonal demand |
| Risk if misused | Buys for demand that never returns | Overkill for pennies-a-piece hardware |
| Data it needs | Min/max and reorder level on the item master | Accurate BOMs, stock and open-PO figures |
| In Fast ERP | Built in — reorder-driven PR generation | Built in — explosion and netting off the released OA |
The practical rule: put standard hardware and consumables on reorder levels so nobody plans them at all, and let MRP govern everything whose demand descends from orders. Both mechanisms end in the same place — a purchase requisition entering the same approval chain — so purchasing sees one queue regardless of which logic raised it.
From plan to schedule: machine loading
A material plan says what and when; it does not say where the hours will come from. That is the bill of resources' half of the story. Because Fast ERP carries the BOR and process sheets alongside the BOM, planned work lands on real machines and the Gantt-style machine loading view shows each resource's committed hours against its capacity. A plan that overloads the VMC by forty hours next week is visible before the week starts — and the planner can shift, split or subcontract while it is still cheap to do so.
This is also where MRP quietly improves delivery honesty: when sales asks for a date, the answer can come from a plan that has already seen material lead times and machine load, rather than from optimism.
How Fast ERP runs MRP
Fast ERP implements the whole loop described above inside one database:
- Demand from released orders — the approved Order Acceptance, with BOM-against-OA explosion carrying the order's identity through every requirement.
- Plans as working documents — production plan, sales plan, raw-material plan and component plan reports that state requirement, coverage and shortfall.
- Two buying triggers — PR-against-BOM from the explosion, and reorder-level driven PR generation for run-rate stock, both feeding one approval chain.
- Capacity on a Gantt — machine loading against the resource master, so the schedule respects hours as well as material.
- Closed loop — goods receipts, inspections and work-order completions post back to the same ledger the next run nets against.
Because planning, purchase, stores and production share the schema, an MRP shortage does not become an email — it becomes a requisition with an approval trail, then a purchase order, then an inspected receipt, with quality gates standing between the calculation and the shelf. That is MRP as a working nervous system rather than a monthly report.
Frequently asked questions
What is MRP (material requirements planning)?
MRP is the calculation that turns what you have promised to deliver into what you must buy and make, and when. It takes three inputs — demand (released sales orders and plans), the multi-level bill of materials, and current inventory with open purchase orders — explodes the BOM level by level to get gross requirements for every component, nets those against stock and supply already on the way, and outputs time-phased plans: purchase requisitions for bought-out shortages and production demand for make items.
What is a BOM explosion in MRP?
The explosion walks the multi-level BOM from the ordered finished item downwards, multiplying quantities at each level. If an order needs 100 assemblies and each assembly needs 4 brackets, the explosion generates a gross requirement of 400 brackets; if each bracket needs 0.5 kg of sheet, it generates 200 kg of sheet — level by level down to raw material. The result is the gross requirement for every item in the structure, all traceable back to the order that caused it.
What is netting in MRP?
Netting converts gross requirements into net requirements by subtracting what you already have or have already arranged: free stock on hand, and open supply such as purchase-order quantities not yet received. Net requirement = gross requirement − available stock − on-order quantity. Only the net shortfall becomes a new purchase requisition or production demand. Netting happens at every BOM level — a sub-assembly already in stock stops the explosion below it — which is what prevents double-buying material you already hold.
What is the difference between MRP and reorder-level planning?
Reorder-level planning is stock-driven: when an item's stock falls to its reorder level, a requisition is triggered, regardless of what orders are coming. MRP is demand-driven: requirements descend from actual orders through the BOM, so you buy for what you will really consume. Reorder levels suit stable, fast-moving consumables and standard hardware; MRP suits order-driven, engineered and seasonal demand. Fast ERP runs both — reorder-level driven PR generation for run-rate items and BOM/MRP explosion for order-driven items.
What does MRP output in Fast ERP?
The explosion and netting against a released Order Acceptance feed the production plan and its supporting views — the sales plan, raw-material plan and component plan reports. Bought-out shortages become purchase requisitions raised against the BOM, which flow through checking and approval into purchase orders and goods receipts. Make items become work orders routed through process sheets. Scheduling is visualised on Gantt-style machine loading, so the plan is capacity-aware rather than a list of dates.
