Skip to content

Related Applets

“Which document actually takes stock out?” is the question this page answers, along with its twin, which one brings stock in. Inventory owns none of those documents. They belong to Purchasing, Sales, Point of Sale, Manufacturing and RMA, and each one decides for itself whether it moves stock, whether it posts to the general ledger, and which account it posts to. The document type makes those decisions, and its name is a poor guide to them.

This page is for the stock controller and the accounts person who choose which documents a company uses. It goes through the neighbouring applets one at a time and says what each one writes into the stock ledger, what it posts, and which pairs count the same goods twice. It also covers what Inventory hands back to the other modules. The module’s own 22 applets are on the module page, and the mechanism behind the balance is in Stock balance, end to end.

Before the first document moves stock

Each of these lives in another module. If one is missing, the stock document still saves. The problem shows up later, somewhere else.

What must existWhereWhat you see if it does not
The document item is a basic item, or an alias linked to an inventory item (a basic item with no link is linked for you the first time it posts)Doc Item MaintenanceA service item, or an alias with no inventory item: the invoice finalises and posts its sale, and the stock never moves
Each branch has a default location, and documents carry the right delivery locationOrganizationStock leaves or arrives at a location nobody uses. On a sale, There’s not enough stock although the shelf is full: the check reads the delivery location when one is set
The company’s default GL codes for the receiving pair you chose: CREDITOR_NOT_INVOICED and INVENTORY_NOT_INVOICED for GRN Stock In, the purchase codes for a Purchase InvoiceChart of AccountThe GRN Stock In moves the stock and its journal fails, or posts short with no error
STOCK_ADJUSTMENT and STOCK_BALANCEChart of AccountStock adjustments move the stock and post no journal, or post short with no error when only some lines resolve a code
COGS and STOCK_BALANCEChart of AccountMonth End Processing writes no cost-of-sales journal for the company
A Knock Off Configuration row from GRN Stock In to Purchase Invoice No Stock In, if you receive on GRN Stock InOrganization, the company’s Knock Off ConfigurationThe receipt is not queued for a Purchase Invoice No Stock In to knock off. A bill raised without that link leaves the Creditor Not Invoiced accrual standing. A bill raised on an ordinary Purchase Invoice brings the stock in a second time

What each neighbouring document does to stock and to the ledger

The direction is fixed by the document type. The server writes it onto every line each time the document is saved, whichever applet or API client saved it, so there is no setting that changes it. +1 brings stock in, −1 takes it out and 0 moves nothing. The accounts named are the company’s default GL codes. A GL code on the line, the header or the item takes their place, except on a GRN Stock In, which ignores the line’s code and always posts its creditor side to the company default.

Buying: Purchasing

DocumentStockWhat it postsUse it when
Purchase Invoice (Internal)+1Supplier against your Purchases account, not the stock accountYou receive and bill together, with a plain GRN (or none) before it. This is how most companies receive
Purchase GRN (Internal)0NothingYou want a record of the delivery and will take the stock in on the invoice. Until that invoice exists, the GRN raises the available quantity, not the balance
Purchase GRN Stock In+1Inventory Not Invoiced against Creditor Not InvoicedYou want stock and cost on the shelf the day the goods arrive, and the bill matched later
Purchase Invoice No Stock In0The bill, to Purchases against the supplier. When it is linked to an earlier document, normally the GRN Stock In it knocks off, it also moves its whole total out of Creditor Not Invoiced and Inventory Not Invoiced. Linked only to a purchase order, it moves them too, with no accrual to clearBilling goods a GRN Stock In already received
Purchase Return (Internal)−1Your Purchase Returns accountGoods go back to the supplier
Purchase Refund Note−1Your Purchases account, not Purchase Returns, unless the line, the header or the item names another codeThe supplier refunds goods you sent back
Purchase Order (Internal)0NothingOrdering. It is not in the main Stock Availability figure either

Selling and taking back: Sales and Point of Sale

DocumentStockWhat it postsUse it when
Sales Invoice (Internal)−1Receivable, sales and tax. No cost line: cost of sales is the month-end journalBilling goods as they leave
POS General cash bill−1The same as an invoice, plus the money receivedThe counter
Sales Invoice No Stock Out0Receivable, sales and taxBilling goods another document already took out
Sales GIN Stock Out−1Journalled like a saleRarely. It is not in the applet store and is reached through the API. A Sales Invoice also takes stock out, so read its page before using the two for the same goods
Delivery Order (Internal)0NothingRecording a delivery. The goods stay in stock until the invoice
Sales Return (Internal)+1Your Sales Returns account. It can also record the refund on the document itselfGoods come back from a customer
Sales Refund Note+1Your Sales account, not Sales Returns, unless the line, the header or the item names another codeGoods come back. Know that the value lands on Sales, so a returns analysis built on the Sales Returns account will not include it
Sales Credit Note0Reduces sales and the receivableMoney off with no goods coming back
Sales Order (Internal)0NothingPromising. Until a Sales Invoice knocks it off, it lowers available, and it can hold a reservation
Customer Consignment−1 / +1, with a mirror line on the second locationNothingStock you still own, placed at a customer’s site. The company’s total and its cost do not change

