6.3 Material Requirements Planning (MRP), Bill of Materials & Capacity Planning

Key Takeaways

  • Material Requirements Planning (MRP) deterministically explodes independent-demand MPS end-items into time-phased dependent-demand requirements for subassemblies, components, and raw materials.

  • The Low-Level Coding (LLC) algorithm assigns each part number the lowest numerical level at which it appears across all product trees (LLC=max⁡(depth)LLC = \max(\text{depth})), guaranteeing that a part's gross requirements are completely aggregated before explosion.

  • The core MRP computational record calculates Gross Requirements (GRGR), Scheduled Receipts (SRSR), Projected Available Balance (PABPAB), Net Requirements (NRNR), Planned Order Receipts (PORcPORc), and Planned Order Releases (PORelPORel), offset by procurement/manufacturing lead times.

  • Lot sizing balances order setup expenses against inventory holding costs: Lot-for-Lot (L4L) minimizes carrying costs for volatile/expensive items; EOQ imposes static batches; POQ aligns orders with economic cycles; and Part Period Balancing (PPB) equates cumulative carrying cost to setup cost.

  • Capacity Requirements Planning (CRP) validates the feasibility of MRP planned releases at individual work centers by converting planned order releases into machine and labor hours, generating load profiles to detect and resolve work center overloads.

Last updated: October 2026

Material Requirements Planning (MRP), Bill of Materials & Capacity Planning

Core Principle: Material Requirements Planning (MRP) transforms independent MPS demand into time-phased dependent requirements across multi-echelon Bills of Materials. By coupling inventory status records with lead-time offsetting and work center capacity profiles, MRP ensures components arrive precisely when required while minimizing work-in-process (WIP).

In manufacturing systems, inventory items fall into two distinct demand regimes: independent demand and dependent demand. Independent demand (finished goods, spare parts) is influenced by external market forces and must be forecasted stochastically. Dependent demand (components, subassemblies, raw materials) is derived mathematically from the production schedule of parent assemblies. Applying statistical reorder points to dependent components creates artificial bullwhip amplifications; instead, dependent items must be managed via deterministic, time-phased Material Requirements Planning (MRP).


1. Core Inputs to the MRP Engine

The MRP processing algorithm integrates three fundamental data streams:

Core MRP Inputs & Outputs Architecture

[Master Production Schedule (MPS)]     [Bill of Materials (BOM)]     [Inventory Status Records]
 (What end-items to make & when)         (Product structure tree)     (On-hand, on-order, lead time)
                │                                   │                              │
                └─────────────────────────┬─────────┴──────────────────────────────┘
                                          ▼
                           [MRP Computational Engine]
                                          │
       ┌──────────────────────────────────┴──────────────────────────────────┐
       ▼                                                                     ▼
[Primary MRP Outputs]                                               [Secondary Exception Outputs]
- Planned Order Releases (Shop & POs)                               - Expedite / De-expedite notices
- Time-phased Planned Order Receipts                                - Cancel order notices
- Rescheduling action advisories                                    - Capacity overload warnings
  1. Master Production Schedule (MPS): Defines the quantities and required completion dates for all independent-demand finished items.
  2. Bill of Materials (BOM): An engineering database defining the exact hierarchy, parent-child relationships, and unit quantities required to fabricate one parent unit.
  3. Inventory Status Records: Contains item-specific operational parameters:
    • On-Hand Inventory: Physical usable stock physically present in the warehouse.
    • Scheduled Receipts (SRSR): Open purchase orders or factory work orders previously committed and due to arrive at the start of a specific time bucket.
    • Safety Stock (SSSS): Buffer inventory reserved to absorb scrap, yield losses, or lead-time variance.
    • Lead Time (LL): Total elapsed time from order release to physical receipt into inventory (supplier lead time or manufacturing cycle time).
    • Lot-Sizing Rule: Pre-assigned heuristic governing order batch quantities.

2. Bill of Materials (BOM) & Low-Level Coding (LLC)

A Bill of Materials (BOM) represents product structure hierarchically. A single-level BOM displays only immediate children, whereas an indented multi-level BOM exposes the full explosion path from finished unit to raw materials.

