# Parts inventory

> Track spare parts, stock levels, and desired quantities; associate parts with the assets that consume them.

Source: https://app.assetlab.ca/docs/cmms/parts-inventory

The parts module answers two questions that stall maintenance work: *do we have one?* and *which one does this machine take?*

## Part records

Each part carries:

- **Name, part number, and category** - categories keep a big catalog navigable
- **Quantity and location** - how many are on hand, and where they're shelved (site, building, location, plus a free-text "specific location" for the shelf or bin)
- **Desired quantity** - the stock level you want to hold; stock status is measured against it
- **Unit cost** - what a consumed part posts to the work order's costs
- **Supplier** - the [vendor](/docs/cmms/vendors) you buy it from

Stock status is relative to the desired quantity: **out of stock** at zero, **critical** below 20% of desired, **low** below 50%, **good** above that. The badges do the flagging in the parts list; find a part by text search.

## Asset ↔ part associations

Link parts to the assets that use them. On the asset's **Parts** tab you get the machine's shopping list - belt size, filter set, seal kit - which is exactly what a technician needs before walking to the stockroom, and what a manager needs when deciding how many to stock.

One part can serve many assets; the association view shows how many units each machine population could demand.

> [!tip] Build associations opportunistically: every time a work order consumes a part that isn't linked yet, link it. Six months of normal work builds the catalog for free.

## Consumption through work orders

Recording parts against a [work order](/docs/cmms/work-orders) does three things at once:

1. Deducts stock
2. Posts the part cost to the work order (and therefore the asset's cost history)
3. Builds the consumption history that makes desired quantities evidence-based

The deduction happens **when the work order's parts-used lines are saved**, not at completion - so stock reflects reality as soon as the parts are committed to the job. Editing the lines first restores the previously deducted quantities and then applies the new ones, so corrections never double-count. If stock is insufficient, the save is **blocked with an error** naming the shortfall - you can't consume parts you don't have on record. Deleting a work order restores its parts to stock.

## Reordering

Parts sitting at critical or out-of-stock badges are your reorder list. Purchasing runs through your normal process - [purchase orders](/docs/cmms/expenses-and-costs) can track the buy, and receiving bumps the stock back up.

## Programmatic access

`parts:read` / `parts:write` on the [REST API](/docs/reference/rest-api); `list_parts`, `create_part`, asset-part association tools via [MCP](/docs/ai/tools-and-scopes). A common first automation: a weekly AI-generated "below reorder point, by supplier" summary - see [example workflows](/docs/ai/example-workflows).
