Planning: MRP, Forecasting, Scheduling & ATP
Planning: MRP, Forecasting, Scheduling & ATP
Multi-level MRP netting
Planned Orders → Run MRP Netting explodes pending demand level by level through the BOM. At every level the gross requirement is netted against:
- on-hand stock at the node, and
- scheduled receipts (open production orders for that item).
Only the net shortfall becomes a planned order, with due dates offset one lead time earlier per BOM level. The run report shows gross / on-hand / receipts / net per item per level.
Demand 100 FG (on hand 30) → net 70 FG planned
└─ needs 140 SUB (on hand 20) → net 120 SUB planned
└─ needs 360 RAW (on hand 0) → net 360 RAW planned
The CLI equivalent is php artisan mfg:mrp-net.
Forecasting
Forecast combines a statistical baseline (moving average + trend) with optional AI adjustment, tracks forecast accuracy (MAPE), and feeds demand planning.
APS — the capacity board
Schedule shows a 14-day board: work centers × days, cells coloured by load. Two ways to fill it:
- Run — greedy earliest-due-first packing (fast, predictable).
- Optimize — simulates several dispatch sequences (earliest-due, shortest-processing, critical-ratio), balances flexible work onto the least-loaded work center and runs a late-order local search; the lowest-cost plan wins. The toast tells you which strategy won.
Drag any order chip to a different day or work center to override the machine — overloads raise a live alert (and a Momentum work item).
Global ATP
On Inter-Plant Transfers, the Global ATP card answers "can we promise N units of X?" across every plant: on-hand + scheduled receipts − committed demand, per plant and network-wide, with the earliest promise date.
