Counting Stock and Deciding What a Difference Means
This guide is for whoever answers for the stock in a branch or a warehouse: the stock controller, the branch storekeeper, and the supervisor who signs the count. By the end you will have a counting plan you can defend, a count that means something, and a rule for every difference it finds: timing, error or loss, and who signs for each one. Setting the plan up takes an afternoon. After that, a weekly cycle count of one category at one branch takes about an hour.
BigLedger keeps a stock ledger, and it is exact about everything a document told it. It cannot tell you whether the shelf agrees. The stock take in BigLedger measures the difference and changes nothing. Deciding what to count, controlling the count, explaining the difference and signing off the write-off is the stock controller’s job. It was the job before BigLedger, and this guide says where BigLedger helps and where a person has to do it.
Meet GadgetSphere
GadgetSphere Sdn Bhd (GS) sells smartphones, laptops, tablets, gaming and accessories through 22 branches. A flagship smartphone costs about RM 2,450 and fits in a jacket pocket. A phone case costs RM 12 and there are four hundred of them on a wall. Those two items need different counting plans, and most of this guide follows from that. The examples use branch GS-KV-01 in Klang Valley.
The standard every step serves
What BigLedger says is on the shelf must be on the shelf. Every receipt, sale, transfer and count either keeps that true or breaks it. Keep that in mind when a count shows 38 phones and the ledger says 40. The task is to find out why the two differ, not to make the report read zero.
Two rules follow from it, and neither is a software rule:
- Record what is there, never what the paperwork says. A counter who writes down the ledger figure, or a receiver who signs for the delivery note’s quantity without counting, has hidden a difference.
- Report a difference you caused, with the evidence. Do not quietly correct it. A storekeeper who scanned the wrong serial on Tuesday and fixes it with an adjustment on Friday has created two errors. BigLedger now shows a loss that never happened, and nobody can trace the first mistake. The fix for a wrong document is to void or reverse that document (Step 6). An adjustment is not the fix.
Before you start
- You can open Stock Take, Stock Adjustment, Stock Balance and the Stock Report applet for your branch.
- The Stock Take applet’s Settings > Field Settings has been saved once. Until it is, closing a session fails with Applet Settings Not Found!.
- Your company has a stock account and a stock adjustment account in its Default GL Codes, and an account for each reason you write stock off (Step 7). For GadgetSphere:
EXPENSE-SHRINKAGE(unexplained loss),EXPENSE-STOCK-DAMAGE(damaged, unsaleable) and the default adjustment account for count corrections that are not a loss.
Step 1: Decide what to count, and how often
The outcome: a written plan that counts the stock most likely to go missing most often.
BigLedger has no count schedule, no count sheet and no ABC selection. Nothing reminds anybody that a count is due. So the plan is a document the stock controller owns, and the finance manager signs off each year.
Losses gather in a few places, so start with those:
| Where losses gather | Why | GadgetSphere’s rule |
|---|---|---|
| High value, small and in demand | Easy to pocket, easy to resell | Flagship smartphones and wireless audio: every week, every branch |
| Four moments: receipt, transfer, return and the count itself | Stock changes hands, and a miscount at any of them looks like theft later | Count the receipt at the door (Step 3 of Closing the Month on Stock); receive transfers line by line; count returns before they go back on the shelf |
| Items with a history | A variance last month is the best predictor of one this month | Anything written off last month goes on next week’s list |
| Everything else | Low value per unit, high volume | Accessories by category, once a month in rotation; a full count of everything at the year end |
When a branch reports a loss, do not start with a full count. Count the high-value, small items first, then look at the four moments for the weeks since the last clean count. A full count of 5,200 items finds the problem slowly and then cannot say which week it happened in.
How you know the plan is right: every item group has a named counting frequency, and in any quarter every high-value item at every branch has been counted at least ten times.
Step 2: Set up the four controls before the count
The outcome: a count whose result you would sign.
A count means something only when four things are true. BigLedger supplies part of one of them. The rest is how the count is run.
- Movement is stopped, or accounted for. BigLedger does not freeze anything during a count. It does something more useful for a shop that stays open: it works out a tolerance band for the movements during the count (Step 4). If you can stop trading, for example before opening, the band collapses to a single figure and the count is simpler to read.
- The count sheets are controlled. BigLedger has no count sheet. For a paper count, print the Stock Balance With Serial report from the Stock Report applet. It has Add, Subtract and Stock Count columns. Number the sheets, issue them, and collect every one, including the spoiled ones. For a handheld count, give each counter their own device in the session so each record shows who counted it.
- Counters do not see the expected figure (a “blind” count). BigLedger has no blind-count mode. The Report tab shows the system quantity next to the counted one as soon as a report is generated. The only lever is permission: a counter who does not hold read permission on the session’s report lines cannot see them. Generating a report is open to any signed-in user, though. So the supervisor, not a counter, presses GENERATE. Test it before count night: sign in as one counter and confirm the Report tab shows them nothing.
- A different person accepts the variance. The person who counted, or who holds the keys to the stockroom, must not also accept the variance and finalise the write-off. BigLedger has no approval on an adjustment (Step 7). That separation has to be set up with permissions and a named person.
For GadgetSphere’s weekly phone count at GS-KV-01: two staff count, each on their own device; the branch supervisor generates the report; the area stock controller reviews and accepts the result, and does not count at that branch.
Step 3: Count
The outcome: every record in the session is one the counters stand behind.
Stock Take > Stock Take Session > + (Create Session, one location) > Devices > + (Create Device Session) > Records
Open one session per location per count. For serialised phones, turn on Validate Serial Numbers in Field Settings so a mistyped serial is refused while the counter is still standing at the shelf.
Three things go wrong at this stage, and each one shows up in the report as a variance that never happened:
- A case counted as a unit, or a unit as a case. Records are stored in single units, and the report shows packs, divided by the largest pack size. A variance of exactly one case quantity is a unit-of-measure mistake. It is not a loss.
- A record with no device. A record saved without a device counts in the report’s total and does not show on the device’s Records screen. If the report total is higher than the sum of the devices’ records, look for these records first.
- Counting after Closed. Closing a session disables the buttons in the web applet only. A handheld can still write to it. Collect the devices when the count ends.
Step 4: Read the band before you read the variance
The outcome: you know which differences are timing and which are real.
Stock Take > Stock Take Session > (the session) > Report > GENERATE
The report does not use a figure taken when the count started. It works out the expected quantity from the ledger each time you press GENERATE, over the window from the first record to the last edit. For each item it shows:
- Min: what the shelf would hold if every sale during the count had already left it.
- Max: what the shelf would hold if every receipt during the count had already arrived.
- Variance: zero if the count is anywhere between Min and Max. Otherwise it shows the distance to the nearer edge.
- Variance 2: the plain difference between counted and expected, ignoring the band.
At GS-KV-01 the count starts at 10:05 and ends at 10:50. Three phones of one model are sold during that time. The ledger opened at 40, so Min is 37 and Max is 40. The counters found 38. Variance is 0. One of the sold phones was still on the shelf when it was counted, and the other two had already gone. That is timing, not a loss. If they had found 35, Variance would be 2 short of the band, and that is a real difference.
A zero Variance means “within the band”. It does not mean “correct”. And the band only works if the count is short. A session whose last record is edited the next morning measures the whole night’s trading, and almost anything will fall inside it.
The report’s cost is the moving average at that location before the count started, and never the FIFO cost. An item with no earlier movement at that location shows a cost of zero. Take the value of a write-off from the adjustment in Step 7, not from this report.
Step 5: Investigate before you adjust, and know when not to adjust
The outcome: every difference outside the band has a cause, or has been recounted twice and still has none.
First, recount. A second person recounts every line outside the band before anyone investigates. Many differences disappear at this point.
For each difference that remains, work through this list in order. The first six are not losses, and adjusting them makes the ledger wrong.
| What you find | What it really is | What to do instead of an adjustment |
|---|---|---|
| The count is inside Min and Max | Timing | Nothing |
| The branch is short, and a transfer to it is still outstanding in the transfer queue | The goods are in transit. They belong to the company, sit at its in-transit location, and are counted at neither branch | Receive what arrived, and chase the rest. See Stock Transfer Procedures |
| The branch is over, and a delivery is on the shelf that has not been keyed | A receipt nobody recorded | Key the receipt for the date it arrived |
| A document was finalised but the balance never moved | The item on the document is not linked to an inventory item, or the posting job failed | Fix the link, or re-run the document from Trace Document. Do not adjust around it |
| One unit over and one unit under on two similar items | The wrong item was scanned on a sale or a receipt | Correct the document that used the wrong item |
| The balance is negative | A sale was keyed before its receipt, and the receipt is still to come | Key the missing receipt. An Adjust-In here counts the goods twice when the receipt arrives |
| Out by exactly one pack quantity | A unit-of-measure mistake in the count | Correct the record |
| None of the above, after two recounts | A loss or a surplus | Step 7 |
The report’s Reason column is where the finding goes. It survives a REGENERATE. An uploaded quantity does not.
How you know you got it right: every line outside the band has a reason written against it, and the reasons use a short fixed list (timing, transfer, unkeyed receipt, wrong item, count error, damage, loss). “Adjusted” is not a reason.
Step 6: Correct the document that was wrong
The outcome: the ledger is right because the original mistake was corrected, not covered.
If Step 5 found a wrong document, correct that document. A wrong adjustment is voided from the Stock Adjustment listing. The void reverses its stock and its journal. A second adjustment in the opposite direction leaves two documents that both look deliberate. The same applies to a sale keyed against the wrong phone model: void or return that document, then raise the correct one.
A serial number mistake at receiving shows up later, when a sale is refused. BigLedger refuses a sale whose serial is not at that location, and refuses a receipt whose serial already exists in the company. When a sale is refused for a serial that is in the customer’s hand, the mistake is on the receipt. Correct the receipt. An adjustment at the counter only hides it.
Step 7: Write off, and know what the money does
The outcome: a signed adjustment that you could defend to an auditor a year from now.
Stock Adjustment > Stock Adjustment > + > Main Details (location, reference, GL code, remarks) > Line Items
A stock take never moves stock. An adjustment does, and it moves money too. On FINAL, each line posts to the adjustment account, and one balancing line posts to the company’s stock account. An Adjust-Out of two phones at RM 2,450 is RM 4,900 of expense. There is no reason code on the document. The reason survives in three places only: the remarks, the reference, and the account.
GadgetSphere keeps one document per reason:
| Reason | Header GL code | Reference |
|---|---|---|
| Unexplained loss after two recounts | EXPENSE-SHRINKAGE | The stock take session name |
| Damaged and unsaleable | EXPENSE-STOCK-DAMAGE | The damage report number |
| A count correction that is not a loss (a surplus with no receipt to key) | The default adjustment account | The session name |
The screen puts a GL code on the header, and it applies to every line, so one reason goes on one document. (This needs the setting that shows the GL code on the header. A file import can put a different code on each line.) Write the remark as a sentence someone can check: “2 units short after recounts on 12 and 13 March, session KV01-W11, CCTV requested”. The remark becomes the journal line’s description.
Watch the price on every line:
- Adjust-Out at the current moving average, which is the default. Any other price changes the average cost of every unit left on the shelf.
- Adjust-In needs a real cost. An Adjust-In at zero adds quantity and no value, and pulls the average down for every later sale. Nothing on the screen objects to a blank price. For a surplus with no receipt to key, use the current average.
Who approves. BigLedger has no approval step on an adjustment, and it never refuses an Adjust-Out that takes a balance below zero. The control is the FINAL button. GadgetSphere hides FINAL in the adjustment editor for everyone, and gives only the area stock controller and the finance manager the permission that restores FINAL on the listing. The branch drafts, and finance finalises. GadgetSphere’s limits: the area stock controller may finalise up to RM 1,000 per session, and anything above goes to the finance manager.
When a branch is too small to separate duties. Some branches have only one person on the stock. Then the check comes afterwards. Every Monday, the finance manager opens every adjustment finalised the week before, reads the remarks and the reference, and asks about any that say only “stock take”.
How you know you got it right: every finalised adjustment has a reference to a session or a report, a remark somebody could check, an account that names its reason, and a finaliser who did not count.
What success looks like
Pick last month’s adjustments for one branch and spend five minutes on them. You pass if:
- Every Adjust-Out traces to a stock take session, or to a damage report, by its reference.
- None of them is an Adjust-In at zero cost.
- The shrinkage account shows the month’s losses, with no count corrections mixed in.
- The person who finalised each one did not count that session.
- No adjustment covers a transfer still in the queue, or a receipt keyed later.
Common mistakes
| Mistake | What you see | Fix |
|---|---|---|
| Expecting the stock take to post the variance | The count is done and the balance has not moved | Raise the adjustment (Step 7). The count only measures |
| Adjusting a branch for a transfer still in transit | A loss at the receiving branch, then a surplus when the transfer is received | Void the adjustment; receive the transfer |
| Adjust-In with no price | The average cost drops; margins look too high | Void and re-key at the current average, or reset the average (Costing Internals) |
| Letting a session run overnight | Nearly every item inside the band | Keep the window short; close and collect devices |
| The same person counts and finalises | Nothing, until an auditor asks | Hide FINAL, name the finaliser, review weekly |
| Correcting your own mistake with an adjustment | Two wrong documents instead of one | Void the wrong document and say so |
Related documentation
- Closing the Month on Stock — receiving, cut-off, valuation and slow stock
- Stock Take applet — every column of the report and where it comes from
- Stock Adjustment applet — the journal, the settings that hide FINAL, and Reset MA
- Stock Transfer Procedures — the queue in the middle of a transfer
- Costing Internals — why an average moved
- Inventory best practices