| Master Production Schedule (MPS) | |
| 📅 The build plan for end items | |
| Horizon | Cumulative lead time + 1–2 months |
|---|---|
| Time bucket | Weekly (sometimes daily) |
| Key input | S&OP production plan, customer orders, forecast |
| Key output | Time-phased production quantities per end item |
| Feeds into | MRP, CRP |
| Part of | MRP II |
The Master Production Schedule (MPS) is the central plan in MRP II that states what end items will be produced, how many, and when. Often called the "anticipated build schedule," it translates the aggregate S&OP production plan into specific item-level, time-phased quantities. The MPS is the primary input to both Material Requirements Planning and Capacity Requirements Planning.
The MPS is the bridge between strategic planning (S&OP) and detailed execution (MRP, SFC). It must satisfy three often-conflicting constraints:
The MPS is typically maintained as a time-phased grid (weekly buckets). For a given item, the key rows are:
| Row | Wk 1 | Wk 2 | Wk 3 | Wk 4 | Wk 5 |
|---|---|---|---|---|---|
| Forecast | 20 | 20 | 20 | 20 | 20 |
| Customer Orders | 18 | 14 | 8 | 3 | 0 |
| MPS Quantity | 0 | 50 | 0 | 50 | 0 |
| Projected On-Hand | 10 | 40 | 20 | 50 | 30 |
| ATP | 12 | 36 | — | 47 | — |
The greater of forecast and customer orders drives the projected on-hand calculation: POH = Prior POH + MPS Qty − max(Forecast, Orders).
ATP tells sales how many units can be promised to new customers without changing the MPS. It is calculated as: ATP = MPS Qty − Customer Orders before next MPS receipt. This is a critical link between the MPS and the sales/order management process, preventing over-commitment.
graph LR
subgraph " "
direction LR
FZ["Frozen Zone
(0 to Demand Fence)
No changes without
senior approval"]
SZ["Slushy Zone
(Demand to Planning Fence)
Changes allowed
with justification"]
LZ["Liquid Zone
(Beyond Planning Fence)
System can
auto-schedule"]
end
FZ --> SZ --> LZ
style FZ fill:#f5d5d5,stroke:#333
style SZ fill:#fff3cd,stroke:#333
style LZ fill:#d5f5d5,stroke:#333
Time fences control who may change the MPS in each horizon:
graph TB
SOP["S&OP"] -->|"production plan"| MPS["MPS"]
MPS -->|"what & when to build"| MRP["MRP"]
MPS -->|"planned load"| CRP["CRP"]
CRP -.->|"feasible?"| MPS
SFC["SFC"] -.->|"actual production"| MPS
style MPS fill:#cedff2,stroke:#333