Closing the Month on Stock
This guide is for the stock controller and the accountant who close a month together. By the end of it, your closing stock figure will be one you can defend: the goods were received as they arrived, each one sits in the right month, the value follows a method you chose on purpose, and the slow stock has been looked at by a person. Plan on half a day at a normal month end. The year end takes longer, because of the full count.
BigLedger works out closing stock and cost of sales for you, company by company, when you run Month End Processing. It cannot tell whether the goods on the shelf were received honestly, whether a delivery on the 31st belongs to this month or the next, which valuation method suits the business, or whether a laptop two models old is still worth what it cost. Those are judgements, and this guide hands each one to a named person.
Closing the month on stock, at a glance
- Separate who holds the stock from who records it.
- Choose a valuation method, once, and know what it costs.
- Receive what arrived, not what was ordered.
- Put everything in the right month.
- Close, prove, lock.
- Find the slow and the dead stock.
- Value it honestly.
Steps 1 and 2 are on this page, Steps 3 to 5 on Cut-off, close and lock, and Steps 6 and 7 on Slow stock and its value.
Meet GadgetSphere
GadgetSphere Sdn Bhd (GS) closes its books monthly. The finance manager at head office runs Month End Processing on the 5th working day. There is a storekeeper at each of the 22 branches, and three area stock controllers between them. Laptops lose value quickly: a model that sold for RM 3,999 in January sells for RM 2,999 by September, once its successor is on the shelf. That one fact drives Steps 6 and 7.
flowchart TD
RCV["Receipts keyed at the counted quantity<br/>Step 3"] --> CUT["Cut-off: every document dated<br/>in the month it belongs to · Step 4"]
CUT --> MEP["Month End Processing<br/>rewrites the month's cost-of-sales journal<br/>moves the stock account by closing minus opening"]
FIFO["FIFO only: the rebuild,<br/>through BigLedger support · Step 2"] -.->|"before"| MEP
LATE["A late document into a reported month,<br/>approved by the finance manager;<br/>a locked month reopened first"] -.->|"re-run that month and every<br/>later month, in date order"| MEP
MEP --> TIE["The accountant ties the stock account<br/>to Historical Stock Balance · Step 5"]
TIE --> LT["LOCK_TXN once Month End Processing has run<br/>refuses FINAL, except stock transfers"]
LT -->|"once the year's audit is signed off"| LA["LOCK_ALL"]
Before you start
- The receiving pair each company uses, written down. On the plain GRN pair, an invoice keyed in the next month leaves this month’s closing stock understated, which is what Step 4’s cut-off has to catch.
- If you close on FIFO, proof that FIFO is being filled in (Step 2 says how to check), and, after back-dated documents or returns, the FIFO rebuild, which BigLedger support runs, done before Month End Processing.
- Access to the three screens the close uses: Financial Report > Month End Processing, Historical Stock Balance in the Stock Report applet, and the Chart of Account applet’s fiscal-year settings, where the month is locked (Step 5).
- The permission sets for Stock Adjustment and Stock Transfer, which Step 1 reviews.
Step 1: Separate who holds the stock from who records it
The outcome: nobody can take stock and also make the records agree with what is left.
BigLedger checks permissions. It does not check whether one person holds two jobs that should be split. Separating them is the finance manager’s decision, and the permissions carry it out. GadgetSphere splits the jobs like this:
| Job | Who | Must not also |
|---|---|---|
| Hold the keys, receive deliveries, key the goods receipt | Branch storekeeper | Finalise a write-off at the same branch, or be the only counter |
| Count | Two staff, at least one from outside the stockroom | Accept the result |
| Accept a variance and finalise the write-off | Area stock controller, or the finance manager above the limit | Count at that branch |
| Send a transfer, and receive it | The sending storekeeper, and the receiving storekeeper | Do both ends of one transfer |
| Reset an average cost | Finance, with a second person reviewing the journal | Review their own reset |
| Run Month End Processing and lock the month | Accountant | Key stock documents into a month they are closing |
Where a branch is too small to split the jobs, the check has to come afterwards instead. The finance manager reviews every adjustment finalised last week, every Monday. See Step 7 of Counting stock: investigate and write off.
How you know it is right: once a quarter, the finance manager opens the permission sets for Stock Adjustment and Stock Transfer. They check that nobody holds FINAL on adjustments at a branch where they also keep the keys. Then they check that the Reset MA menus are hidden from everyone outside finance.
Step 2: Choose a valuation method, once, and know what it costs
The outcome: the closing stock figure uses a method your finance manager chose and your auditor has agreed.
BigLedger keeps a moving-average cost for every item and, where FIFO (first in, first out) is switched on for your account, a FIFO cost as well. Which one values your closing stock is a company setting, Inventory Closing Base On. If nobody sets it, it is the moving average. Only three of the options offered produce a figure: moving average, weighted average and FIFO. LIFO, replacement and manual cost are never filled in, so choosing one of them values closing stock at zero.
For GadgetSphere’s laptop in March (the arithmetic is on Costing Internals), cost of sales is RM 222,600 on moving average and RM 219,000 on FIFO. What each method is good for:
| Moving average | FIFO | |
|---|---|---|
| What closing stock means | What the units cost on average | What the most recent purchases cost |
| When prices fall as a model ages | Old, dearer units stay blended in the average | Old units leave first, so closing stock is valued at the recent, lower prices |
| What keeps it right | Nothing extra. The average catches up by itself after a back-dated document | A rebuild after back-dated documents and returns. The FIFO rebuild runs only when someone starts it, through BigLedger support. Until then, FIFO costs after the back-dated date stay as they were. You know it ran when FIFO costs on sales after the back-dated date have changed |
| What it does not see | Nothing | Receipts other than a purchase invoice, a sales return or a positive adjustment. A GRN Stock In, a transfer in, or opening stock loaded another way gives FIFO nothing to consume |
Two rules for whoever makes the choice:
- Decide at the start of a financial year, and agree it with your auditor. Month End Processing values both the opening and the closing stock of a month with the method set when it runs. So a change made mid-year revalues opening stock in a way last month’s journal never did. The revaluation never reaches the stock account either: from that month on, Step 5’s tie is out by the difference between the opening stock on the two methods, every month, until the accountant journals it. If a change is unavoidable, the finance manager agrees that one journal with the auditor, and knows it is done when the Step 5 tie holds again.
- Before choosing FIFO, prove it is being filled in. Open ten sales lines from last month. If their FIFO cost is empty or zero, FIFO is either not switched on for your account or has no receipts it can see. Choosing FIFO then values closing stock from nothing. Ask BigLedger support before you switch.
Next: Steps 3 to 5, receive, cut off, close and lock.
Steps 3 to 7, in brief
Step 3: Receive what arrived, not what was ordered
Every unit in stock should come through a door and be counted there: count the delivery first, then key the receipt at the counted quantity (Step 3).
Step 4: Put everything in the right month
BigLedger dates everything by the dates you give it, so cut-off is the stock controller’s job: the stock ledger at midnight on the last day should match the goods the business owned at that moment (Step 4).
Step 5: Close, prove, lock
Run Month End Processing, have the accountant tie the stock account to Historical Stock Balance, then lock the month at LOCK_TXN, which still lets the accountant post journals, and at LOCK_ALL only once the year’s audit is signed off (Step 5).
Step 6: Find the slow and the dead stock
Make a list of stock that is not selling, with a decision against every line (Step 6).
Step 7: Value it honestly
Stock is valued at the lower of what it cost and what it will fetch less the cost of selling it. BigLedger has no net-realisable-value test, so the write-down is a judgement, made each quarter and at the year end (Step 7).
What success looks like
Five checks, ten minutes, after the month is locked:
- The stock account on the balance sheet equals Historical Stock Balance for the month end, run on the close’s basis (Step 5).
- The transfer queue has no line older than three days.
- The last receipt number each branch wrote down on the last day is the last receipt dated in the month.
- Ten sales lines from the month carry a cost under the method you chose. For FIFO, the FIFO cost is not empty.
- The dead-stock list has every line of the 180-day Stock Summary run with stock and no sale (less any line the Stock Movement Report, filtered to Server Doc Type
INTERNAL_SALES_GIN_STOCK_OUT, showed shipped in Step 6), a decision on every line, and the write-down is signed.
Common mistakes
| Mistake | What you see | Fix |
|---|---|---|
| Receiving the ordered quantity, not the counted one | A shortage at the next count that nobody can place | Count first, then change the receipt lines (Step 3) |
| Plain GRN pair, invoice keyed next month | Surplus at the year-end count; closing stock understated | List open receipts on the last day, and accrue or key the invoice in the month (Step 4) |
| Keying the year-end adjustments on the 3rd and leaving the date | The stock and the journal both land in the new year, so closing stock is out by the adjustment | Set the header date to the count day before FINAL, or import with the count day as Transaction Date. If one is already final, void it and key it again with the right date (Step 4) |
| Closing on FIFO without the rebuild after late documents | FIFO costs from before the late documents | Ask for the rebuild, then re-run Month End Processing |
Locking the month at LOCK_GL | Stock documents still finalise into the month you closed | Lock at LOCK_TXN; LOCK_ALL after the year’s audit (Step 5) |
| Choosing LIFO, replacement or manual cost as the basis | Closing stock is zero; cost of sales equals all purchases | Choose moving average, weighted average or FIFO |
| Judging slow stock by the aging report | Transferred or returned stock looks fresh, at a branch and for the company | Find no-sale items with the Stock Summary Report By Location over 90 and 180 days (Step 6) |
| Carrying superseded models at cost | An auditor’s adjustment at the year end | Step 7, every quarter |
Related documentation
- Counting Stock and Deciding What a Difference Means
- Costing Internals — where every cost figure comes from, and Reset MA
- Stock Transfer Procedures — the queue and the in-transit location
- Standard procurement workflow — the receipt from the purchasing side
- Reviewing a Set of Books Kept in BigLedger — the stock claim from the auditor’s side
- Financial Report applet — Month End Processing