Quantity-Tracked Assets and Consumables
Track fungible items by count instead of one record per unit — cables, gloves, supplies, and consumables. Set a quantity, a unit of measure, low-stock alerts, and how stock is consumed.

Not everything you manage is a single, uniquely-identifiable item. Laptops, cameras, and vehicles each deserve their own record — but pens, USB-C cables, gloves, and other supplies are managed by how many you have, not by individual identity. Shelf now supports both. When you create an asset you choose a tracking method, and quantity-tracked assets let one record stand for a pool of identical units at a location.
Two tracking methods
When you add or edit an asset, you pick how it should be tracked:
- Individually tracked (default) — One record equals one physical item, exactly as Shelf has always worked. Each item has its own QR code, custody history, and booking history.
- Tracked by quantity — One record represents a pool of identical units (for example, 500 cable ties). You manage the count rather than each unit, and a single QR code represents the whole pool.
| Individually tracked | Tracked by quantity | |
|---|---|---|
| QR code | One per item | One shared QR for the pool |
| Custody | One custodian per item | Several people can each hold a portion |
| Bookings | Reserve specific items | Reserve a quantity from the pool |
| History | Full per-unit lifecycle | Aggregate quantity changes |
Creating a quantity-tracked asset
- Click Assets in the sidebar, then New asset
- Give the asset a name
- Under Tracking method, choose Tracked by quantity
- Fill in the quantity fields that appear:
- Quantity — how many units you have (for example, 500)
- Unit of measure — what they're counted in (for example, "pcs", "boxes", "liters")
- Min quantity (optional) — the low-stock threshold; Shelf alerts you when available stock drops to or below this number
- Consumption type — how the stock behaves after checkout (see Consumption types below)
- Add a Category, Tags, Location, and any other fields as usual
- Click Save
Consumption types
Quantity-tracked assets can behave in one of two ways after they're handed out or checked out:
- Used up (one-way) — Units are consumed and not expected back, so the count permanently drops when they are settled. This applies on both routes stock leaves by: checking in a booking, and ending a custody hold. Either way the default is to consume everything that went out, and you can record a smaller number if some came back unused. Best for disposables: gloves, masks, single-use kits.
- Returnable (two-way) — Units are checked out and returned, with a consumption report on the way back. Check out 10 cables; when they come back you report what returned and what was lost or used up. Returned units go back into available stock and the rest are deducted. Best for reusable supplies that occasionally go missing.
When new stock arrives, you can restock a quantity-tracked asset to increase its count. Every quantity change is logged for an audit trail.
Quantity-aware custody
For quantity-tracked assets, custody is by portion rather than all-or-nothing:
- Assign part of the pool to a person — for example, "20 of 100 USB-C cables to Sarah." The available count drops by 20.
- Several team members can hold different quantities of the same asset at once.
- Ending a hold, fully or partially, settles those units according to the asset's consumption type.
Ending a hold on returnable stock
On a returnable (two-way) asset the custody row's action is Release. Enter how many units to hand back, up to what that person holds, and they go straight back into the available pool. The asset's total quantity does not change, because nothing was used up.
Ending a hold on a consumable
On a used-up (one-way) asset the same row reads Mark as consumed, because a consumable's units are not expected back. The dialog asks two questions:
- Units to release, meaning how many leave that person's hold.
- Of those, how many were used up?, pre-filled to all of them, which is the usual answer for a consumable.
Whatever you record as used up is permanently removed from the asset's total quantity and cannot be restored. Anything left over goes back into the available pool, so a crew that took 40 pairs of gloves and used 10 can hand the other 30 back in one action rather than writing off all 40.
The asset's Activity tab records the outcome in the same words, for example "ended Sarah's hold on 40 unit(s): 10 consumed and 30 returned to stock", and a consume that takes available stock to or below the min quantity triggers the usual low-stock alert.
Shelf decides this from the asset itself rather than from where the request came from, so the outcome is the same whether you end the hold on the web or from the Companion app.
Worth a one-time check. Consumption type used to be applied at booking check-in only, so units handed out as custody and then released went back into stock whatever the asset's type. If a consumable's count reads higher than what is actually on the shelf, that is the likely reason. Edit the quantity on the asset once to bring it in line, and it stays in line from here.
Where the units are
A pooled asset doesn't have to sit in one place. Its asset page lists every placement, meaning a location plus how many units are there, so 100 USB-C cables can be recorded as 60 in the main stockroom and 40 in the van. Each placement has its own row you can adjust, and any units you haven't placed yet show as unplaced.
Placements come from two directions:
- Manual placements are the ones you set yourself. You can move units between locations from the placement row.
- Kit placements appear when the asset is inside a kit that has a location. The kit holds a slice of the pool, say 20 of the 100 cables, and those units follow the kit. They're marked via kit on the asset page; to move them, change the kit's location rather than editing the placement. Change the kit's quantity and the slice at its location follows.
The two are independent, so a pool can be partly placed by hand and partly held by kits at the same time. Take the asset out of the kit and the kit's slice is released back to unplaced.
On the mobile app
Quantity-tracked assets are available in the Shelf Companion app for iPhone and Android, so you can read stock and hand out units from the floor:
- The assets list shows a quantity pill on each pooled asset's row.
- The asset detail screen shows a quantity card with the total plus a per-status breakdown — available, in custody, reserved, and checked out — and a custody row for each person, listing how many units they currently hold.
- Tap Assign to give a set number of units to a team member. The amount is capped at the units actually available to assign.
- Tap a holder's custody row to end their hold. The amount is capped at the units that person can release. On a returnable asset the units go back to the pool. On a used-up consumable the app asks a second question, "Of those, how many were used up?", pre-filled with the whole hold because that is the usual case. What you mark as used up leaves the total; the rest returns to the pool. This matches the web split exactly.
- Tap Adjust on the quantity card to correct the stock figure itself. Choose add or remove, enter the amount, and give a reason. Adding is recorded as a restock and removing as a loss, so a shelf count you fix in the aisle lands in the asset's history with your note rather than as an unexplained change.
- The Available figure turns amber when it drops to or below the asset's minimum quantity, using the same low-stock rule as the web.
- On a booking, check out part of a pooled line and leave the rest booked, then record the return with the same Returned / Lost / Damaged split (or Consumed / Lost / Damaged for consumables) the web check-in drawer uses.
Individually tracked assets look and behave exactly as before in the app. See Getting Started with Shelf Companion for the full mobile walkthrough.
Quantity in bookings
The promise is the same one Shelf makes for a camera or a laptop: you can't reserve something that isn't there. What changes is the question being asked. A camera is one specific thing, so the question is whether anyone else has it. A pool of sandbags is a count, so the question is how many are free on your dates.
Shelf checks that at the moment it matters, when you confirm a booking or change what's on it, and it locks the asset while it checks. Two people confirming at the same second can't both slip through.
Dates matter, not just totals
The count is worked out for your booking's dates, not for the calendar as a whole. Take a pool of 10 sandbags:
- Three separate bookings of 7 sandbags, one in each of three different weeks, are all fine. Only 7 are ever needed at the same time, so 3 stay free in every one of those weeks.
- Two bookings of 7 and 8 sandbags in the same week are not. That's 15 at once out of 10, so the second one is turned away while only 3 are free.
This is the part that surprises people coming from individually tracked gear, where a booked item is simply gone for anyone else. A pool isn't gone, it's counted, so gear that comes back before your booking starts is yours to book.
The one thing that ignores dates is an overdue booking. Nobody knows when a late return is coming back, so its units keep counting against every date until someone checks it in.
Picking a quantity
Open the asset's row on the booking and choose Adjust quantity. The dialog tells you what you've got to work with for these dates, written plainly as "4 of 12 sandbags available" with the date range underneath, plus how many units other bookings are holding. If your role can see other people's bookings, a View bookings link takes you to them.
Ask for more than the dates allow and Shelf refuses with the exact shortfall: "Only 3 of 10 units available in this window — reduce the quantity to continue." Going the other way, lowering a quantity always works, no matter what state the booking is in.
Reading the asset page
The Available row on the Quantity Overview card answers a different question: what's on the shelf right now. It's the total, less anything in someone's custody, held by a kit, or checked out on its own. A booking three weeks out doesn't touch it. Those units sit on their own Reserved (bookings) row, with a tooltip saying how many bookings they're spread across.
Units a kit holds are counted once, under In kits, whether the kit is sitting on the shelf or out on a booking. Checked out (bookings) is the fuller picture: every unit physically out, loose ones and kit-held ones together. The two rows overlap on purpose, so don't add them up.
Locations are listed separately, on In locations, and don't reduce anything. A sandbag can be in Studio A and still be free to book.

