Skip to content

Inventory Management

“Which document actually takes stock out?” “Stock Availability shows 50 physical but 0 available. Where did it go?” “My count and the stock report still disagree after a stock take.” Most stock questions are one of those three, and they share an answer: the number on your screen is typed nowhere. It is the running total of a stock ledger that background jobs write to after a document is finalised, and five different stock figures are built from it five different ways. This page says what happens behind the screen once, sends you to the guide for the situation you are in, and names the checks that stay with a person.

Meet GadgetSphere

GadgetSphere Sdn Bhd sells consumer electronics through 22 branches, with a fulfilment centre for its online arm, GadgetSphere Online (GSO), and about 5,200 SKUs. One flagship smartphone is received at GS-KV-01, sold at the counter, transferred to GS-PEN-01, listed on the online store and counted on Saturday. Every one of those touches the same ledger, and each guide below follows one of them.

Start here

Two questions belong to other pages. “Two numbers that should agree do not” is Numbers that don’t tally first, then Inventory reports, which says for every report whether its figure is stored or worked out when you run it. “I am new to this module” is Inventory core concepts.

What happens when you press FINAL

  1. The status is saved and a job is queued. FINAL saves the document and returns. The stock has not moved yet: a primary job picks the document up a moment later and hands it to the stock job.
  2. The stock job writes one ledger line per stock line. It skips a line whose document type moves nothing (a plain GRN, a delivery order, a quotation, an order) and a line whose item is not a stock item (a service, a charge, a non-stock or trade-in item). A bundle line is opened up into its components first. A basic item that has no inventory record yet is given one at this moment, so an unlinked basic item still moves stock. An alias item moves stock only if it points at an inventory item.
  3. The line lands at a location. The line’s delivery location, else its store, else the document’s store, else the branch’s default location.
  4. A second job rewrites the balance and the cost. For each ledger line it rewrites the stored balance for that location and for the company, recomputes the moving average, and writes the cost back onto the ledger line and the document line. That is why a sales invoice’s cost appears a moment after FINAL rather than at it.
  5. The same ledger line recalculates what the online store shows.
  6. The journal is a separate matter. A sale posts no cost-of-sales line. The stock account on the balance sheet catches up once a month, when Month End Processing writes cost of sales from opening stock, purchases and closing stock read off the ledger. Two inventory documents post a journal of their own: Stock Adjustment and Reset Moving Average.

Only nine document types bring their own amount into the moving average: purchase invoice, purchase return, GRN Stock In, GIN Stock Out, Stock Adjustment, consignment GRN and GIN, purchase trade-in and the stock-balance calibration a data sync writes. Everything else, a sale or a transfer included, leaves at the current average. So a transfer moves quantity without changing the company’s average, and a Stock Adjustment line with the wrong amount moves it.

Why the journal waits for month end. As we read the design, it keeps posted journals still. A group that receives late, keys invoices days after the sale and transfers between 22 branches would otherwise see every back-dated receipt rewrite the cost lines of sales in a closed month. The price is a reconciliation once a month, and it is a person’s job (below).

Decide two things before the first document

Which items are stock. A smartphone and a charging cable are basic items and move stock. An extended warranty and a delivery charge are service items and never will — by design, not by accident. Decide it at item creation, because that is also where serial and batch tracking is set.

Which document books a receipt, once per company.

If your flow isThe stock arrives on
Purchase Order → Purchase GRN → Purchase Invoicethe purchase invoice — the GRN moves nothing
Purchase Order → Purchase GRN Stock In → Purchase Invoice No Stock Inthe GRN Stock In — the No Stock In invoice books the money and clears the not-invoiced accrual

An ordinary Purchase Invoice after a GRN Stock In books the same units a second time, and nothing warns you. Only a No Stock In invoice knocked off the GRN Stock In clears the not-invoiced balance the GRN Stock In raised.

Five stock figures that are not the same figure

FigureWhere you see itStored, or worked out when you lookWhy it differs from the others
On handStock BalanceStored per item, per location and per company, rewritten after each ledger lineA moment behind FINAL; drafts never count
AvailableStock AvailabilityWorked out when you open it: on hand, adjusted by the open quantities of the document pairs your company tracks, less reservationsBy default a plain GRN not yet invoiced raises it, and a sales order lowers it only if the company has a Sales Order → Sales Invoice knock-off row (Sales core concepts)
On the online storeThe e-commerce itemStored on the e-commerce item, recalculated after each ledger line: on hand at the locations you list, less open sales orders unless switched off, less a buffer or times a percentage, in whole units and never below zero — or a typed figure in Manual modeA typed figure stays as typed; a buffer hides stock on purpose (E-commerce configuration)
Value on a stock reportHistorical Stock Balance and the othersWorked out from the ledger when you run it, mostly at the company’s moving averageEach report reads its own lines and its own cost column (Inventory reports)
Stock account on the balance sheetFinancial reportsA journal balance, moved mostly by the month-end cost-of-sales journalOut of date until the month is closed again after anything is back-dated into it (Closing the Month on Stock)