Making, repairing and selling online: other modules

AppletWhat it writes into stock
ManufacturingFinalising a process instance takes its input lines out of stock and puts its output lines in, at each line’s location. No cost passes from the inputs to the finished item, and nothing posts to the ledger
Internal RMANothing. A Customer RMA and a Supplier RTV are records by design. Goods go back to a supplier on a Purchase Return or Purchase Refund Note, and goods that come back from a customer need a stock-in document of their own
Non Stock and Trade InNothing in the stock balance. A trade-in taken at the till goes into its own register, one serial at a time, and a later sale of that serial takes it out again
EcomSyncNothing. It reads the balance, works out each marketplace’s quantity from it, and stores that on the listing

Choose which document moves the stock, before the first delivery

Two neighbouring documents that both carry +1, or both −1, count the same goods twice if both are used for one delivery. Each document is valid on its own, and BigLedger lets you finalise both: the GRN Stock In page describes exactly this double count in its troubleshooting. So the choice is a person’s. The financial controller makes it once per company, before the first document, and writes it into the receiving and dispatch procedures.

  • Receiving. Either plain GRN, then Purchase Invoice (the stock arrives on the invoice), or GRN Stock In, then Purchase Invoice No Stock In (the stock arrives on the receipt). Across BigLedger, most companies take stock in on the Purchase Invoice, many with no GRN before it. A company that takes in some suppliers on GRN Stock In and others on the Purchase Invoice is allowed, as long as no single delivery goes through both.
  • Issuing. In practice, the Sales Invoice or the cash bill: the stock leaves when you bill. A Delivery Order before it moves nothing, so goods delivered and not yet billed are still in stock. The Sales GIN Stock Out also takes stock out, which is why its page warns against using it and a Sales Invoice for the same goods.
  • Returns. A Sales Credit Note brings nothing back into stock. If goods came back, use a Sales Return or a Sales Refund Note. Across BigLedger, credit notes are raised far more often than returns, so check which kind of credit each one is.

You know the choice is holding when the check at the end of this page finds no delivery on two stock-moving documents.

A worked month at GadgetSphere

GSD, the distribution company, delivers 30 ultraportable laptops to a corporate client on 28 March, on a Delivery Order. The invoice goes out on 3 April. At 31 March, Stock Balance still shows the 30 at GSD’s warehouse, because the delivery order moved nothing. March’s Month End Processing reads closing stock from the stock ledger, so it counts the 30 laptops, RM 96,000 at an average cost of RM 3,200, as stock on hand. The sale and its cost both land in April, with the invoice. If your policy recognises a sale when the goods are delivered, March is missing both the revenue and the RM 96,000 cost, so March’s profit is understated by the margin on the 30 laptops and April’s is overstated by the same amount.

The same week at GS-KV-03, a customer brings back a pair of wireless earbuds and the cashier issues a Sales Credit Note for RM 399. The earbuds go back on the shelf, and the system still counts them as sold. The next stock take at GS-KV-03 finds one pair more than the system holds.

Neither of these is a fault. Each document did exactly what its type does. Two people’s jobs close the gap:

  • Cut-off is the accountant’s job, on the last working day of the month. Take every delivery order dated in the month that no invoice has knocked off yet, and either invoice it before the close or accrue the sale and its cost together in the month-end working papers. Accruing only the cost puts a cost in the month with no sale against it. You are done when every delivery in the month is invoiced in the month or is on that list.
  • The return is the counter’s job, at the counter. Goods that come back go on a Sales Return, which can also record the refund on the same document. A credit note is for money off when the goods stay with the customer. The supervisor checks the day’s credit notes against what went back on the shelf.

What Inventory hands back, and where each figure comes from

When a number from Inventory appears on another module’s screen, it is either read when you ask for it or stored at an earlier moment. Which of the two it is explains most of the disagreements.

FigureSeen inStored or worked outFrom what
Stock balance on a lineSales, POS and purchase document line pickersStored. Updated by the stock job after each FINALThe stock ledger, per item and location
Available quantityStock Availability, before you promiseWorked out each time you load itBalance, minus open sales orders not yet on a Sales Invoice, plus plain GRNs not yet on a Purchase Invoice, minus reserved. Purchase orders are not in the main figure
Reserved quantityStock AvailabilityStoredStock Reservation, written to by the Sales Order, Job Order and Packing Order applets as well as directly
Unit cost on a sales lineThe document, and margin reportsStored on the line after FINAL, and rewritten by a back-dated receiptThe moving average at the time of the line (Costing internals covers the other methods)
Minimum and maximum levelsStock Replenishment runs, which raise Purchase Orders or outbound Stock TransfersStored on the balance rowThe item’s Location tab, or a replenishment run
Closing stock valueMonth End Processing in Financial Report, the cost-of-sales journalRead from the stock ledger when the close runs, unless a manual closing value is set for the monthEach item’s last ledger line before the month end, at the company’s Inventory Closing Base On cost
Marketplace quantityEcomSync listingsStored on the listing each time it is worked outThe balance at the branches EcomSync is set to read, less open marketplace sales orders when that setting is on, then less a safety buffer or times a percentage, never below zero

