Skip to main content
IoTFlows - Return to homepage

Command Palette

Search for a command to run...

View as Markdown

Adjust stock and track locations

Record a receipt, an issue, or a corrected count, at one location, with a note.

Stock in IoTFlows is never a single number on an item. It is a quantity of one item at one location, which is one node of your location tree: Main Plant › Storeroom › Shelf B. Every change to a quantity writes a row in the item's ledger, the Transaction history at the foot of its detail, so the count and the history can never disagree.

Adjusting stock takes an Owner or Administrator role. Every other member can open an item and read its quantities, but the Adjust buttons are not rendered for them. You also need an item to adjust: see Create and edit items.

Open an item's stock

  1. Go to the Items tab of Inventory, at /inventory?select=items.
  2. Select the item to open its detail drawer.
  3. Scroll to Stock by location.
  4. Select Adjust on the location you are correcting.

The modal opens titled Adjust stock, followed by the item's name, with that location already selected and its current quantity loaded.

Two other buttons open the same modal. Add a location, at the top right of the Stock by location card, opens it with no location chosen and zero on hand, which is how you stock an item somewhere for the first time. On an item held as individually numbered pieces, each piece carries its own Adjust button instead, covered on Track serialized pieces and tools.

There is no way to adjust stock from the catalog list or from an item card. Stock is adjusted from the item's detail, one location at a time.

Read Stock by location

The Stock by location card lists one row per location that holds this item, each with its full breadcrumb path, its own quantity in the item's unit, and its own Adjust button. A quantity that has gone below zero is printed in red.

The On hand figure at the top of the drawer is the sum of those rows. A location with no row holds zero of this item, not an unknown amount, which is why adjusting at a new location starts from zero rather than from the item's total.

The Stock by location card on an item's detail, showing two location rows with their quantities and Adjust buttonsStock by location on one item, with one row per location and an Adjust button on each.

On mobile. Inventory ships on iOS and Android with the same stock model. The item detail carries the same per-location rows, and the adjustment sheet offers the same three directions and the same note field. Standing at the shelf with a phone is the common case for a count, so the mobile path matters more on this page than elsewhere.

An item's stock by location on the iOS app, listing each location with its quantityStock by location in the mobile app. This is the screen a storeroom uses standing at the shelf, which is why the mobile path matters more here than elsewhere.

Choose a direction

The modal never asks for a signed number. You pick a direction, then a positive quantity, and IoTFlows supplies the sign.

DirectionQuantity you enterUse whenTransaction recorded
AddHow much arrivedStock came in from outside a work order: a delivery, a return from a bench, a correction you can name as an arrivalReceipt
RemoveHow much leftStock left outside a work order: scrapped at the shelf, sold, consumed by something IoTFlows does not trackIssue
Set countThe new counted totalYou have physically counted the shelf and the number on screen is wrongAdjustment, for the difference only

All three land at the one location selected in the modal. Transaction types lists the other eight types, which are written by work orders rather than by hand.

Add stock with a receipt

A receipt is stock arriving. Select Add, which is labeled Stock coming in.

  1. Confirm the Location at the top of the modal, or pick another.
  2. Enter the amount with the + and − tiles, or type it into the number field.
  3. Write a Note saying where it came from, for example PO 4471, Grainger, 2 boxes.
  4. Select Apply.

IoTFlows confirms with Stock updated and writes a Receipt for the amount. The item's detail, its ledger and the catalog counts all refresh.

The card under the note field previews the result before you commit it: it reads New on hand here, showing the current quantity, an arrow, and the quantity you are about to create, with a green pill carrying the change. Changing the location clears the amount, because an amount counted against one shelf means nothing against another.

The Adjust stock modal set to Add, with a location, a quantity of 24, a note, and a preview reading 12 to 36The Adjust stock modal in Add, with a note saying where the stock came from and the before and after preview beneath it.

Remove stock with an issue

An issue is stock leaving. Select Remove, which is labeled Stock going out, then enter how much left and apply. IoTFlows writes an Issue for that amount.

You do not need Remove for parts a work order consumes. A work order reserves what it requires and moves the stock when it is completed, and doing both leaves the shelf short twice over. See How work orders move stock.

Removing more than you have is allowed. The preview turns red and warns This will drive on hand negative, and Apply stays enabled. A negative count almost always means a receipt was never recorded rather than that the shelf owes you parts, so count the shelf and use Set count instead of removing past zero.

Correct a count with Set count

