Skip to content
JAOT

Production Planning

Overview

Production planning optimization helps manufacturers decide how much of each product to make given limited resources like machine hours, labor, and raw materials. Instead of relying on gut instinct or spreadsheets, you define your products, constraints, and profit margins -- then let the solver find the mix that maximizes your bottom line.

This is one of the most common and impactful optimization use cases. Even small improvements in production scheduling can translate to significant cost savings across a manufacturing operation.

When to Use This

Best for: Plant managers and production schedulers who need to allocate limited resources across multiple products to maximize profit or minimize cost.

  • Scenario: Your factory produces several products that compete for the same machines, labor, or raw materials, and you need to decide optimal quantities
  • Industry: Discrete and process manufacturing, consumer goods, industrial equipment, electronics assembly
  • ROI: Typical improvements of 5-15% in resource utilization and 3-10% in overall production profit

Step-by-Step Walkthrough

1. Define your products

List each product you manufacture along with its unit profit (or contribution margin). For example, you might produce desks, chairs, and bookshelves with different profit margins.

2. Identify resource constraints

Determine the shared resources that limit production. Common constraints include:

  • Machine hours per shift (e.g., CNC machine, assembly line)
  • Labor hours available per week
  • Raw material inventory (wood, steel, fabric)
  • Storage or warehouse capacity

3. Set resource consumption rates

For each product, define how much of each resource it consumes per unit. A desk might require 4 hours of CNC time and 8 board-feet of lumber, while a chair needs 2 hours and 3 board-feet.

4. Configure the optimization

Set the objective to maximize total profit. Add constraints for each resource, ensuring total consumption does not exceed availability.

Production Planning in JAOT Builder

5. Run and interpret results

The solver returns the optimal quantity of each product. Review the results to see which resources are fully utilized (binding constraints) and where slack exists. Use slack information to identify bottleneck resources worth investing in.

Example Parameters

import httpx

API_URL = "https://api.jaot.io/api/v2"
headers = {"Authorization": "Bearer ok_live_your_key_here"}

response = httpx.post(f"{API_URL}/solve", headers=headers, json={
    "variables": [
        {"name": "desks", "type": "integer", "lb": 0},
        {"name": "chairs", "type": "integer", "lb": 0},
        {"name": "bookshelves", "type": "integer", "lb": 0},
    ],
    "objective": {
        "sense": "maximize",
        "coefficients": {"desks": 120, "chairs": 55, "bookshelves": 85},
    },
    "constraints": [
        {
            "name": "cnc_machine_hours",
            "coefficients": {"desks": 4, "chairs": 2, "bookshelves": 3},
            "sense": "<=",
            "rhs": 160,
        },
        {
            "name": "assembly_labor_hours",
            "coefficients": {"desks": 3, "chairs": 1.5, "bookshelves": 2},
            "sense": "<=",
            "rhs": 120,
        },
        {
            "name": "lumber_board_feet",
            "coefficients": {"desks": 8, "chairs": 3, "bookshelves": 6},
            "sense": "<=",
            "rhs": 500,
        },
    ],
})
result = response.json()

print(f"Optimal profit: ${result['objective_value']:.2f}")
for var in result["variables"]:
    print(f"  Produce {var['value']:.0f} {var['name']}")

Templates

Next Steps

  • Cutting & Packing -- Minimize material waste in cutting and packing operations intermediate
  • Supply Chain Planning -- Coordinate procurement, production, and distribution across your value chain advanced
  • Food & Beverage Production -- Apply production planning principles to recipe formulation and batch scheduling intermediate