The stock account on your Balance Sheet is not in this table. It is a journal balance, and Reports explains how it is made and the six conditions for it to agree with the stock report.

When another module’s number disagrees with stock

What you seeThe usual causeCheck firstFix
A finalised invoice or GRN Stock In never changed the balanceThe document item is not a stock item: a service, or an alias that points at no inventory item (an unlinked basic item is linked for you at posting)The item’s type, and an alias’s link, in Doc Item MaintenanceFix the item. Then ask support about the documents already finalised
The same delivery is in stock twiceA GRN Stock In and an ordinary Purchase Invoice were both used for itStock Report > Stock Movement Report for the item, filtered by Server Doc Type to both typesVOID the duplicate, and settle the GRN Stock In with a Purchase Invoice No Stock In
A customer returned goods and the system still counts them as soldThe return went on a Sales Credit NoteThe month’s credit notes for that itemRaise a Sales Return for the goods. Keep the credit note only if it was for money off
Goods delivered last month are still in last month’s closing stockThey went out on a Delivery Order and were invoiced after the closeDelivery orders dated in the month with no invoiceCut-off, as in the GadgetSphere month above
Stock Summary By Location shows fewer units in Sold than you issuedGoods issued on a Sales GIN Stock Out are counted under Others, not SoldThe Others column for the itemNone needed. Read Sold plus that part of Others
There’s not enough stock on a sale, and the shelf has itThe line’s delivery location points at another location, often in a sister companyDelivery Location on the document, while it is DRAFTPick the branch again on Main Details so the delivery location follows it
A cashier sees an empty trade-in list at the tillThe cashier’s role lacks read permission on the trade-in registerThe role’s permissionsGrant the register’s read permission to every cashier role that takes trade-ins
A manufactured item has a cost of zero, or a cost from before the jobA process instance carries no cost from inputs to outputThe item’s moving average at that locationSet it on purpose with Reset MA in Stock Adjustment

What the neighbours will not do

Each limit below is fixed by the document type or by the posting rules, so the same thing happens from every screen and from the API. After each one: who does the job instead.

  • No sale posts cost of sales. The sales journal has no cost line. Month End Processing writes cost of sales once a month, from the stock ledger, so a margin read from the ledger before the close is not the margin. The accountant runs the close and reads the margin after it.
  • By default, no neighbouring document posts to the stock account. Purchases go to Purchases, GRN Stock In to Inventory Not Invoiced, sales to Sales, and the stock account moves at month end and on stock adjustments. A GL code on the line, the header or the item overrides the default, so a purchase line coded to the stock account does reach it, and the month-end close then counts that value a second time. Whoever reconciles the balance sheet looks for those lines after the close, with the tie-out on Reports.
  • A Delivery Order, a credit note, a plain GRN or GIN, a Sales Order, a Purchase Order and the two No Stock documents never move stock, whatever applet raised them. The stock controller decides which stock-moving document follows each of them, as above.
  • Customer Consignment and stock transfers post no journal. Stock moves between your own locations, and no money moves. The value stays at the company’s cost.
  • A Supplier RTV does not send stock back. The Purchase Return (or a Purchase Refund Note) does. The buyer raises one for every RTV the supplier accepts.
  • A process instance does not carry cost into the finished item, and posts nothing. Whoever costs production sets the finished item’s cost with Reset MA and records the value of unfinished production by manual journal.
  • The marketplace quantity never writes back into the stock balance. Two numbers with a rule between them. The online team watches the listing. The stock controller watches the balance.

How you know your company is set up right

Ten minutes, once after you set a company up, and again whenever someone changes how it receives or returns goods.

  1. Receiving. Open Stock Report > Stock Movement Report for last month. In Advanced Search, set Server Doc Type to INTERNAL_PURCHASE_GRN_STOCK_IN, and run it again with INTERNAL_PURCHASE_INVOICE. If both return rows for the company, compare the supplier and reference columns. You are done when no delivery appears in both.
  2. Returns. List last month’s Sales Credit Notes. For each one where goods came back, there should be a Sales Return or a Sales Refund Note for the same goods. You are done when every returned item has one.
  3. Cut-off, if you use delivery orders. You are done when every delivery order dated in the month is invoiced in the month, or is on the accountant’s cut-off list.
  4. Postings. If you receive on GRN Stock In, run step 3 of the module’s month-end check, in Ledger and Journal Error Checking > Missing Journal with INTERNAL_PURCHASE_GRN_STOCK_IN. Then close the month in Financial Report.

Where to go next