Skip to content
Stock figures and costing

Stock figures and costing

Stock Availability shows 50 physical but 0 available. Where did it go? Stock questions are rarely about stock: they are about a number — an available quantity, a unit cost, a margin — and about which document moved it, and when. The questions below include which document actually takes stock out, and how you move stock between branches; after them, the page says where each figure is stored or worked out, what one FINAL sets off behind the screen, and what to check when a figure looks wrong.

Each answer is two or three sentences and a link. The page behind the link is the one that owns the explanation and the one that gets corrected when the product changes.

Stock Availability shows 50 physical but 0 available. Where did it go?

Nowhere: Available is worked out each time the screen loads — the shelf balance, less open sales orders’ uninvoiced balances and reservations, plus goods received but not invoiced. Those order balances are stored rows, and one left on a voided order or a removed line keeps lowering Available. Stock Availability names the documents; The order still shows a quantity outstanding clears a stale row.

Where do I turn on serial number or batch tracking for an item?

On the item’s create screen, in Sub Item Type, before its first save — from that save the screen locks the field for every user, whether or not the item was ever used, and a wrong choice means a new item code. Maintaining the Item Master shows the screen, and Stock Management step 2 covers the decision.

How do I move stock between branches?

Through a stock transfer, which is two documents — an outbound from the sending location and a receipt at the receiving one — with the goods in transit in between. Stock Transfer Procedures walks both halves and what happens if the second one is never done.

The same serial number went out on two documents, or shows quantity 2.

A serial number is not a flag — it is a stock record with a quantity balance, held per item per location, and the posting path adds to that balance rather than re-deriving it. Serial numbers: what the balance means and when it moves has the four rules and the check.

Why is the cost on my document different from what I paid for the item?

The cost on a sales line is the company’s moving average as at the line’s date, written onto it by a background job a moment after FINAL — not the last price you paid. Each receipt adjusts the average; a sale takes stock out at it. Costing Internals shows the arithmetic, how FIFO (first in, first out) differs, and how to correct a wrong average.

I keyed a purchase dated last month and my earlier margins changed.

That is the design rather than a fault: a back-dated receipt rewrites the cost stored on document lines after it, so a margin is not settled until the period is closed. The margin report and the profit and loss don’t agree covers what moves and what does not.

My count and the stock report still disagree after a stock take.

A stock take measures the gap and never closes it: the session writes a variance report and moves no stock at all. The report agrees only once someone has raised a Stock Adjustment for each variance and finalised it. The Stock Take applet documents the session and where its numbers come from, and Costing Internals explains what an adjustment does to your cost.

Which document actually takes stock out?

Stock leaves when a sales invoice, a POS cash bill or a Sales GIN Stock Out (created only through the API) is finalised; quotations, orders, delivery notes and the plain Sales GIN record intent and move nothing. Best practices lists every sales document that moves stock or posts, and Troubleshooting says it in a line.

Cannot final — not enough stock for bundle item. Which one ran out?

A bundle holds no stock of its own: what you have is the smallest of each child’s balance at that branch divided by how many the bundle needs, and the message names the bundle rather than the child. Bundles and grouped items shows how to find it.

The item we manufactured shows RM 0 cost, or its sales margin looks far too good.

Finishing a production step moves the materials out and the finished item in, but carries none of the materials’ cost across, so an item made for the first time comes in at RM 0. The accountant sets its cost with Reset MA before it is sold. A manufactured item shows RM 0 cost walks the check and the fix.

Where each stock figure comes from

