Inventory

Adjust Stock After a Count, Loss, Damage or Stock Found

Stock adjustment corrects selected item quantities with one named reason. Every newly selected Inventory count row starts at zero, so enter and review each complete physical count before adjusting.

Menu path
Inventory -> Items -> Tools -> Stock adjustment
Verified from
Posnic demo and current POS source reviewed on 2026-09-08
Technical source evidence

Live local POS Stock adjustment dialog audited on 2026-09-10, frontend/modules/items.html stock_adjust_modal, frontend/static/script/js/modules/js/items.js openStockAdjustment, _adjMode, renderAdjRows and submitStockAdjustment, api/src/controllers/items.controller.js stockAdjustment, api/src/repositories/item.repository.js stockAdjustment, frontend/modules/stockactivity.html

Stock adjustment workspaceLive workflow rechecked on 2026-09-10. Choose the reason before entering quantity because Counted, Qty lost and Qty found have different meanings.
Verify the movementAfter adjustment, use Inventory Logs to confirm the reason, operator and opening-to-closing quantity change.

Use an Adjustment Only for a Real Stock Difference

An adjustment changes the stored available quantity directly. First identify why physical stock and Posnic differ, then use the operation that preserves the real business event.

What happenedCorrect workflowDo not use
A physical count found a different balanceStock adjustment -> Inventory countEditing opening stock or inventing a purchase.
Goods were lost, damaged, stolen or expiredStock adjustment -> Loss, Damage or a custom subtract reasonDeleting the item or changing a past sale.
Sellable units were found but not in the POS countStock adjustment -> Stock foundA fake supplier purchase.
A supplier delivery arrivedPurchase / receivingStock adjustment, because it drops supplier, cost, invoice and payment evidence.
A sale, return or purchase was entered incorrectlyCorrect that source transactionA compensating adjustment that hides the original error.
The same approved change applies to a category or all itemsTools -> Bulk stock updateAdding hundreds of rows to one Stock adjustment.

Know What Each Reason Does

ReasonQuantity field meansStock calculation
Inventory countCounted: the total physically presentStock after becomes the entered count.
LossQty lost: units missingEntered quantity is subtracted; stock cannot fall below zero.
DamageQty lost: units no longer sellableEntered quantity is subtracted; stock cannot fall below zero.
Stock foundQty found: additional units discoveredEntered quantity is added to current stock.
Custom reasonQuantity follows the selected directionChoose Removes stock, Adds stock or Sets stock to the count explicitly.

Do Not Submit the Default Zero Count

Under Inventory count, selecting an item creates a row with Counted set to 0 and Stock After set to 0. This is not a placeholder preview: submitting it sets that item's stored quantity to zero. Treat every newly added row as unfinished until its complete physical count has been entered and checked.

  • Read the selected item name and In Stock value before entering the count.
  • Enter the full quantity physically present, not the difference from In Stock.
  • A genuine zero count is allowed, but it should be supported by the count sheet and manager approval.
  • Remove an item row with the row remove control when it was selected accidentally or has not been counted.
  • Changing Reason recalculates every selected row, so review every Stock After value again after changing the reason or custom direction.

Run a Physical Count Adjustment

  1. Finish counting the shelf, store room and any sellable units already set aside before touching the POS.
  2. Open Inventory -> Items, then Tools -> Stock adjustment.
  3. Leave Reason as Inventory count. Confirm the quantity heading says Counted.
  4. Enter a useful note, such as Monthly count 2026-09 shelf A. The note is optional and accepts up to 500 characters.
  5. Search by item name, SKU or barcode and select the exact product.
  6. Compare In stock with the count sheet, then enter the complete physical Counted quantity, not the difference.
  7. Read Stock after. It must equal the physical count.
  8. Repeat for the remaining counted products and remove any accidental row with the row remove control.
  9. Click Adjust once. A single request accepts at most 200 rows.
  10. Open Inventory -> Inventory Logs and confirm each changed tracked item has the expected opening, change and closing balance.

