| Capacity Requirements Planning (CRP) | |
| ⚙️ Validating capacity feasibility | |
| Purpose | Check if plans are feasible within available capacity |
|---|---|
| Key inputs | Planned orders from MRP, routings, work centre data |
| Key output | Load profiles per work centre |
| Complements | MRP (materials side) |
| Part of | MRP II |
Capacity Requirements Planning (CRP) is the process within MRP II that validates whether planned production orders (from MRP) and released orders can actually be executed within the available capacity of each work centre. While MRP answers "what materials do we need?", CRP answers "can we actually make it with the resources we have?"
MRP in its original form assumes infinite capacity — it plans orders without checking whether there is enough machine time or labour to execute them. CRP closes this gap by loading planned orders onto work centres and comparing the required capacity against available capacity. Without CRP, the MPS may be infeasible, leading to missed due dates on the shop floor.
Capacity planning operates at two levels:
graph TB
SOP["S&OP"] --> RRP["Resource Requirements
Planning (RRP)
Very rough cut"]
MPS["MPS"] --> RCCP["Rough-Cut Capacity
Planning (RCCP)
Key resources only"]
MRP["MRP"] --> CRP["Detailed CRP
All work centres"]
CRP --> SFC["Shop Floor
Control"]
style RRP fill:#d5e8f5,stroke:#333
style RCCP fill:#d5f5d5,stroke:#333
style CRP fill:#cedff2,stroke:#333
| Aspect | RCCP | Detailed CRP |
|---|---|---|
| Input | MPS | Planned + released orders from MRP |
| Scope | Key/bottleneck resources only | All work centres |
| Detail | Aggregate hours per resource | Operation-by-operation loading |
| Speed | Fast (quick feasibility check) | Slower (full computation) |
| Timing | Before full MRP run | After MRP run |
For each planned and released order, CRP:
CRP's primary output is a load profile (or load report) for each work centre, showing required hours vs. available hours by time period. This is typically visualised as a bar chart where bars exceeding the capacity line indicate overloads.
xychart-beta
title "Work Centre WC-101 Load Profile"
x-axis ["Wk 1", "Wk 2", "Wk 3", "Wk 4", "Wk 5", "Wk 6"]
y-axis "Hours" 0 --> 60
bar [30, 40, 55, 48, 35, 25]
line [40, 40, 40, 40, 40, 40]
In this example, weeks 3 and 4 exceed the 40-hour capacity line and require corrective action.
When CRP identifies an overload, planners have several options:
The key principle: resolve capacity problems before releasing orders to the shop floor, not after.
graph TB
MRP["MRP"] -->|"planned orders"| CRP["CRP"]
ROUTE["Routings"] -->|"operations & times"| CRP
WC["Work Centre Data"] -->|"available capacity"| CRP
CRP -.->|"overload?"| MPS["MPS"]
CRP -->|"feasible plan"| SFC["SFC"]
SFC -.->|"actual hours"| CRP
style CRP fill:#cedff2,stroke:#333