Skip to main content
Inventory tracks two kinds of stock in one items table: PACE booklets and library books. Every change to stock is recorded as a movement (a purchase, an issue, a return, a loss, or an adjustment) in an append-only ledger. A database trigger reads that ledger and reconciles the quantity on hand. The interface never writes the on-hand count directly.

Who can use it

Full access: view items and reports, add and edit items, import the PACE catalog, receive shipments, and adjust stock.
Access to the inventory area is gated by the inventory:view, inventory:manage, and inventory:checkout permissions. Find the module under Programs & Resources > Inventory in the sidebar.

Why stock changes only through movements

quantity_on_hand on each item is never a field you fill in. Every increase or decrease is written as a row in the movement ledger with a reason:
Movement reasonWhat causes it
PurchaseReceiving a PACE shipment
IssueA PACE assigned to a student, or a library checkout
ReturnA library item returned
LossA library item marked lost
AdjustmentA manual correction, with a mandatory reason note
A Postgres trigger recalculates the on-hand total from these rows. This keeps every stock change traceable to who did it, when, and why, and it is the same mechanism whether the change came from a shipment, a student assignment, or a manual correction.
Quantity on hand can go negative. A negative balance represents a recorded stock debt rather than a hard floor, and adjustments that would push a count negative show a confirmation dialog before they are saved.

PACE assignment auto-decrements stock

When a PACE is assigned to a student, Zion matches it to an inventory item by PACE number and subject and writes an issue movement for one unit. The item’s stock decreases automatically. No separate step is needed to record that a booklet went out. If a PACE is assigned but no inventory item exists with a matching number and subject, the decrement has nothing to apply to and silently does not happen. Zion surfaces this as an untracked-PACE nudge on the reports page so you can add the missing item. See

Inventory reports

Inventory reports
for details.

Adding and editing items

1

Open Inventory Items

Go to Programs & Resources > Inventory > Add Items.
2

Choose the item type

Click ‘Add PACE’ for a curriculum booklet, or ‘Add Book’ for a library item.
3

Fill in the details

For a PACE, enter the name, PACE number, and optional subject. For a library book, choose whether it is General or PACE-required.
4

Set opening quantity and reorder threshold

Opening quantity only applies when creating the item. The reorder threshold controls low-stock alerts; setting it to 0 turns those alerts off for that item.
5

Save

A duplicate PACE number and subject combination is rejected with an inline error.
Editing an existing item (the row’s Edit action) changes name, reorder threshold, and other metadata only. Quantity on hand cannot be edited from here: use the Adjust Stock action described in

Receiving and adjusting stock

Receiving and adjusting stock
.

Importing the PACE catalog

Rather than adding every PACE by hand, the ‘Import PACE catalog’ button on the items page seeds an inventory item, with zero opening stock, for every curriculum PACE your organization does not already track. Items are matched by PACE number and subject, so re-running the import is safe: it skips PACEs you already have and only adds what is missing.

Where to go next

Receiving and adjusting stock

Record a PACE shipment as a batch, or correct a count with a reasoned adjustment.

Inventory reports

Stock on hand, low-stock alerts, PACE burn-rate forecasts, and the library overview.

Library overview

Checkout, return, overdue, and lost-book workflows for library items tracked in the same catalog.

PACE assignments

Assign PACEs to students, the action that drives the automatic stock decrement.