Product Structure Tree with Low-Level Coding

Level 0:                 [Final Product A]
                         /               \
Level 1:           [Sub B] (qty: 2)     [Sub C] (qty: 1)
                   /      \                     \
Level 2:   [Comp D] (3)   [Comp E] (1)         [Comp D] (2)

Low-Level Code (LLC) Assignment:
- Product A: LLC = 0 (Appears only at Level 0)
- Subassembly B: LLC = 1
- Subassembly C: LLC = 1
- Component E: LLC = 2
- Component D: LLC = 2 (Appears at Level 2 under both B and C; LLC = max depth = 2)

The Low-Level Coding (LLC) Algorithm

When a common component appears at multiple levels in different subassemblies (or across multiple products), exploding requirements naively causes fragmentation: orders would be generated at Level 1, and then additional requirements discovered at Level 2 would require duplicate setups and split batches.

To ensure computational efficiency and prevent fragmented lot sizing, MRP systems execute the Low-Level Coding (LLC) algorithm during BOM maintenance:

LLC(Item i)=max⁡p∈Paths(Depth of Item i in Path p)\text{LLC}(\text{Item } i) = \max_{p \in \text{Paths}} \left( \text{Depth of Item } i \text{ in Path } p \right)

  • Operational Rule: An end-item is coded as Level 0. Any component used as an immediate child of a Level 0 item is Level 1, unless it also appears deeper in another branch. The item's LLC is assigned the maximum depth level at which it appears anywhere in the company's product structures.
  • Explosion Integrity: The MRP processing engine explodes requirements strictly level by level (LLC=0,1,2,…LLC = 0, 1, 2, \dots). No component's net requirements or planned orders are calculated until all parent assemblies possessing a lower LLC number have been fully exploded and their planned order releases aggregated. This ensures all gross requirements for a shared part are consolidated into single time buckets.

3. The Mathematical Mechanics of MRP Explosion

For each inventory item, the MRP matrix processes a time-phased grid across planning buckets t=1,2,…,Tt = 1, 2, \dots, T. The row definitions and computational sequence are:

MRP Time-Phased Matrix Structure

Row Parameter                  Mathematical Relationship
─────────────────────────────────────────────────────────────────────────────
Gross Requirements (GR_t)      Parent PORel × Usage Qty + Independent Demand
Scheduled Receipts (SR_t)      Open orders confirmed arriving in period t
Projected Available (PAB_t)    PAB_{t-1} + SR_t + PORc_t - GR_t
Net Requirements (NR_t)        max(0, GR_t + SS - (PAB_{t-1} + SR_t))
Planned Order Receipts (PORc_t) Lot-sized batch to satisfy NR_t (PORc_t ≥ NR_t)
Planned Order Releases (PORel) PORel_{t-L} = PORc_t (Offset by Lead Time L)

Step-by-Step Computational Formulations

  1. Gross Requirements (GRtGR_t): Total anticipated demand for the component in period tt:

GRt=∑p∈Parents(PORelp,t×Up)+Dindependent,tGR_t = \sum_{p \in \text{Parents}} \left( PORel_{p, t} \times U_{p} \right) + D_{\text{independent}, t}

Where PORelp,tPORel_{p, t} is the Planned Order Release of parent pp in period tt, and UpU_p is the usage multiplier (units of child required per unit of parent).

  1. Preliminary Available Balance (PABt0PAB_t^0): Stock available before receiving any new planned order:

PABt0=PABt−1+SRt−GRtPAB_t^0 = PAB_{t-1} + SR_t - GR_t

  1. Net Requirements (NRtNR_t): Deficit below required safety stock (SSSS):

