Month-End Closing Process
If you are the accountant closing a month, this is the short version: the order to do things in, and what breaks if you do them in a different order. Each stage links to the guide that walks it through properly. By the end you will have a Trial Balance that balances, a Profit and Loss and Balance Sheet you can send to your accountant, and a period locked against the branches, so nothing they finalise can land in it behind you. Budget most of a working day for your first close and about two hours once the rhythm is established.
The seven stages, at a glance
- Finalise every document dated in the month (Stage 1). A saved document is not a posted one.
- Reconcile every cashbook, and clear what is left with vouchers, not journals (Stage 2).
- Post the adjusting journals, dated inside the month (Stage 3).
- Check nothing is stuck with Trace Document and the Stock Flow Report (Stage 4).
- Run Month End Processing once per Set of Books, then confirm its two month-end journals exist for each ledger, and its AUTO CREATED FROM COGS PROCESSING journal for a company that holds stock. The screen reports success even when the close failed (Stage 5).
- Build the statements as a snapshot for each Set of Books (Stage 6).
- Lock the month in the fiscal period (Stage 7).
Stages 1 to 4 are on this page. Stages 5 to 7, and what to do when something lands in a month you have already closed, are on Process, report and lock.
flowchart TD
DOC["Finalise every document<br/>dated in the month"] --> REC["Reconcile every cashbook"]
REC --> ADJ["Post the adjusting journals"]
ADJ --> CHK["Trace Document and<br/>Stock Flow Report"]
CHK --> MEP["<b>Month End Processing</b><br/>once per Set of Books"]
MEP -->|"writes"| CJ["Closing-day and<br/>opening-day journals"]
MEP -->|"writes"| SUM["One summary row<br/>per account"]
SUM -->|"read by"| SNAP["Financial Report snapshot"]
SNAP --> LOCK["Lock the month"]
Meet GadgetSphere
GadgetSphere Sdn Bhd sells consumer electronics from 22 branches, with two sister companies —
GadgetSphere Online (GSO) and GadgetSphere Distribution (GSD). That means three Sets of Books,
and month-end runs once per Set of Books, not once for the group. You are closing March 2026. Your
external accountant wants the three statements by the 10th.
Before you start
- Every Set of Books has at least one ledger linked to it. One with no ledger fails with Set of Books is missing primary ledger configuration.
- Every GL Category is linked to a Report Section. A category without that link makes its GL Codes vanish from every statement and from month-end itself, silently.
- You can open the Financial Report applet with
CREATE(or OWNER / ADMIN) rights — creating and re-running a month-end record needs more than read access.
Stage 1: Finish the month’s documents
Sales, Purchasing, Finance applets — the document listings
Everything dated in March has to reach FINAL. A saved document is not a posted document: BigLedger queues the journal when a document is finalised, not when it is saved, and a background job writes it a few seconds later. Walk the listings for sales invoices, credit notes, purchase invoices, receipt vouchers and payment vouchers and clear anything still sitting in DRAFT with a March date.
The common failure here is a document that was finalised but whose posting job then failed, so the journal never got written — usually a missing default GL code on the item or the company. The document still says FINAL, which is why nobody notices. You will catch those in Stage 4; you do not have to hunt for them now.
Stage 2: Reconcile every cashbook
Finance > Bank Reconciliation applet
Twenty-eight cashbooks is a lot of reconciling, so start this early — it is the stage most likely to find a real error rather than a formatting one. Upload each March bank statement, run auto-matching, confirm or reject what it proposes, then work through whatever is left over.
Do not clear what is left with a journal. A manual journal to the bank account moves the ledger but writes no cashbook line, and the reconciliation reads cashbook lines only. The variance stays open even when the journal itself is correct. Money the bank moved that you never recorded (charges, interest, a customer paying straight in) needs a voucher. A receipt or payment voucher writes the cashbook line the reconciliation can match.
→ Bank Reconciliation Guide walks one cashbook through end to end, including what the session’s sign-off status does and does not lock.
Stage 3: Post the adjusting journals
Finance > Ledger and Journal applet
Accruals for costs you have incurred but not been invoiced for, prepayments for the reverse, depreciation, and any corrections the reconciliation threw up. Date them inside March. If last month’s depreciation journal is the same shape as this month’s, clone it rather than retyping it.
→ Journal Entries Guide covers the header, the lines, branch tagging, cloning and how to reverse one you got wrong.
Stage 4: Check nothing is stuck
Finance > Financial Report applet > Error Checking
Two diagnostics, five minutes, and they save the embarrassing version of this process where the statements are wrong and nobody notices until the accountant does.
Trace Document tells you why a given document did or did not post. Missing Journal on a FINAL document means the journal was never created — usually a missing GL code on the item, and the message names it. Fix the mapping, then click Resolve (or Repost if the document is already posted). Repost deletes the old journal before it builds the new one and says nothing if it fails, so check the document’s Journal Txn grid afterwards; if it is empty, Resolve on Missing Journal posts it or shows why it cannot. Missing Shadow Document on a foreign-currency document means its company-currency copy was never made; Resolve creates and finalises it.
Stock Flow Report compares finalised document amounts with the journal lines on each module’s
account. It does not read stock value or the stock account. A Difference is
one of three things: MISSING_ACCOUNTING (a document, no journal), MISSING_INVENTORY (a journal, no
matching document line) or WRONG_AMOUNT (both, disagreeing). Select the rows and click CREATE to post
the missing side. A row that comes back with a server error needs its default GL code fixed first.
If something lands in March after you have closed
It happens — a late supplier invoice, a correction. The order is fixed: post it (a journal posts into a LOCK_TXN month as it is; a document needs March set back to OPEN first, and finalised); PROCESS March for the affected Set of Books, then every later closed month in order, checking each run as in Stage 5; REGENERATE every snapshot whose range includes March; and re-lock if you opened it. The four steps in full are on Process, report and lock.
What success looks like
Thirty seconds, in the Financial Report applet. Open the March snapshot for GadgetSphere Sdn Bhd and look at the Trial Balance tab: it has rows, and total debits equal total credits. Switch to the Balance Sheet: total assets equal liabilities plus equity. In Ledger And Journal, each ledger has its two AUTO CREATED FROM MONTH END PROCESSING journals for March and its AUTO CREATED FROM COGS PROCESSING journal dated 31 March, which can fail on its own.
Then open Chart of Account > Fiscal Year >
FY 2026 > Fiscal Period and confirm March shows LOCK_TXN. Three Sets of Books, so do
it three times — and if GSD looks fine but GSO is empty, you closed two of the three.
Common mistakes
The mistakes table is on Process, report and lock: every row in it shows up at Month End Processing, the snapshot or the lock — an empty Trial Balance, a missing primary ledger, a group of accounts missing from the Profit and Loss, cost of goods sold at zero or too low, a statement that did not take a correction, a close that said success but left a closing or opening journal unwritten, a later month left stale, a period somebody reopened.
The two that start on this page are in their own stages: a document that says FINAL but whose journal was never written (Stage 1, caught in Stage 4), and a reconciliation leftover cleared with a journal instead of a voucher (Stage 2).