Record Loss, Damage or Stock Found

  1. Open Stock adjustment and choose Loss, Damage or Stock found before adding quantities.
  2. Add an identifying note: incident, shelf, batch, expiry date or manager reference.
  3. Search for and add the affected item.
  4. For Loss or Damage, enter only the quantity removed. For Stock found, enter only the quantity added.
  5. Check Stock after for every row. Posnic previews subtract operations with a zero floor.
  6. Click Adjust, then verify the result in the item list and Inventory Logs.

Use a Custom Reason Safely

Custom reason supports events such as Theft, Expiry, Sample use or Transfer correction. The reason is stored as the inventory movement process, so name it consistently.

  • Custom reason cannot be blank and is limited to 60 characters.
  • Removes stock subtracts the entered quantity and stops at zero.
  • Adds stock increases the current quantity.
  • Sets stock to the count replaces current quantity with the entered physical total.
  • Do not encode confidential employee accusations in the reason or note; use the business incident record for sensitive detail.

Understand Validation and Skipped Rows

The server applies the adjustment only inside the signed-in branch and license. It requires Item write permission and rejects a request with no rows, no valid reason/direction, or more than 200 rows.

  • A row is skipped when its item ID or quantity is invalid, the quantity is negative, the item is outside the branch/license scope, or the calculated stock does not change.
  • Entering zero for Inventory count is valid and sets a non-zero item to zero.
  • Entering zero for add or subtract makes no change and is skipped.
  • Loss and Damage never create negative stock even when the entered loss exceeds current stock.
  • The item record stores the new available quantity plus the updating user and time.

Read the Completion Result

One submission can contain up to 200 selected items. The server processes valid rows independently, returns how many were updated and skipped, and reports Adjusted N item(s) whenever at least one quantity changed. The current dialog shows that success message, closes, refreshes the item list and refreshes the low-stock indicator; it does not list skipped item names.

  • After a multi-item adjustment, verify the expected number of changed items instead of treating the closed dialog as proof that every row changed.
  • Rows with invalid identifiers or quantities, inaccessible items, negative quantities, or no calculated quantity change are skipped.
  • If a row is missing from the expected result, search that item in the refreshed item list and Inventory Logs before repeating the adjustment.
  • Do not resubmit the whole batch blindly; a second run can apply the same add or subtract change twice to rows that already succeeded.

Use Quantities That Match the Item Unit

The dialog sends numeric quantities and the server accepts finite non-negative decimals. Use whole numbers for indivisible units such as boxes or pieces, and fractional quantities only when the item's selling and stock unit genuinely supports them, such as weight or volume.

  • Loss and Damage are floored at zero even when the entered quantity exceeds In Stock.
  • Stock found adds the entered quantity without an upper cap, so confirm misplaced decimal points before submitting.
  • The adjustment does not convert cartons, packs or purchase units into stock units; receive supplier packs through the purchase workflow where conversion evidence is available.

When an Inventory Log Is Written

A changed item produces a stock-log movement only when that item has Track inventory enabled and the branch Stock Management Log setting is enabled. The item quantity can still change when branch stock logging is disabled, so confirm the branch policy before relying on the ledger as complete evidence.

ConditionQuantity changesInventory Log movement
Tracked item and branch stock logging enabledYesYes, with the chosen reason, note, operator, opening and closing values.
Tracked item and branch stock logging disabledYesNo adjustment movement is written.
Item is not inventory trackedYes when selected by the endpointNo stock-log movement is written.
Calculated result equals current stockNoNo; the row is skipped.

Recover from a Wrong Adjustment

  1. Stop and recount the affected product before making another change.
  2. Open Inventory Logs and record the mistaken movement's reason, user, time, opening and closing values.
  3. Open Stock adjustment and use Inventory count to set the verified physical total.
  4. Use a clear custom reason such as Correction after wrong adjustment and add the original movement reference in the note.
  5. Verify the correcting movement and notify the manager responsible for stock reconciliation.
  6. Do not delete the item or alter an unrelated sale to force the displayed quantity to match.

Acceptance Check

  • The selected reason matches the real event.
  • Counted was entered as a final physical total; Qty lost or Qty found was entered as a difference.
  • Every Stock after preview was checked before Adjust.
  • The resulting item quantity matches the physical count or incident record.
  • Tracked movements appear in Inventory Logs when branch logging is enabled.
  • Supplier receipts and transaction corrections remain in their proper purchase, sale or return workflows.