Production Planning

Loading…

This week's priorities

Goals are optimized lexicographically: the top goal is solved completely first, then each next goal only improves the schedule without hurting the ones above it.

    Weekly demand type your own numbers per part, mold change times too
    Set every mold change to min

    Weekly schedule by press

    Press sequences

    Run order per press, including the mold change between parts.

    Schedule output

    Days on hand (DOH) = ending stock ÷ daily demand, measured at the end of Friday.

    Disruptions

    Unplanned maintenance blocks a press. The plan is rebuilt around it. Times before 05:00 belong to that day's night shift.

    Your SQLite database

    Everything on this page lives in one SQLite file that belongs only to you. Edit it with the SQL box below, or download it and open it in DB Browser for SQLite or the sqlite3 command line. Changing a demand, setting or mold time re-plans the schedule automatically.

    sqlite3 production_planning.db
    sqlite> .tables
    sqlite> SELECT * FROM demand;
    sqlite> UPDATE demand SET quantity = 3000 WHERE part_id = 1;

    Browse tables

    Show CREATE TABLE statement

    SQL console

    One statement at a time. SELECT works everywhere; INSERT / UPDATE / DELETE work on the input tables (demand, parts, molds, settings, priorities, disruptions, presses).

    Glossary: variables and formulas

    The scheduler is a mixed-integer linear program (MILP) written in app/model.py. It picks the mold on each press, run lengths and start times, then solves the four goals lexicographically.