nuuklu blog

Master Production Schedule (MPS) Optimizer

August 30, 2026

Welcome to the Master Production Schedule (MPS) Optimizer. This tool uses an Integer Programming (IP) model, solved with Google OR-Tools’ CP-SAT solver, to build a multi-week production plan across products and resources. It solves the problem lexicographically in priority order β€” first minimizing unmet demand, then total cost, then flexibility usage (overtime and outsourcing) β€” so higher-priority objectives are never sacrificed for lower-priority ones.

Please ensure your Excel file is formatted correctly with Demand, Resource_Capacity, Product_Resource, and Costs_Inventory sheets before running the solver. Objective priority is set below, not in the Excel file.

Need a starting point?

Download our standard template, fill in your demand, capacity and cost data, and upload it back.

πŸ“¦ Demand/Production: units⏱️ Capacity: hoursπŸ’² Costs: currency per unit/hour

Objective Priority

Drag to reorder β€” objectives are solved lexicographically, top to bottom, so a higher-priority objective is never sacrificed for a lower one. Remove an objective to exclude it entirely; at least one must remain.

β Ώ1Minimize Unmet Demand
β Ώ2Minimize Total Cost
β Ώ3Minimize Flexibility Usage (Overtime + Outsourcing)

Upload Your Data

KPI Glossary

Solver Status

Whether the CP-SAT solver found a provably optimal solution (OPTIMAL) or just a feasible one within its time/resource limits (FEASIBLE).

Service Level

The percentage of total demand that was actually fulfilled: 100 Γ— (1 βˆ’ Unmet Demand / Total Demand).

Unmet Demand

Total units of demand, across all products and weeks, that couldn't be produced or outsourced in time.

Total Cost

The sum of holding cost, outsourcing cost, and overtime cost for the chosen plan, in whatever currency your input costs used.

Overtime Usage

How much of the total available overtime hours, across every resource and week, were actually used.

Avg Resource Utilization

The average of (hours used Γ· hours available) across every resource and week β€” a rough measure of how tightly loaded your resources are overall.

Exceptions

The number of Product/Week rows where demand wasn't fully met. Each one is classified by root cause in the Exception List table above:

  • Capacity shortage (Resource) β€” that resource was already maxed out on both regular hours and overtime that week, so more simply couldn't be produced.
  • Outsourcing limit reached β€” capacity wasn't the blocker, but the product's weekly outsourcing cap was already used up.
  • Unclassified β€” neither was actually binding; the solver chose not to fully meet demand, usually because a higher-priority objective (e.g. cost) made that the optimal trade-off. Reordering the objective priority above may resolve it.