Inventory & Warehouse
Where: Sidebar → Inventory.
Real-time stock across all warehouses: what's on hand, what's reserved for jobs, and what's genuinely available.
📷 Screenshot spot — capture this screen and save it as static/img/screenshots/inventory-stock.png, then replace this whole box with the single line:

Reading the stock table
| Column | Meaning |
|---|---|
| On Hand | Physical quantity in the warehouse. |
| Reserved | Held for production jobs (reserved automatically at job creation). |
| Available | On Hand − Reserved — the number planning actually uses. |
| Status | Healthy, Low (available ≤ reorder level), or Out of Stock (available ≤ 0). |
KPIs at the top show Stock Value, Low Stock Items, Reserved and Available Value. Filter by warehouse, search by part code/name, or flip on Low Stock Only.
Because status is based on available stock, an item fully reserved for jobs shows as unavailable even when physically present. That's the point — it's already promised.
Warehouses & stock entries
- + Warehouse creates warehouses (name + city); one acts as the default.
- Stock Adjustment opens the manual entry dialog with four types:
- Opening Stock — seed initial quantities.
- Stock Adjustment — correct counts.
- Warehouse Transfer — move stock between warehouses.
- Purchase Receipt — manual stock-in (normally this comes from a confirmed GRN instead).
The movement timeline
Every stock change in the system appears in the Stock Movement Timeline — green arrows for stock-in, amber for stock-out. Other modules write entries automatically:
| Entry type | Written when |
|---|---|
PURCHASE_RECEIPT | A GRN is confirmed. |
PRODUCTION_ISSUE | Materials are issued to a job. |
PRODUCTION_RECEIPT | A job is completed into stock. |
SALES_DELIVERY | A dispatch is marked Dispatched. |
TRANSFER / ADJUSTMENT / OPENING | Manual entries here. |
AI Inventory Insights
Expand the AI Inventory Insights card for reorder advice: per item, a severity (critical / warning / OK), a suggested reorder quantity, and the cheapest vendor with price (from your imported price lists). It loads only when you open it.
For automated replenishment, the Smart Procurement Agent watches the same reorder levels daily and drafts requisitions for you.