Inventory & locations
Where stock lives, how on-hand is tracked, and how it moves.
Carbon stores stock at a location and, optionally, in a storage unit. On-hand quantity is derived from an append-only movement ledger rather than an editable balance.
Locations and storage units
A location is a site or warehouse. Storage units are nested bins or shelves within a location, such as aisle › shelf › bin, and can be typed as cold, hazardous, or returns. A storage unit attached to a work center is a lineside bin for point-of-use material; other storage units are warehouse bins.
A storage unit or storage type can be marked , for a quarantine or hold area. A unit is non-nettable when it is marked itself, when one of its storage types is, or when the unit it sits in is. Its stock stays on hand and keeps its value, but MRP and the planning screens do not count it as supply, and picking lists never take from it. Backflush and issue take from it only when that bin is chosen. A stock transfer moves the stock out again.
On hand is a ledger
The is the source of truth. On-hand is the sum of its signed movements: and outputs add, sales and consumption subtract, transfers move between places. A cached per-location quantity exists for quick reads, but the ledger is what's authoritative.
| Entry type | Effect |
|---|---|
Purchase · Output · Assembly Output | Goods received or produced into stock. |
Sale · Consumption · Assembly Consumption | Goods shipped or issued to a job. |
Positive Adjmt. · Negative Adjmt. | Manual corrections. |
Transfer | Movement between locations or storage units. |
Read on-hand from the ledger, not the cached quantity table. The ledger is the truth, and it's status-aware (it can separate what's on hold or rejected from what's truly available).
On hand can go negative. Shipping, issuing to a job, and picking all post their movements without first checking availability. Carbon would rather let the work proceed and reconcile later than block the floor. Only manual negative adjustments are guarded against overdraw.
Movements
A warehouse transfer moves stock between locations by posting a from one and a receipt into the other. A stock transfer moves stock between storage units in one location. A manual adjustment posts a positive or negative ledger entry; Set Quantity calculates the entry needed to reach a target.
Adjustments also post a , Provisional until the company has set up accounting. A loss debits inventory adjustment and credits inventory; a gain posts the reverse, valued at current item cost. Inventory count variances use the same accounts. Storage-unit transfers create no journal because value remains at the location. Scrap uses a negative adjustment offset to the scrap account.
Correcting a movement
The ledger is append-only — a posted movement is never edited or deleted. To fix one, use "Correct Quantity" on the movement in the Stock Movements screen and enter the quantity it should have been. Carbon books one opposite movement for the difference, linked to the original and dated with the original's posting date, so both sit in the right time period. The correction appears as its own row, flagged with a Correction badge that links it back to the movement it fixes. The journal for the correction posts into the original's accounting period. A locked period refuses the correction until it's unlocked; a closed period is permanent — once a movement's period has closed, it can no longer be corrected. Correcting the same movement again measures against what it currently nets to, so repeated corrections converge instead of stacking.
Value
Inventory value is on-hand quantity multiplied by item unit cost, aggregated by item and location. The Valuation report groups by location or item. Its Tie-Out panel compares subledger value with GL inventory balances. If they differ, Reconcile creates a draft adjusting journal for review and posting.
Serial unit cost
On an item's Inventory tab, each serialized unit in Storage Units shows what it is carried at: the cost a shipment, a scrap or a capitalization would take out of inventory for it. A unit with its own cost layer shows that cost; any other unit shows the next layer in the item's FIFO or LIFO order. A unit carried at nothing reads No cost. Only users who can view accounting see these costs.
To give one unit a cost of its own, for example a unit a job completed with no production or material recorded, use the row's Recost action. You need permission to update accounting, and the item must use FIFO or LIFO costing, since a Standard or Average item carries every unit at the item's one cost. Enter the Unit Cost and the Offset Account the cost was spent from (Retained Earnings by default). Carbon takes the unit off the layer it was on and books it on a layer of its own at the new cost; the difference posts between the inventory account and the offset account. Nothing moves, so the unit's quantity and location are unchanged.