Stock Management Guide
By the end of this guide 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 linked to an inventory item. Get that wrong and everything else works perfectly while the balance never changes.
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).
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 service item, a charge, or an item with no inventory link 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: Set serial, batch and bin tracking before the first receipt
Master Data > Inventory Item Maintenance > the item > tracking type
For each item, decide:
- Plain — a quantity is all you need. Cables, cases, chargers.
- Serial — every unit has an identity. Phones, laptops, anything with a warranty.
- Batch — units arrive in lots with dates. Rare for electronics, essential for anything with an expiry.
- Bin — 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.
- A stock-in-transit location per company, which transfers park quantity in between despatch and receipt.
When BigLedger writes a ledger line it decides the location in this order: the line’s delivery location, then the line’s store, then the header’s store, then the branch’s default location.
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 | the GRN Stock In | the invoice books only the money |
A plain Purchase GRN carries quantity signum 0. It is a receipt note, not a stock movement. GRN Stock In is a different document type with signum +1, and it also posts the goods-received / invoice-received accrual.
Pick one pair for the whole tenant, 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.
The same distinction exists on the sales side between a plain Sales GIN (inert) and a Sales GIN Stock Out (signum −1).
Step 5: Map the three GL codes — the finance half
Master Data > Chart of Account > Companies > Default GL Codes
Only one document this module owns posts a journal: the Stock Adjustment. It needs three company defaults:
STOCK_ADJUSTMENT · STOCK_BALANCE · COGS
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. An adjustment line can carry its own GL code, which overrides the default. That is the only way to tell damage from theft from a count variance, because the document has no reason-code engine that reaches the ledger. 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.
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:
- Stock Level Monitoring e-mails a list of people when quantity goes below optimal or above maximum.
- Stock Replenishment computes the shortfall and raises purchase orders or stock transfers from it.
A location with no levels is invisible to both, and nothing fails to tell you so. Put “set the min/max levels” in the same checklist as opening a branch.
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 link. If step 5 shows nothing, go back to Step 5 — the GL defaults.
Common mistakes
| Mistake | What you see | Fix |
|---|---|---|
| Document item not linked to an inventory item | Finalised documents never reach the balance, no error anywhere | Link it in Doc Item Maintenance, then re-post |
| Serial tracking switched on after the first receipt | Units already in stock have no serials and never will | Decide before the first GRN; 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, tenant-wide |
| 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. Whoever can finalise, does | Restrict the finalise permission instead |
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