nuuklu blog
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, andCosts_Inventorysheets 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.
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.
Upload Your Data
KPI Glossary
Whether the CP-SAT solver found a provably optimal solution (OPTIMAL) or just a feasible one within its time/resource limits (FEASIBLE).
The percentage of total demand that was actually fulfilled: 100 Γ (1 β Unmet Demand / Total Demand).
Total units of demand, across all products and weeks, that couldn't be produced or outsourced in time.
The sum of holding cost, outsourcing cost, and overtime cost for the chosen plan, in whatever currency your input costs used.
How much of the total available overtime hours, across every resource and week, were actually used.
The average of (hours used Γ· hours available) across every resource and week β a rough measure of how tightly loaded your resources are overall.
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.