Master production scheduling (MPS) bridges high-level production planning with detailed execution. It breaks down the aggregated demand forecasts which we have defined in the previous section into precise schedules for specific products (or SKUs) over a mid-term horizon (usually 3–12 months).
Inputs into the MPS (mostly the same as in the high-level production planning but with more details):
Demand forecasts: at SKU level, directly from the demand plan or after disaggregation rules
Production policies: make-to-stock (MTS), make-to-order (MTO), or a hybrid policy
Inventory levels: current stock levels and safety stock requirements
Capacity data: machine and labor capacities
Production constraints: lead times, batch sizes, and setup times of machines
Outputs of the MPS:
Production schedule: SKU-level weekly or monthly production targets
RCCP alignment: ensuring that the capacity is sufficient without overloading
Prioritization rules: prioritization of products based on demand, profitability, or other business objectives – some rules about what to do in which case
Available-to-promise (ATP): insights into available inventory for unconfirmed orders
Balancing capacity: Validate that the machine and labor capacities can meet the planned production! RCCP involves a rough estimation of required capacity, ensuring no major constraints exist. Unlike before, this should be done at a weekly level here.
Prioritizing production: Prioritize high-margin or high-demand SKUs while respecting constraints like setup times or production policies.
Validation and adjustment: Iteratively validate the schedule against capacity constraints and adjust as needed.
The company in our earlier example produced two types of insulation materials: fiberglass sheets and spray foam.
SKU | Weekly Demand (Units) | Safety Stock (Units) |
FG-10mm | 3,125 | 500 |
FG-20mm | 1,875 | 300 |
FG-30mm | 1,250 | 200 |
Week | SKU | Planned Production (Units) |
Week 1 | FG-10mm | 3,625 |
| FG-20mm | 2,175 |
| FG-30mm | 1,450 |
Suppose there is no beginning inventory for each SKU and that we’re only looking at 1 location:
SKU | Beginning Inventory |
FG-10mm | 0 |
FG-20mm | 0 |
FG-30mm | 0 |
Capacity Type | Value |
Machine Rate | 1,500 units/day, operating 5/7 days |
Labor Productivity | 6 hours/unit |
Labor Hours | 45,000 / week |
Material Requirement | 1 kg/unit |
Here below, we’ll outline the MPS at a weekly level for each SKU, including the weekly demand and production target (considering the safety stock requirement) as well as beginning and ending inventory and the ATP.
Available-to-promise (ATP) represents the quantity of inventory or production that has not yet been allocated to specific customer orders. It shows how much can still be promised to customers without impacting any other commitments. This can be calculated as:
Week | SKU | Beginning Inventory | Weekly Demand | Safety Stock | Planned Production | Ending Inventory | Available to Promise (ATP) |
1 | FG-10mm | 0 | 3,125 | 500 | 3,625 | 500 | 500 |
1 | FG-20mm | 0 | 1,875 | 300 | 2,175 | 300 | 300 |
1 | FG-30mm | 0 | 1,250 | 200 | 1,450 | 200 | 200 |
2 | FG-10mm | 500 | 3,125 | 500 | 3,625 | 1,000 | 1,000 |
2 | FG-20mm | 300 | 1,875 | 300 | 2,175 | 600 | 600 |
2 | FG-30mm | 250 | 1,250 | 200 | 1,450 | 400 | 400 |
3 | FG-10mm | 1,000 | 3,125 | 500 | 3,625 | 1,500 | 1,500 |
3 | FG-20mm | 600 | 1,875 | 300 | 2,175 | 900 | 900 |
3 | FG-30mm | 450 | 1,250 | 200 | 1,450 | 600 | 600 |
4 | FG-10mm | 1,500 | 3,125 | 500 | 3,625 | 2,000 | 2,000 |
4 | FG-20mm | 900 | 1,875 | 300 | 2,175 | 1,200 | 1,200 |
4 | FG-30mm | 650 | 1,250 | 200 | 1,450 | 800 | 800 |
Machine days required:
Machine days = machine rate / planned production
Labor hours required:
Labor hours= planned production × labor productivity (hours/unit)
Week | SKU | Planned Production | Machine Days Required | Labor Hours Required |
1 | FG-10mm | 3,625 | 2.42 days | 21,750 hours |
1 | FG-20mm | 2,175 | 1.45 days | 13,050 hours |
1 | FG-30mm | 1,450 | 0.97 days | 8,700 hours |
2 | FG-10mm | 3,625 | 2.42 days | 21,750 hours |
2 | FG-20mm | 2,175 | 1.45 days | 13,050 hours |
2 | FG-30mm | 1,450 | 0.97 days | 8,700 hours |
3 | FG-10mm | 3,625 | 2.42 days | 21,750 hours |
3 | FG-20mm | 2,175 | 1.45 days | 13,050 hours |
3 | FG-30mm | 1,450 | 0.97 days | 8,700 hours |
4 | FG-10mm | 3,625 | 2.42 days | 21,750 hours |
4 | FG-20mm | 2,175 | 1.45 days | 13,050 hours |
4 | FG-30mm | 1,450 | 0.97 days | 8,700 hours |
Capacity Type | Available | Required (Max) | Utilization |
Labor hours | 45,000/week | 43,500/week | 96.67% |
Machine days | 5 days/week | 4.84 days/week | 96.8% |
Both machines and labor are running almost at max capacity. It’s important to make sure that no steps are missed in this planning: if absenteeism or set-up times etc. would not be properly considered, then these production targets cannot be met.
Material availability isn’t yet looked into at this moment. All in all, this plan is not reasonable at all unless significant capacity for both labor and machines is found.
As visually shown in this blog article by Allics, the planned workload vs capacity can be shown for each resource during each specific week to get immediate insights into where the bottlenecks or underutilization are.