If a booking is flagged
Since the check runs when you book, you shouldn't be able to over-reserve a pool in the first place. What no system can prevent is the pool getting smaller after the fact: a previous booking comes back late, or someone hands units out as custody in the meantime. Rather than quietly cancel a booking somebody is relying on, Shelf marks it and lets a human decide:
- Stock conflict, an amber pill on any bookings list, means one of that booking's pooled items is short for its dates. Open the booking to see which.
- Insufficient stock, a red badge on an item's row, is the item in question. Lower the quantity, or free units elsewhere by releasing custody or checking in the late booking.
- Checked out elsewhere, an amber badge, is not a blocker. Your dates are fine; some units just happen to be out right now and are due back before you need them. On used-up stock, read it as a maybe rather than a promise: units that go out are consumed when that booking is checked in, not returned, so the pool can end up smaller. If that leaves you short, the row turns red and a restock clears it.
Stock is protected from the other side too. You can't lower an asset's total quantity below what's already promised to custody, kits, or overlapping bookings.
Coming back
For returnable assets, check-in reconciles what came back versus what was consumed before the booking closes. That reconciliation runs on the web and in the Companion app, so a partial return can be settled on the floor.
What total value counts
The value you set on an asset is its per-unit value. For a quantity-tracked asset Shelf multiplies it by a count, and the count is the one that fits the number you are reading. A box of 100 cables at €2 each is €200 of stock, and the five of those cables that sit in a kit are €10 of that kit.
| Where the total appears | What it counts |
|---|---|
| Dashboard inventory value, the Asset Inventory, Asset Distribution and Idle Assets reports, and the Total value column of a standard CSV export | Everything you hold: per-unit value times the asset's full quantity |
| A kit's total value on the kit overview | Only the units that kit holds |
| A booking's total value, including the pull-list PDF | Only the units booked for those dates |
| The Custody Snapshot report | Only the units that custodian is holding |
| Value at risk on the Overdue Items report | Only the units still out on the late booking |
So a booking that reserves 5 cables out of a 100-cable pool shows €10, not €200, and the same 5 cables show €10 on a kit that holds them.
A standard export carries both numbers side by side: Value is the per-unit price and Total value is the quantity-aware total. The import-ready export carries only the per-unit price, so the file re-imports without inflating anything.
Individually tracked assets are unaffected. With a quantity of one, per-unit and total are the same number.
Low-stock alerts
If you set a min quantity, Shelf watches the available count for that asset. When a stock adjustment, a custody assignment, or a booking check-in takes the count to or below the threshold, the workspace owner and every admin get an email so someone can reorder before you run out, and whoever made the change gets an in-app notification.
The email is sent once per crossing, not once per decrement. An item that is already flagged stays quiet until it recovers, so drawing a pool down over several days does not fill anyone's inbox. When stock rises back above the threshold through a restock or returns, the same people get a Back in stock email and the Low stock badge on the asset page clears itself.
Finding everything that is running low
The alert tells you about one item at a time. To see the whole picture:
- Open Assets with the advanced asset index enabled.
- Click Filter, then tick Low stock only (labelled at or below reorder threshold). The list narrows to quantity-tracked assets at or below their minimum.
- Optionally add the Min quantity column from the column picker so each item's threshold sits next to its live count.

