| Item | custom Blade cell (pinned left) — TextColumn-equivalent with url() | string | stored: display '[variant config or SKU] product name / variant string' | variants.id |
| Existing stock | custom cell, red when negative | qty + variant UoM | derived: current on-hand at selected location (negative on-hand allowed, e.g. -3500 pcs) | stock_movements |
| Present week | custom cell + stockout marker | number | derived: existing stock − forecast demand for remainder of current week | — |
| Week 17–24 (shown) | custom cells, generated per horizon week | number | derived: cell = previous week − weekly forecast demand + scheduled inbound supply (open MO/PO due that week) | forecasts / mos / po_lines |
| Week 25–41 | — (dropped: horizon truncated to 8 week columns in mockup; captured to W41) | number | derived: same projection formula | — |
| Stockout marker | conditional cell class (red text + red bottom border) | state | derived: projected value < 0; amber border = zero-stock warning tier (all-zero row) | — |
| Show stockouts | per-week-column control (custom header slot) | action | highlights/jumps to stockout cells in that week column | — |
| Activate forecast demand | Toggle (Livewire property) | bool | switches forward projection on/off — rows with no forecast hold flat | — |
| A / B / C | ToggleButtons filter — class assignments not captured in snapshot | enum filter | stored: variant ABC classification | — |
| Category | SelectFilter — per-row values not captured on this screen | string lookup | stored: items.category_id | categories.id |
| Location | Select (page-level scope) | FK | all quantities scoped to one location (11, Balakong Jaya) | locations.id |
| Weekly / Monthly + week chips | ToggleButtons + custom chip row — Monthly view not captured | enum + int[] | granularity + horizon selection (chips 16–41 in capture); rebuckets same projection | — |
| All / Products / Materials | Tabs (item type filter) | enum filter | planning list mixes finished products and materials (capsules, holograms, boxes) | — |