Every stock figure is one of two kinds. Some are stored: a background job writes them after FINAL, and they change only when another job rewrites them. Others are worked out each time you open the screen from stored figures. Which kind it is tells you whether waiting, refreshing or a correcting document will move it.

  • Physical (stock balance). Stored per item per location, and again per company. FINAL queues a job that adds one movement per stock-moving line, in date order; a second job then updates both balances. For a few seconds after FINAL the balance can still show the old figure.
  • Available. Worked out on every load from three stored figures: the location’s balance, the open balances of sales orders and of goods received but not yet invoiced, and what Stock Reservation holds. The main listing counts only the Sales Order → Sales Invoice and GRN → Purchase Invoice balances, and an order has one only where the company’s Knock Off Configuration has that pair. The sum reads each balance row without asking whether its order is still live.
  • The cost on a document line. The company’s moving average as at the line’s date, written back onto your line by the balance job after the movement. A back-dated movement replays every later one and rewrites the cost stored on every later line, sales you have already reported included.
  • The moving average itself. The previous movement’s average adjusted by this one. Purchase invoices, purchase returns, stock adjustments, GRN stock-in and the consignment documents change the value at their own amount; sales, sales returns and transfers move stock at the average already there. Last purchase cost is written by the purchase invoice alone.
  • Cost of sales. No sales document posts a cost line. Month End Processing works it out per period, from opening stock plus purchases less closing stock, and rewrites that period’s journal each time it runs. A back-dated purchase reaches the ledger when that period is processed again.
  • A stock take’s expected quantity. Worked out from the stock ledger when you press GENERATE or REGENERATE, as at the end of the count window, and not when the session was opened (Stock Take applet).
  • A bundle’s quantity. Held nowhere. It is worked out at the moment of the check from each child’s balance at that location.
  • A serial number’s balance. The sum of every movement row carrying exactly that text at that location, so a second receipt of the same serial makes it 2.

What one FINAL sets off for stock

When you press FINAL on a sales invoice, the checks run first. Unless the Sales Invoice settings have switched it off, one of them compares each line with the physical balance at the line’s delivery location (not with Available) and refuses with Not Enough Stock for item … when the sale would take it below zero. The document is then saved as FINAL, the screen comes back, and only after that is a posting job queued. It fans out: one job writes the stock movements, a second turns them into new balances and writes the cost back onto your lines, and the journal job posts the sale with no cost line. Where a movement has a later neighbour, because the document is back-dated, a replay job re-costs everything after it; where FIFO (first in, first out) is switched on, the item is only marked for a rebuild. For a sales order, the FINAL writes no movement at all: a job writes the open balance that Available subtracts.

A week of one handset at GS-KV-01

This scenario follows one handset through a week. On Monday branch GS-KV-01 holds 50 of a flagship smartphone, and Stock Availability shows 50 physical and 50 available. You finalise a corporate buyer’s sales order for 30; a moment later its open balance is written, and Available reads 20. A second order for 20 takes it to 0. Nothing would have stopped a third order for 10: an order moves no stock, so its FINAL finds nothing to check. On Wednesday the first buyer cancels and you void the order. A follow-on job of the void removes its balance and Available goes back to 30. Where that job did not remove it (a known issue, reported to engineering), Available stays at 0 with 50 phones on the shelf.

On Friday you invoice the second order. Its FINAL takes 20 off the physical balance, leaving 30, and the knock-off clears the order’s balance. That afternoon the purchasing clerk keys a purchase invoice dated last Friday for 20 phones received at GS-KV-02 at RM 2,260. Say the company held only Monday’s 50, at an average of RM 2,400: from last Friday the company average becomes (50 × RM 2,400 + 20 × RM 2,260) ÷ 70 = RM 2,360. The replay rewrites the cost on today’s invoice line at GS-KV-01 from RM 2,400 to RM 2,360, and the margin on those 20 phones rises by RM 800. A receipt at another branch moved this branch’s cost, because a document line carries the company’s average. The cost-of-sales journal does not move until the month is processed again.

Two ideas worth taking from that week. Promising stock is a decision a person makes on the Available figure, because nothing at an order’s FINAL makes it for you. And when Available looks wrong, the first suspect is a stored balance that outlived its order, not the shelf.

When a stock figure looks wrong