A set is a correction to a counted total. Select Set count, which is labeled Correct to a counted total. The field prefills with what IoTFlows currently believes is at that location.

  1. Replace the prefilled figure with the number you counted.
  2. Read the preview: it shows the old quantity, the new one, and the difference as a pill reading, for example, -3 correction.
  3. Write a Note naming who counted and when.
  4. Select Apply.

IoTFlows writes an Adjustment for the difference, not for the total. Counting 41 where the system held 44 writes a single -3 row, so the ledger still reconciles to the quantity on the shelf.

Apply is disabled when the counted total matches what is already there. There is no correction to record, so the modal has nothing to write.

Use set only after a physical count, and always with a note saying who counted. Receipt and issue tell you what happened; set tells you only that somebody disagreed with the number, and without a note nobody can audit it later.

The Adjust stock modal set to Set count, with the counted total entered, a note naming the counter, and a correction pillSet count after a physical count, with the note naming who counted. The pill beside the new total shows the correction the ledger will record.

Write a note

The Note field is optional to the form and close to mandatory in practice. It is offered in all three directions, and the item's Transaction history carries a Note column to print what you write, which is the only place a future reader can find out why a number moved.

The note is not reaching Transaction history. Checked on the web app on 2026-09-21: a note typed into Adjust stock applies without an error and the quantity moves correctly, but the ledger's Note column reads — on the new row, and the transaction comes back from the API with no note on it. Keep writing them, since that is the field the product reads back from, and until the column fills in, keep anything you have to be able to audit in a second place as well.

Write what the quantity alone cannot say: Counted by J. Okafor, cycle count week 38 on a set, PO 4471 short by 6, supplier notified on a receipt, Scrapped, bent on unload on an issue.

The adjust stock sheet on Android in Set mode, with the counted total and the note field filled inSetting a counted quantity on Android. The note is what makes a set auditable later.

Pick or create the location

Location is required on every adjustment, and Apply stays disabled until one is chosen. The picker is your location tree: search it with Find a location, or expand it and select a node.

You can create a location without leaving the modal. Select the + beside a node to add one inside it, or Add a location at the tree's root for a top-level one, type the name, and confirm. IoTFlows answers Location created and selects it.

Told the location was created but nothing is selected? The message Location created, but the response did not identify it. Reopen to see it. means the location was saved and the modal could not select it. Close the modal, reopen Adjust, and pick the new location from the tree. Nothing was lost, and you do not need to create it again.

Reserved by work orders

Reserved is how much of an item open work orders are holding. When a work order requires a part, that quantity is netted out of what other jobs can draw on, but it is still physically on the shelf and no transaction has been written.

The Reserved by open work orders card lists one row per work order, with its number, its status, the location it is holding stock at, and the amount in amber. Select the arrow on a row to open the work order: maintenance work orders open on the Maintenance page, production ones in the scheduler.

This is why two numbers that look like they should agree do not. On hand is what is on the shelf; Available is on hand minus reserved, and it is what a new job can actually take. The item's detail shows On hand, and the catalog's list mode carries all four figures side by side, covered in Create and edit items.

Reorder points are measured against Available, so an item can be flagged low while a full shelf sits in the storeroom spoken for. See Monitor low stock and reorder points.

A tool's Reserved by open work orders card above its Coming back from open work orders card, each listing work orders with a number, a status, a location and a quantityReserved by work orders and incoming from them, which is why on hand and available differ.

Incoming from work orders

Incoming is the mirror of reserved: what open work orders will add to this item. A manufactured part is being produced, and a reusable tool is on its way back to the shelf, so a tool's card is titled Coming back from open work orders instead.

The total appears under On hand as a green +6 incoming line, and the card beneath lists the work orders bringing it, each against the location it will land at.

Incoming is deliberately not added into Available. None of it is on a shelf yet, and a job cannot pull from stock that does not exist.

Do not receive incoming stock by hand. Adding a quantity that a work order is about to create counts it twice: once when you apply the receipt, and again when the work order is completed and writes its own. Let the work order land it, then count the shelf if the number looks wrong.

When an adjustment fails

A failed Apply raises the reason IoTFlows gave and saves nothing. The quantity on the shelf is unchanged, no ledger row is written, and the modal stays open with your entries intact, so you can correct and apply again.

Some failures return no reason, which renders as an empty message. Treat that the same way: the request failed, the change was not saved, and applying it again is safe. If it keeps failing, see Get support.

See also