The filter clears with the rest of your filters, and it counts toward the filter badge on the Filter button.
Every quantity change is logged
Quick adjustments are not the only thing recorded. Changing the quantity on the asset edit form, changing the min quantity threshold, the decrements a booking check-in applies, and the units consumed when a custody hold ends each write an entry to the asset's Activity tab with the previous and new value and the person responsible, plus a stock adjustment against the pool. Consumed and returned units are logged separately, so a partial settlement shows both halves. Whatever route stock took, the history explains it.
Editing stock in bulk
Resetting thresholds across a shelf of supplies, or correcting counts after a stocktake, is faster from a spreadsheet than one asset at a time. Export the assets, edit the file, and upload it to Assets → Import → Update existing, which previews every change before anything is saved. Quantity, Min quantity, Unit of measure, and Consumption type are all updatable this way.
Pick the Import-ready export format for this. It already includes all four columns and writes the quantity as a plain number. A Standard export writes the quantity with its unit attached, as 10 boxes, and does not include the other three at all, so it needs a manual pass first.
An asset whose units sit in more than one location is the one exception: the Location column is flagged and skipped on those rows, because a single cell cannot say which placement you meant. Everything else on the row still applies. Full walkthrough: Bulk Updating Assets via CSV.
Asset models (optional)
You can group individually tracked assets under an Asset Model (for example, "Dell Latitude 5550") so that shared defaults — like category and valuation — are pre-filled when you create new assets from that model. A model also holds one cover image that stands in for every unit without a photo of its own. Asset models are managed under Settings → Asset models, and you can bulk-create assets from a model. To group units you already own, select them in the asset index and use Actions → Update asset model, or Remove from asset model to ungroup them. Models also unlock booking by model: reserve "4x" of a model and scan any 4 units at pickup. Note that models group individually tracked assets only; a quantity-tracked pool cannot join a model, and quantity-tracked assets caught in a bulk grouping are skipped with a count rather than failing the batch.
When to use which method
- Use Individually tracked when each unit needs its own QR code, custody chain, and history — laptops, cameras, vehicles, instruments.
- Use Tracked by quantity when only the count matters — cables, adapters, gloves, fasteners, and other supplies.
For the full decision framework, including when a fleet of identical units belongs under an Asset Model, see How to Choose a Tracking Method.
Need per-unit history on a pooled item? Printing several QR labels for one quantity-tracked asset still points every label at the same pool — they all show and adjust the same count. If you need independent history per unit, track those items individually instead.
Related Articles
- Consumables Tracking — track consumables by quantity, with units, low-stock alerts, and quantity-aware custody
- How to Choose a Tracking Method — individual assets, Asset Models, or quantity tracking, per item type
- Adding New Assets — the full asset creation walkthrough
- Adding Additional Fields to Assets — capture business-specific data
- How to Create a Booking — reserve assets, including quantities
- Troubleshooting: Booking Conflicts, for when a booking is blocked or a pool is over-reserved
- Using Categories to Organize Your Asset Inventory
Ready to try Shelf?
Put what you're learning into practice. Free plan available — no credit card required.