What you seeWhyWhere it is fixed
Physical 50, Available 0, and the live orders you can find do not add up to 50An open balance survived on a voided order or on a line removed from an order; Available adds up the stored rows without asking whether the order is still liveTrace Document › Missing Reversal Queue for a voided order, SO Line with SI KO › Close for a line (The order still shows a quantity outstanding)
A finalised sales order does not lower AvailableThe company has no Knock Off Configuration row for Sales Order → Sales Invoice, so no open balance was writtenAdd the row, then re-queue the orders from Data Fix › Missing Open Queue (same page)
The invoice refuses with Not Enough Stock for item … and the shelf is fullThe check reads the physical balance at the line’s delivery location, which can be left over from another branchRe-pick the branch so the delivery location follows it (Standard Sales Workflow)
Invoices that used to refuse a shortage now finalise, and a location has gone negativeSomebody saved the Sales Invoice settings with the stock toggle in its off positionSwitch it back on and save (Settings and permissions)
The cost on a line is empty just after FINALThe balance job has not written it yet, or the document moves no stockLook again a moment later, then read Trace Document’s Inv Txn
Margins you reported last week have changedA back-dated document replayed the costs after its dateCosting Internals
The branch’s MA Price differs from the cost on its own invoicesStock Balance shows the location’s average; a document line carries the company’sRead the item’s Costings tab
The stock report still disagrees with the count after a stock takeA stock take measures the gap and moves nothingRaise and finalise a Stock Adjustment per variance
A branch that sold past zero is missing from Stock BalanceStock Balance lists only balances above zeroStock Report › Stock Balance Pricing Report, Option Balance NEGATIVE, one location at a time

What the stock figures leave to you

  • Deciding what to promise. An order’s FINAL checks no stock, so two orders can promise the same units. Who: whoever confirms customer orders. When: before finalising an order for more than you can see on the shelf. How you know: Available at the delivery location covers the order, read after the last order was finalised.
  • Releasing what a cancelled order still holds. Who: the person who owns the order. When: the day the customer cancels, by voiding the order or closing its line. How you know: Available rises by the order’s balance once the void’s follow-on job has run; if it stays down, start at the first row of the table above.
  • Watching costs and back-dating. BigLedger flags no average that jumped and accepts a back-dated purchase into a month you have reported. Who: the stock controller reviews averages, and the finance manager sets the cut-off for back-dated documents. When: monthly, before Month End Processing. How you know: the Costings tab average of your top-selling items sits near their last purchase cost, and every late document has the finance manager’s approval in its remarks.
  • Closing the gap a count found. Who: the stock controller raises the adjustments, and finance approves them. When: before the count’s month is processed. How you know: the item’s balance at that location equals the count, less what has sold since.
  • Tying the stock account to closing stock. Who: the accountant. When: after each Month End Processing. How you know: the stock account equals the closing stock figure the cost-of-sales journal used, or differs by an amount you can name (Costing Internals).

How you know a stock figure is right

Open the document’s Trace Document panel. Inv Txn has a row for each stock-moving line once the jobs have run; a sales invoice’s Journal Txn has no cost line, and that is expected. Then open the item’s Stock Card tab: the movement is there, dated as the document is. For Available, take Physical minus Available at the location and set it against the open orders you know are live, plus reservations, less goods received but not invoiced: a gap those do not explain is a stored balance that outlived its order.

Where stock sits

  • Must exist first: the locations, a Knock Off Configuration row for each pair of documents you knock off, and the company Default GL Codes that Month End Processing reads. A basic item is linked to an inventory item for you at its first posting.
  • Checked at the till: where a branch has a default location, a cash bill whose location differs from it is refused when you finalise it.
  • What becomes possible: the margin report reads the cost written back onto lines, Month End Processing values closing stock from the movements, and Stock Replenishment reorders from the balances.
  • Siblings, and when to use which: Stock Balance for what is on the shelf (stored, location average, balances above zero only); Stock Availability for what you can still promise (worked out on load); Stock Report for history as at a date and for negative balances.
  • Blast radius: a back-dated purchase changes margins you have already reported; a wrong exchange rate on a foreign-currency purchase becomes the stock cost; a balance left on a dead order hides stock from every salesperson who reads Available.
  • Used alongside: Buying and receiving, which says which purchase document brings stock in, and Which figures BigLedger stores, and which it works out fresh.

Read next

Related

Last updated on