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.

Last updated: 8/11/2026