Material Requirements Planning (MRP) computes what raw materials and components need to be purchased or produced to support the master production schedule. It traverses bills of materials (BOMs), applies lead times, and produces purchase orders and production work orders timed to meet the production plan.
Capacity Requirements Planning (CRP) validates whether the production plan is feasible against the available capacity of machines, labor, and other constrained resources. It identifies periods where the plan exceeds available capacity and flags them for resolution.
MRP and CRP work as a pair. MRP assumes capacity exists and computes material need; CRP checks whether that capacity actually exists. If CRP shows the plan is infeasible, the MPS must be adjusted and MRP re-run. This is the classic ERP planning cycle that most manufacturers have run for decades.
This page covers how each function works, where they're still useful, and the limitations that drove the development of more advanced planning methods (finite capacity scheduling, multi-echelon optimization, advanced planning systems).
Horizon doesn't discard MRP the BOM explosion, lead time logic, and material netting are foundational and remain in the underlying math. What Horizon adds is the layers MRP and CRP don't provide: multi-echelon inventory optimization that handles uncertainty, finite capacity scheduling that integrates capacity into the planning math, and detailed scheduling that handles sequence-dependent setups.
The practical result is that what used to be a multi-step process MPS → MRP → CRP → manual iteration runs as an integrated calculation. The plan that emerges is both materially complete and capacity-feasible by construction, rather than requiring manual iteration to reach feasibility.
Integration with ERP is bidirectional. Horizon reads BOMs, routings, lead times, inventory, and open orders from ERP. Horizon writes back planned orders, schedule updates, and demand forecasts. The ERP remains the system of record for transactions; Horizon is the planning engine that decides what should happen next.
The honest scope: for very simple operations (single plant, small SKU count, stable demand, significant excess capacity), the ERP's built-in MRP/CRP is often sufficient. Horizon adds the most value where the operations are complex enough that MRP/CRP alone produces plans that don't survive execution.
MRP was developed in the 1960s; CRP a decade later. Both predate the computing power and mathematical methods that enable modern planning. So why are they still central to nearly every ERP and still the dominant planning approach in most manufacturers?
Three reasons. First, MRP's core logic exploding BOMs and applying lead times is correct and necessary. Whatever planning approach a company uses, the math of "to make 100 of A I need 200 of B and 50 of C, ordered to arrive before A is needed" is foundational. Modern planning systems still run MRP-style explosions; they layer additional capability on top.
Second, MRP is computationally tractable on huge problems. A manufacturer with 50,000 SKUs and complex BOMs can run MRP in minutes. Multi-echelon optimization or finite capacity scheduling on the same problem might take hours and require specialized infrastructure.
Third, MRP is well-understood by planners. The output is auditable: if a purchase order recommendation looks wrong, a planner can trace it back through the BOM, lead times, and demand to find the source. Black-box optimization that produces "better" answers but can't explain them often gets distrusted and bypassed.
What's changed is that MRP and CRP alone aren't sufficient for capacity-constrained, complex operations. The mathematical limits particularly the infinite-capacity assumption built into MRP produce plans that look correct on paper but don't survive execution. Modern systems wrap MRP with additional layers (finite capacity scheduling, multi-echelon inventory, ML-based forecasting) without discarding the underlying MRP math.
Suppose Product A has BOM: 2x Component B + 1x Component C. Lead time for A is 1 week. Lead time for B is 3 weeks. Lead time for C is 2 weeks.
MPS requires 100 units of A in week 10.
MRP computes:
If inventory of B is 50 units, net requirement is 150 B, so place PO for 150 (or apply lot sizing if minimum order is 200, place PO for 200).
In practice, the iteration is often manual and incomplete. Planners adjust the MPS based on judgment rather than systematic re-running, and capacity issues often surface during execution rather than during planning.