Who can do this
Both actions require theinventory:manage capability. In the system role bundles, administrators hold it; supervisors hold inventory:view and inventory:checkout but not inventory:manage by default, so the sidebar shows supervisors Inventory Reports, Inventory Movements, and Inventory Items only, without a Receive Stock link. A custom role can grant inventory:manage to a supervisor, but access to /admin/inventory/* is also gated at the route level to organization role administrator or supervisor, so no other role reaches these pages regardless of custom capability grants.
The Recent Shipments list on the Receive PACE Stock page checks specifically for the
administrator org role, separate from the inventory:manage capability that gates the page and the receive action itself. A supervisor granted inventory:manage could submit a shipment but still be denied the Recent Shipments list.Receive a PACE shipment
Use this when a new shipment of PACE booklets arrives from the supplier. Go to Programs & Resources > Inventory > Receive PACE Stock (/admin/inventory/pace/receive).
Add a line for each PACE received
In the bulk receive form, select the PACE item, enter the quantity received, and optionally add a note (for example, supplier or invoice reference).
Record the shipment
Submit the form. All lines commit together in a single transaction through the
bulk_receive_pace_shipment database function. Either every line posts, or none does.purchase movement, and stock on hand increases by that line’s quantity. The per-line quantity is capped at 1,000,000. If receiving the shipment brings a previously low-stock item back above its reorder threshold, a restock-recovery notice fires for users holding inventory:manage.
Adjust stock
Use Adjust Stock for corrections that are not a supplier shipment, such as a damaged booklet, a donation, or a recount that disagrees with the system.Open the item's actions menu
Go to Programs & Resources > Inventory > Add Items (
/admin/inventory/items), find the item, and choose Adjust stock from its row actions.Choose how to enter the change
Pick ‘Change by (+/-)’ to enter a signed delta, or ‘Set new count’ to enter the absolute quantity. If you choose Set new count, the app computes the delta for you.
Enter a reason
A reason note is mandatory on every adjustment (for example, damaged, donation, or recount).
Confirm a negative balance if prompted
The modal shows the resulting on-hand count live. If the adjustment would take stock below zero, a confirmation dialog explains that the balance becomes a recorded stock debt before you can submit.
How each posts to the ledger
| Action | Movement reason | Delta sign | Where it shows up |
|---|---|---|---|
| Receive PACE shipment | purchase | Positive (quantity received) | Movement ledger, Recent Shipments, item history |
| Adjust stock, increase | adjustment | Positive | Movement ledger, item history |
| Adjust stock, decrease | adjustment | Negative | Movement ledger, item history, may trigger a low-stock alert |
| PACE assigned to a student | issue | Negative (auto) | Movement ledger, item history |
What fires automatically
- Low-stock alert: fires when an
issuemovement or a negativeadjustmentcrosses an item’s reorder threshold from above to at or below it. It is sent in-app and by email to every user holdinginventory:manage, deduplicated to one alert per item per rolling 24-hour window. - Restock-recovery notice: fires after a bulk receive or a positive adjustment brings a previously low item back above its reorder threshold.
- No alert on a zero threshold: setting an item’s reorder threshold to 0 disables low-stock alerting for that item entirely.
Inventory Overview
How the movement ledger model works and where inventory lives in the sidebar.
Inventory Reports
Stock on hand, low-stock widget, burn-rate forecast, and untracked PACEs.