Stock Management Guide
This guide is for whoever sets up a company’s stock. By the end of it your first goods receipt will land in the right location, appear on the stock balance, and carry a cost you can defend. It takes about an hour for one company, and it is an hour you only spend once — almost every long-running stock problem in BigLedger traces back to one of the six decisions below being made by accident.
The most important of them is Step 1, and it is not the one people expect. A document line only moves stock if its item is a stock item — a basic item, or an alias that points at an inventory item. Get that wrong and everything else works perfectly while the balance never changes.
- Decide what is stock.
- Choose tracking at create.
- Set up locations.
- Choose the receiving pair.
- Map the stock GL codes.
- Load opening balances.
- Set min and max levels.
Meet GadgetSphere
GadgetSphere Sdn Bhd sells consumer electronics from 22 branches. Head office is setting up stock
tracking for the Klang Valley branches first: GS-KV-01 through GS-KV-12. About 5,200 items — some
serialised (phones, laptops), some not (cables, cases), some not stock at all (extended warranty,
delivery charge).
Stock management: before you start
You need:
- At least one company and one branch in Organization.
- Permission to open Inventory Item Maintenance, Doc Item Maintenance and Stock Adjustment.
- Someone from finance available for Step 4, because two of those decisions are theirs.
Step 1: Decide what is actually stock, and link it
Master Data > Inventory Item Maintenance, then Master Data > Doc Item Maintenance
There are two item records and they do different jobs:
- The inventory item is the stock-keeping record. The balance is keyed by it.
- The document item is what you put on an invoice, order or transfer line.
Stock moves only when a document line’s item resolves to a basic or alias inventory item. A basic item that has no inventory item yet is given one, and the link, the first time it posts, and then moves stock. A service item, a charge, or an alias with no inventory item is silently ignored by the stock processor — the document finalises, the journal posts, and no ledger line is written.
So for GadgetSphere:
| What | Inventory item? | Result |
|---|---|---|
| A flagship smartphone | Yes, basic | Moves stock |
| A charging cable | Yes, basic | Moves stock |
| The same cable sold under a second code | Yes, alias | Moves stock, against the basic item’s balance |
| Extended warranty | No — service item | No stock movement, ever |
| Delivery charge | No — service item | No stock movement, ever |
Step 2: Choose serial, batch and bin tracking when you create the item
Master Data > Doc Item Maintenance > Create > Sub Item Type
Tracking is chosen once, on the item’s create screen, in the Sub Item Type field. For each item, decide:
- Basic quantity: a quantity is all you need. Cables, cases, chargers.
- Serial number: every unit has an identity. Phones, laptops, anything with a warranty.
- Batch number: units arrive in lots with dates. Rare for electronics, essential for anything with an expiry.
- Bin number: you care which shelf, not just which location.
Tracking type changes the shape of every document line for that item — serial, batch and bin sub-tabs appear on transfers, adjustments, invoices and counts — so it also changes how long a receipt takes to key. Serialise what you need to trace and nothing else.
Step 3: Set up locations, and check the branch default
Master Data > Organization
Three things:
- Locations, one per physical place stock sits. They must be
ACTIVEto be selectable on a transfer. - The branch’s default location. This is the one that catches people.
- Nothing to do for stock in transit. BigLedger creates one in-transit location per company (code
L-SIT-<company>) the first time a transfer posts, and transfers park quantity there between despatch and receipt. Leave it out of the location sets your transfer users pick from (why).
A ledger line takes the first location it finds on the line or the header, and falls back to the branch’s default location (Inventory core concepts › Where a movement lands gives the full order).
Step 4: Decide which document books the receipt — and tell everybody
This is the decision that, made inconsistently, doubles your stock.
| If your flow is | The stock arrives on | And the other document |
|---|---|---|
| Purchase Order → Purchase GRN → Purchase Invoice | the purchase invoice | the GRN records the receipt and moves nothing |
| Purchase Order → Purchase GRN Stock In → Purchase Invoice No Stock In | the GRN Stock In | the No Stock In invoice, knocked off the GRN Stock In, books only the money and clears the not-invoiced accrual the receipt raised. An ordinary Purchase Invoice here books the units a second time |
flowchart LR
subgraph P2["Or: the GRN Stock In pair, never both"]
direction LR
PO2["Purchase Order"] --> GSI["<b>Purchase GRN Stock In</b><br/><b>the stock arrives</b><br/>stock items only<br/>not-invoiced accrual"] -->|"knocked off"| PINS["Purchase Invoice No Stock In<br/>the money only<br/>clears the accrual"]
end
subgraph P1["Either: the Purchase GRN pair"]
direction LR
PO1["Purchase Order"] --> GRN["Purchase GRN<br/>records the receipt<br/>moves nothing"] --> PI["<b>Purchase Invoice</b><br/><b>the stock arrives</b><br/>stock items only"]
end
GSI -.->|"an ordinary invoice instead"| DUP["Purchase Invoice<br/>books the units a second time"]
Pick one pair for each company, write it down, and train the receiving staff on it. Using a GRN Stock In and a stock-booking purchase invoice for the same goods counts every unit twice, and nothing warns you — both documents finalise and both look right. A receipt booked twice inflates closing stock, so cost of sales comes out low for that month.
A plain Purchase GRN (signum 0) is a receipt note; GRN Stock In (+1) is a different document type that also posts the goods-received / invoice-received accrual. Sales has the same pair, a plain Sales GIN and a Sales GIN Stock Out (Inventory core concepts §2).
Step 5: Map the stock GL codes — the finance half
Master Data > Chart of Account > Companies > Default GL Codes
The document you will post most often that carries a journal is the Stock Adjustment (the Reset MA and the consignment GRN and GIN post too: Core concepts §5). The adjustment needs two company defaults — the adjustment account and the stock account it balances against:
STOCK_ADJUSTMENT · STOCK_BALANCE
Map a third, RESET_MA, if anyone will ever use Reset Moving Average (Step 6 tells you when you
might): a reset posts its difference to STOCK_BALANCE against RESET_MA. A stock adjustment’s journal
uses only its two sub-ledgers and has no cost-of-goods-sold line, so there is no COGS default to set for it.
If they are missing, an adjustment still saves and still finalises — the quantity moves and the value does not, because the journal is written by a background posting job after FINAL and it is that job that fails, silently. You find out at month end, when the stock value report and the balance sheet have drifted apart with no obvious cause — or sooner, by running Trace Document in the Financial Report applet on the adjustment: its Missing Journal check fails, and Resolve posts the journal once the mapping exists.
While finance is here, agree the reason codes. The adjustment screen has no per-line GL code. What
it has is one GL code on the header — switch on the applet setting Show a GL code on the header
(SHOW_GL_CODE) — and that code is used for every line on the document, ahead of the company default.
So raise one adjustment per reason: damage on one document, theft on another, count variance on a
third, each with its own header code. That is the only way to tell them apart in the ledger, because
the document has no reason-code engine that reaches it. (A file import can put a GL code on each line;
the screen cannot.) Three or four codes is usually enough.
Step 6: Load your opening balances
Inventory > Stock Adjustment > File Import
Opening stock comes in as an Adjust-In. For a go-live with thousands of items, use File Import rather than keying documents; for a handful, a single adjustment document with one line per item is fine.
For each line you need the item, the location, the quantity and the unit cost. The cost matters as much as the quantity: it seeds the moving average, and every sale from then on takes its cost of goods sold from that average.
RESET_MA default from Step 5 — and
the cost of every sale after it. It is a finance action, not a warehouse one, and it should be rare.Then reconcile before you go any further:
- Export the Stock Balance grid.
- Compare the total value against the inventory figure in your opening trial balance.
- Where they differ, fix it with another adjustment — never by asking for a data change.
Step 7: Set minimum and maximum levels
Master Data > Inventory Item Maintenance > the item > Location tab, or its Stock Min Max Import screen for bulk.
Levels are per item per location. Two things consume them:
- The min/max e-mail (Inventory Item Maintenance › Settings › Email Notification) lists every item whose quantity at a watched location is below its minimum or above its maximum. A level left at zero is never compared, so a location with no levels never appears in it.
- Stock Replenishment computes the shortfall and raises purchase orders or stock transfers from it. A location with no levels is still in the run: a purchase-order run gives it a line for zero, and a transfer run gives it the source location’s whole quantity. Check Quantity To Approve before you generate.
Stock Level Monitoring does not read these levels at all: it uses per-category values on its own template. Nothing fails to tell you a location has no levels, so put “set the min/max levels” in the same checklist as opening a branch (what goes wrong without them).
Stock management: what success looks like
Fifteen minutes, one item, five checks:
- Receive one unit at
GS-KV-01using whichever receiving pair you chose in Step 4, and finalise it. Open Stock Balance: the balance is +1 at the location you expected, not at a branch default. - The MA Price column shows the cost you paid, not zero.
- Open Stock Availability for the same item. Balance and available agree, because nothing is open yet.
- Raise an Adjust-Out of 1 and finalise it. The balance is back to 0.
- Open the general ledger. There is a journal debiting
STOCK_ADJUSTMENTand creditingSTOCK_BALANCE.
If step 1 shows nothing, go back to Step 1 — the item type. If step 5 shows nothing, go back to Step 5 — the GL defaults.
Stock management: common mistakes
| Mistake | What you see | Fix |
|---|---|---|
| A stock item set up as a service, or an alias that points at no inventory item | Finalised documents never reach the balance, no error anywhere. An unlinked basic item is not this: it is linked for you when it posts | Fix the item in Doc Item Maintenance, then re-post |
| Item created with the wrong Sub Item Type | The field is greyed out on both item screens, and the phones arrive with no serial sub-tab | Create a new item code with the right tracking, retire the old one, move the stock across. There is no retrofit |
| A GRN Stock In and a stock-booking purchase invoice for the same goods | Every receipt counted twice; found months later at a count | Pick one pair per company; never put one delivery through both |
| Branch default location stale or deactivated | Stock accumulates somewhere nobody looks | Fix the default, then move the quantity with a transfer or adjustment |
STOCK_ADJUSTMENT / STOCK_BALANCE not mapped | Quantity moves, value does not; balance sheet drifts | Map them, then Resolve each affected adjustment in Trace Document |
| Opening balances loaded with no cost | Every sale shows 100% gross profit | Reset Moving Average, and get finance to sign it off |
| Expecting an approval before a write-off | There is none, and no separate permission to finalise: anyone who can edit an adjustment can finalise it | Give the Stock Adjustment applet only to those who may write stock off, and review last week’s adjustments (Write off, and know what the money does) |
Related documentation
- Inventory module — the map of all 22 applets and what each one does
- Inventory core concepts — the ledger, the signum, balance versus availability
- Stock balance, end to end — every document that writes to the balance, and every job behind it
- Stock Transfer Procedures — the next thing you will do
- Stock Adjustment — the full reference