Transaction types
Every transaction type the ledger can print, and what creates each one.
A transaction is one row recording one change to stock: a quantity, an item, a location, a time, and the person who caused it. The ledger is every such row for the organization, in one list. On-hand figures are the sum of those rows, so the ledger is the only place a count can be explained.
The ledger
Open Inventory and choose the Transactions tab, at /inventory?select=transactions. The heading reads Stock Transactions, followed by the number of rows currently shown.
Each row carries seven columns: Type, Item, Location, Change, Note, By and Date. Change is signed and colored, so +12 is green and -4 is red. A zero stays gray, because a transfer or an adjustment that nets out is neither a gain nor a loss.
The ledger pages 12 rows at a time.
Where a movement came from a work order, the Note is where it says so: an automatic note reads Auto-generated upon completion of Work Order: #237. Notes are clamped to two lines, with the full text on hover.
Tracing one work order. The ledger has no work-order column, no work-order filter and no link back to the job. Filter by type, then match on the item, the timestamp and the name in By.
An organization with no movements shows No stock transactions yet. For one item's history instead of the whole organization, open the item and read Transaction history at the bottom of the drawer; on an item stocked as pieces, individually numbered units of the same part, that list merges every piece and keeps the Item column to say which one moved.
On mobile. The ledger is the Transactions segment of the Inventory screen on iOS and Android, with the same type filters. Rows stack rather than forming columns, which is what the web does too in the item drawer and in a narrow window.
The transactions ledger in the mobile app, carrying the same typed filters as the web.
Transaction types
Every row wears a badge in the Type column. The label is short so it fits a fixed-width column; hover it to read the backend's full name, so WO Checkout is Work Order Checkout. A badge beginning WO was written by a work order rather than by a person.
The badge's color is its direction, not its type: four tones carry all eleven badges, so you can scan the column for what came in, what left, and what only moved.
The 11 transaction types grouped by direction: in, out, loss and neutral.A legend of eleven transaction badges in four columns, one column per direction. In, described as stock the organization did not have before: Receipt, WO Receipt, WO Return, WO Check-In, and a dashed Production. Out, described as stock that left the shelf: Issue, WO Issue, WO Checkout. Loss, described as gone, and the row a supervisor hunts for: Scrap. Neutral, described as the same total, moved or corrected: Transfer, Adjustment. A line across the bottom reads: four tones carry eleven badges, the color follows the direction rather than the type, and Production, dashed, is legacy.| Badge | Full name | Direction | Created by | Notes |
|---|---|---|---|---|
| Receipt | Receipt | In | Add on an item's stock adjustment, and the starting count on a new piece | The stock-in you write by hand. See Add stock with a receipt |
| WO Receipt | Work Order Receipt | In | The server, on a work-order close | Stock a job made, arriving at that line's location |
| WO Return | Work Order Return | In | The server, on a work-order close | Stock that went out against a job and came back |
| WO Check-In | Work Order Check-In | In | The server, on a work-order close | A tool returning from a job's custody. Nothing was bought |
| Issue | Issue | Out | Remove on an item's stock adjustment | The stock-out you write by hand |
| WO Issue | Workorder Issue | Out | The server, on a work-order close | A job consuming a required line. The full name is the backend's own wording, without the space |
| WO Checkout | Work Order Checkout | Out | The server, on a work-order close | A tool leaving the shelf into a job's custody. The count drops with nothing used up |
| Scrap | Scrap | Loss | The server. No web control writes one | Stock leaves like an issue, but it gets the ledger's one flag color because it is the row a supervisor hunts for |
| Transfer | Transfer | Neutral | The server. No web control writes one | Stock changing location. The organization's total does not move |
| Adjustment | Adjustment | Neutral | Set count on an item's stock adjustment | A counted correction, up or down. See Correct a count with Set count |
| Production | Production | In | Nothing new. See Legacy types | Old rows only |
Three types are the only ones a person writes directly, and all three come from the same control: Add, Remove and Set count on Adjust stock and track locations. Everything else is written by the server when a work order closes, which is covered on How work orders move stock.
Which badge does a close write? IoTFlows sets that server-side, and no client screen names the pairing, so read the badge on the row rather than predicting it from the parts list. What each close moves, and in which direction, is on What happens on completion.
Logging scrap against a production job is a different record. It reaches the job, the schedule and historical production, and writes no ledger row. See Where scrap appears.
You do not need the ledger to answer "how many are on the shelf". That figure is On hand on the item itself, and the ledger only tells you how it got there. Open the ledger when a count is wrong, when you want to know who moved something, or when you are reconciling a month.
Filter by type
Eight chips sit beside the heading, one at a time. Eleven types would be eleven buttons, so the chips group them by the question people actually ask.
| Chip | Keeps |
|---|---|
| All | Every row, including a type this version does not recognize |
| Receipts | Receipt, WO Receipt, and legacy Production |
| Issues | Issue, WO Issue |
| Returns | WO Return |
| Tooling | WO Checkout, WO Check-In |
| Transfers | Transfer |
| Adjustments | Adjustment |
| Scrap | Scrap |
Tooling holds both halves of custody, out and back, rather than filing the check-in under receipts. That is the filter to use for the question "where is the torque wrench", since the two rows for one tool sit together.
Choosing a chip filters the rows already loaded, updates the count next to the heading and returns you to page 1. Below a tablet width the chips collapse into a dropdown showing the selected filter, which is also what the mobile apps show.
Legacy types
Production is a legacy type. The backend used to write it for anything a job produced, then split that into the work-order types above. New rows use those; old rows keep Production so a historical ledger still reads correctly.
It is toned as stock in, and the Receipts chip keeps it, so a receipts filter over a long window returns both the old rows and the new ones.
A type the client has never seen prints as a gray badge carrying whatever the server called it, so a new backend type is readable the day it ships. It matches no chip, though: until the client learns it, it appears under All only.