NRt={GRt+SS−(PABt−1+SRt),if PABt−1+SRt<GRt+SS0,otherwiseNR_t = \begin{cases} GR_t + SS - (PAB_{t-1} + SR_t), & \text{if } PAB_{t-1} + SR_t < GR_t + SS \\ 0, & \text{otherwise} \end{cases}

  1. Planned Order Receipts (PORctPORc_t): If NRt>0NR_t > 0, an order receipt is scheduled in period tt. The quantity is determined by the active lot-sizing rule (PORct≥NRtPORc_t \ge NR_t). If NRt=0NR_t = 0, PORct=0PORc_t = 0.

  2. Updated Projected Available Balance (PABtPAB_t):

PABt=PABt−1+SRt+PORct−GRtPAB_t = PAB_{t-1} + SR_t + PORc_t - GR_t

  1. Planned Order Releases (PORelt−LPORel_{t-L}): To ensure the order arrives at period tt, it must be released LL periods earlier (lead-time offsetting):

PORelt−L=PORctPORel_{t-L} = PORc_t


4. Lot-Sizing Techniques in MRP

Lot-sizing rules dictate how net requirements are grouped into replenishment batches. Choosing an inappropriate lot-sizing rule can either inflate inventory holding costs or create excessive setup overhead.

Lot-Sizing MethodMechanicsAdvantagesDisadvantagesOptimal Application
Lot-for-Lot (L4L)Set PORct=NRtPORc_t = NR_t in each period. Zero ending inventory beyond safety stock.Minimizes inventory holding cost; eliminates cycle stock.Incurs setup/ordering cost for every non-zero period.High holding costs, expensive custom components, JIT / Lean systems.
Economic Order Quantity (EOQ)Fixed lot size Q∗=2DS/HQ^* = \sqrt{2DS/H} based on annualized average demand.Exploits economies of scale; simple to administer.Causes "lumpiness"; carries excessive inventory when requirements are sporadic.High setup costs, stable continuous demand profiles.
Periodic Order Quantity (POQ)Economic order interval P=⌈EOQ/Dˉ⌉P = \lceil EOQ / \bar{D} \rceil. Orders sum of next PP periods' net requirements.Adapts to lumpy demand; eliminates holding inventory across zero-demand periods.Requires dynamic recalculation if demand fluctuates sharply.Lumpy, intermittent dependent demand with moderate setup costs.
Part Period Balancing (PPB)Groups sequential periods until cumulative holding cost most closely matches setup cost SS.Dynamically balances setup and holding costs without rigid time buckets.Computationally intensive; forward-looking horizon effects.High-value components with dynamic, seasonal, or irregular demand.

Part Period Balancing (PPB) Mathematics

PPB evaluates carrying cost in units of Part-Periods (one unit of inventory held for one period). The Economic Part Period (EPPEPP) is the ratio of setup cost SS to inventory carrying cost per unit per period hh:

EPP=ShEPP = \frac{S}{h}

The algorithm accumulates net requirements for future periods k=t+1,t+2,…k = t+1, t+2, \dots and computes cumulative part-periods:

Cumulative Part-Periods=∑j=tt+m(NRj×(j−t))\text{Cumulative Part-Periods} = \sum_{j=t}^{t+m} \left( NR_j \times (j - t) \right)

The batch is closed at the period mm where cumulative part-periods are closest to EPPEPP.


5. Comprehensive Worked Numerical MRP Example

An industrial instrumentation firm manufactures an automated fluid monitor (Item A). Each unit of A requires 2 units of Subassembly B. The operational parameters are:

  • Finished Item A: Lot-for-Lot (L4L), Lead Time LA=1L_A = 1 week, Safety Stock SSA=0SS_A = 0, Initial On-Hand I0,A=10I_{0, A} = 10.
  • Subassembly B: Fixed Order Quantity FOQ=100FOQ = 100 units, Lead Time LB=2L_B = 2 weeks, Safety Stock SSB=20SS_B = 20, Initial On-Hand I0,B=45I_{0, B} = 45, Scheduled Receipt SRB=100SR_B = 100 in Week 1.

The Master Production Schedule requires completing 50 units of Item A in Week 3 and 80 units of Item A in Week 5.

MRP Explosion for Finished Item A (Parent)

Week (tt)123456
Gross Requirements (GRGR)00500800
Scheduled Receipts (SRSR)000000
Projected Available Balance (PABPAB) [Initial = 10]10100000
Net Requirements (NRNR)00400800
Planned Order Receipts (PORcPORc) [L4L]00400800
Planned Order Releases (PORelPORel) [LA=1L_A = 1]04008000
  • Item A Calculations:
    • In Week 3: PAB2=10PAB_2 = 10. Deficit is 50−10=4050 - 10 = 40. NR3=40  ⟹  PORc3=40NR_3 = 40 \implies PORc_3 = 40. PAB3=10+40−50=0PAB_3 = 10 + 40 - 50 = 0. Offset by LA=1L_A = 1 week   ⟹  PORel2=40\implies PORel_2 = 40.
    • In Week 5: PAB4=0PAB_4 = 0. NR5=80  ⟹  PORc5=80NR_5 = 80 \implies PORc_5 = 80. Offset by LA=1L_A = 1 week   ⟹  PORel4=80\implies PORel_4 = 80.

MRP Explosion for Subassembly B (Child, Usage = 2)

Gross requirements for B are driven by Item A's planned releases: GRB,t=PORelA,t×2GR_{B, t} = PORel_{A, t} \times 2:

  • Week 2: 40×2=8040 \times 2 = 80 units.
  • Week 4: 80×2=16080 \times 2 = 160 units.
Week (tt)123456
Gross Requirements (GRGR)080016000
Scheduled Receipts (SRSR)10000000
Projected Available Balance (PABPAB) [Initial = 45, SS=20SS = 20]1456565105105105
Net Requirements (NRNR)00011500
Planned Order Receipts (PORcPORc) [FOQ = 100]00020000
Planned Order Releases (PORelPORel) [LB=2L_B = 2]02000000
  • Subassembly B Step-by-Step Calculations:
    • Week 1: PAB1=I0,B+SR1−GR1=45+100−0=145PAB_1 = I_{0, B} + SR_1 - GR_1 = 45 + 100 - 0 = 145.
    • Week 2: GR2=80GR_2 = 80. Available before order is 145−80=65145 - 80 = 65. Since 65>SS65 > SS (2020), NR2=0NR_2 = 0. Updated PAB2=65PAB_2 = 65.
    • Week 3: GR3=0  ⟹  PAB3=65GR_3 = 0 \implies PAB_3 = 65.
    • Week 4: GR4=160GR_4 = 160. Required stock is GR4+SS=160+20=180GR_4 + SS = 160 + 20 = 180. Prior balance is PAB3=65PAB_3 = 65. The net requirement is NR4=180−65=115NR_4 = 180 - 65 = 115 units.
    • Because lot size is FOQ=100FOQ = 100, the system must order multiples of 100. Sizing for 115 requires ⌈115/100⌉×100=200\lceil 115 / 100 \rceil \times 100 = 200 units. Thus, PORc4=200PORc_4 = 200.
    • Updated balance: PAB4=65+200−160=105PAB_4 = 65 + 200 - 160 = 105 (note: if safety stock is held separately, PABPAB is 105 total, or 85 above SSSS).
    • Offset by lead time LB=2L_B = 2 weeks: order must be released in Week 4−2=24 - 2 = 2. Therefore, PORel2=200PORel_2 = 200 units.

6. Capacity Requirements Planning (CRP) & Closed-Loop MRP

MRP generates planned orders assuming infinite capacity—it assumes machines and labor are always available when needed. In reality, work centers face rigid throughput limits. Capacity Requirements Planning (CRP) acts as the critical reality check, converting planned order releases into machine and labor hours at specific work centers.

MRP to CRP Translation & Load Leveling

[Planned Order Releases (PORel)] × [Standard Routing Sheet (Setup & Run)]
                            │
                            ▼
           [Work Center Capacity Load Profile]

Hours ^
      |              Overload Spikes (Must resolve via OT/rerouting)
      |                  [===]
      |             ┌────┴───┴────┐
      |             │             │
  Cap +-------------+-------------+-------------+------------- Rated Max Capacity
      |    [===]    │             │    [===]    │
      |    │   │    │             │    │   │    │    [===]
      |    │   │    │             │    │   │    │    │   │
      +----+---+----+-------------+----+---+----+----+---+----> Time (Weeks)
           Week 1       Week 2         Week 3       Week 4

CRP Load Calculation

For a specific work center ww in time bucket tt, the required workload in standard hours is:

Loadw,t=∑j∈Jw,t(Sj,w+PORelj,t×Uj,w)\text{Load}_{w, t} = \sum_{j \in J_{w, t}} \left( S_{j, w} + PORel_{j, t} \times U_{j, w} \right)

Where:

  • Jw,tJ_{w, t} is the set of all lots scheduled to be processed at work center ww during period tt.
  • Sj,wS_{j, w} is the setup time in standard hours for lot jj.
  • PORelj,tPORel_{j, t} is the planned lot size.
  • Uj,wU_{j, w} is the run time per unit in standard hours.

Rated Work Center Capacity

Theoretical nominal hours must be discounted by machine availability and worker productivity:

Rated Capacity=N×Hshift×S×D×Utilization×Efficiency\text{Rated Capacity} = N \times H_{\text{shift}} \times S \times D \times \text{Utilization} \times \text{Efficiency}

Where:

  • NN: Number of machines or operators.
  • HshiftH_{\text{shift}}: Working hours per shift.
  • SS: Number of shifts per day.
  • DD: Operating days per period.
  • Utilization\text{Utilization}: Actual Operating HoursScheduled Clock Hours≤1.0\frac{\text{Actual Operating Hours}}{\text{Scheduled Clock Hours}} \le 1.0.
  • Efficiency\text{Efficiency}: Standard Hours ProducedActual Operating Hours\frac{\text{Standard Hours Produced}}{\text{Actual Operating Hours}}.

Resolving Load Discrepancies

When CRP detects an overload condition (Loadw,t>Rated Capacity\text{Load}_{w, t} > \text{Rated Capacity}), closed-loop MRP requires intervention:

  1. Short-Term Adjustments: Authorize overtime shifts, re-route operations to alternate work centers, split large production batches, or hire temporary contract labor.
  2. Schedule Adjustments: Pull forward planned releases into earlier periods with surplus capacity (load leveling).
  3. MPS Revision: If capacity cannot be expanded, the Master Production Schedule must be revised downward in the slushy or liquid zones.
Test Your Knowledge

A complex subassembly product, Model Alpha (Level 0), requires 2 units of Subassembly Beta (Level 1) and 1 unit of Subassembly Gamma (Level 1). Each Subassembly Beta requires 3 units of Component Delta. Each Subassembly Gamma requires 2 units of Component Delta. Component Delta is also distributed directly to service technicians as a spare part, with an independent demand of 50 units in Week 5. The Master Production Schedule establishes an order for 100 units of Alpha due in Week 6. Component lead times are: Alpha = 1 week, Beta = 2 weeks, Gamma = 1 week, and Delta = 1 week. Assuming zero on-hand inventory and lot-for-lot sizing, what is the Low-Level Code (LLC) of Component Delta, and what are the total Gross Requirements for Component Delta in Week 4?

A

LLC = 1; Gross Requirement = 500 units

B

LLC = 2; Gross Requirement = 800 units

C

LLC = 3; Gross Requirement = 250 units

D

LLC = 2; Gross Requirement = 200 units

Test Your Knowledge

A designated machining cell comprises 4 identical computer numerical control (CNC) mills. The cell operates on two 8-hour shifts per day, 5 days per week. Engineering records indicate that the work center achieves an average Machine Utilization of 85% and an Operational Efficiency of 90%. In Week 3, the MRP system generates Planned Order Releases for three production lots routed through this cell:

  • Part X: 200 units, Setup time = 2.5 hours, Run time = 0.15 hours/unit
  • Part Y: 150 units, Setup time = 4.0 hours, Run time = 0.20 hours/unit
  • Part Z: 100 units, Setup time = 1.5 hours, Run time = 0.10 hours/unit

What is the total required capacity load on the machining cell for Week 3, and what is the rated capacity of the cell?

A

Total Load = 70.0 hours; Rated Capacity = 272.0 hours

B

Total Load = 78.0 hours; Rated Capacity = 244.8 hours

C

Total Load = 78.0 hours; Rated Capacity = 70.0 hours

D

Total Load = 86.5 hours; Rated Capacity = 320.0 hours

Sections you finish are checked off in the contents.