Before you hand a stock figure to anyone, say which of the five it is, for which date and which locations. Most “the system is wrong” questions end there.

Who does what

BigLedger records the movements; it does not decide, separate duties or compare. Four jobs stay with people.

  • The financial controller decides the receiving pair and the stock GL codes, once per company, before the first receipt. Write the pair down and train receiving on it. You know it holds when the first GRN Stock In and its No Stock In invoice leave Stock Balance up by the received quantity, not twice it.
  • The person who counts is not the person who adjusts. None of the inventory documents goes through an approval step: approval submission is wired into the purchase order and purchase requisition applets only. So the control is who holds the Stock Adjustment applet. Hiding its FINAL button hides it for everyone, approvers included, because the permission that would give it back is not defined for that applet. Give the applet to a named person who did not count. See Counting Stock.
  • The stock controller watches the open ends every week: transfers out with no transfer in, and sales orders nobody will deliver that keep Available low. You know it is done when every open transfer and every open order on the list is one somebody still means to complete.
  • The accountant ties stock to the ledger every month, before locking it. Compare the stock account at the month end with Historical Stock Balance run on the close’s basis — every location, no item filter, the same cost column as Inventory Closing Base On. After anything is back-dated, close the affected months again in date order. BigLedger writes the cost-of-sales journal and does not compare the two for you. Closing the Month on Stock Step 5 walks it.

Traps worth knowing before you meet them

What you seeWhyWhat to do
Available is higher than on handGoods received on a plain GRN and not yet invoiced raise AvailableCorrect, not a fault. The Stock Availability Details screen names the documents
A finalised document never reached the balanceThe document type moves nothing (plain GRN, delivery order), the item is a service or non-stock item, or an alias with no inventory itemCheck the document type and the item type first; an unlinked basic item is linked for you at posting
Stock in a location nobody usesThe line had no location, so it fell through to the branch defaultCorrect the branch default, then move the quantity with a transfer or adjustment
A finalised Stock Adjustment moved stock but no journal appearedIts journal is built afterwards; with the Stock Adjustment or Stock Balance default GL code unmapped the job fails and tells nobodyMap both codes, then press Resolve on the document in the Financial Report applet’s Trace Document
A transfer that never arrivesThe Transfer In was never raised. The goods sit at the company’s in-transit location, coded L-SIT- and the company codeSee Stock Transfer Procedures Step 3
Stock doubled after the supplier’s invoiceA GRN Stock In and an ordinary purchase invoice for the same goodsVoid the duplicate and settle the GRN Stock In with a Purchase Invoice No Stock In
A finalised Stock Conversion changed nothingAs of 14 October 2026 nothing is connected to the conversion’s posting run, so FINAL moves no stockRecord the build with Stock Adjustments, whose line amount does enter the average, and check Stock Balance after the first one
A stock take changed nothingA count measures the gap; the session is not a document and writes no ledger lineRaise a Stock Adjustment from the report, as a named step
Trade-ins missing from the stock reportsNon-stock and trade-in units are kept in their own tables, not the stock ledgerUse the Non Stock and Trade In applet’s own listing
Stock Value By Level is bigger than the balance sheetIt shows today and puts the company’s value on every location row, so an item held at four branches counts four times. A known issue, reported to engineeringFor a closing value use Historical Stock Balance, Date As the month end
Choose the cost method once. BigLedger keeps a moving average on every item and, where it is switched on, FIFO. The company’s Inventory Closing Base On setting decides which one Month End Processing uses, and it is the moving average when nobody sets it. What each choice costs is Step 2 of Closing the Month on Stock.

What success looks like

Three checks, one minute each.

  1. A receipt reached the shelf. Take a receipt finalised today, on the document your company books receipts on. On the item’s Stock Card tab in Inventory Item Maintenance (unless a setting hides it), for the receiving location, the document is listed with its quantity, and Stock Balance agrees. If the Stock Card has the line and Stock Balance does not yet, wait a moment: the balance is written by the second job. If there is no line at all, the document type moves nothing or the item is not a stock item.
  2. An adjustment reached the ledger. Open a Stock Adjustment in the Financial Report applet’s Trace Document. Posting journal present means the value moved as well as the quantity.
  3. The month ties. The stock account at last month’s end equals Historical Stock Balance for the same date, run on the close’s basis. If it does not, the six conditions under which the two agree are on Inventory reports.

What it touches elsewhere

  • Before this works: items of the right type, locations with a correct branch default, and the company’s stock GL codes (Inventory configuration).
  • What reads this ledger: Sales promises from Available; the online store’s quantity is recalculated from on hand; Month End Processing values closing stock from it.
  • When it is wrong: a receipt booked twice inflates closing stock, so cost of sales comes out low for that month; an unmapped adjustment code keeps a write-off out of the general ledger until somebody resolves it.
  • The sibling: a transfer between branches of one company moves quantity, posts no journal and leaves the company’s average where it was. Between two companies of the group it is a sale and a purchase, with value and tax.

Related documentation