Best Practices
“Two reports over the same period give different totals. Which is right?” In purchasing, that question usually arrives weeks after its cause: an invoice keyed from scratch, an order nobody closed, a credit note keyed where a debit note was meant, a default GL code that was never mapped. Each practice below prevents one of those, and each says who in the business does it, when, what you see if nobody does, and how you know it held. They follow from the mechanics on Core concepts. Where a control you might expect does not exist, that is said plainly, and the job is handed to a person instead.
The examples use GadgetSphere Sdn Bhd, the wiki’s running example: a buyer at head office orders 200
wireless earbuds at RM 128 for branch GS-KV-01, the receiver at the branch counts 180, the AP clerk
knocks the receipt off into the supplier’s bill, and the buyer chases the other 20. The finance
manager decides who holds which right; the accountant closes the month.
1. Decide the receiving pair once, write it down, and hide the other applets
Purchase Order → GRN → Invoice books the stock, or Purchase Order → GRN Stock In books the stock → No Stock In invoice books the money. One pair for the company.
Mixing them double-counts or never counts, and it does it silently: both documents finalise, both look right, and the next stock take finds the difference months later. The cheapest guard is administrative — give the two applets of the pair you did not choose to nobody.
What mixing looks like in the books
A GRN Stock In knocked off into a full Purchase Invoice brings the 180 earbuds into stock twice. A plain GRN knocked off into a No Stock In invoice brings them in never, because the plain GRN moves nothing and the No Stock In invoice moves nothing either. The second mistake leaves a trace the accountant can find: a No Stock In invoice reverses an accrual whenever it carries any knock-off link, whatever it was knocked off from, so a credit builds up on Inventory Not Invoiced with no receipt behind it.
Who, when, and how you know. The finance manager decides at implementation and writes the pair into the purchasing procedure; whoever administers roles removes the other pair’s applets the same day. You know it held when Organization → Company → Knock Off Configuration has no row toward the other pair’s documents, and when last month’s ten largest deliveries all went through the same two documents.
2. Always knock off, and treat the knock-off as the check
Nothing in BigLedger compares an invoice with an order. What it does is put the order’s or the receipt’s real lines on the invoice screen when you knock them off. Make knock-off a house rule — never key an invoice from scratch when a receipt exists — and make the comparison with the supplier’s paper an explicit step before FINAL. A draft invoice with a wrong price is thrown away in seconds; a finalised one is a void or a note, and a note does not mend the stock cost.
Agree the tolerance as a policy — “query anything over 1% on price” — and write it down. The system will not hold it for you.
Why before FINAL, and not after
Say the supplier billed the earbuds at RM 132 against the order’s RM 128. Finalise that bill and claim the RM 4 back on a Purchase Debit Note, and you owe the supplier less — but a debit note moves no stock, so the earbuds’ moving average keeps the RM 132 they came in at until someone runs a Reset MA at company level. Voiding instead is shorter only while nothing has been raised from the invoice, and the invoice’s own screen stops offering VOID once the company is live on e-Invoice.
Who, when, and how you know. The AP clerk, on the draft invoice, with the supplier’s paper beside it, before pressing FINAL. To check afterwards, run the Purchase Report by document for the month: it lists every line’s unit price beside its linked GRN and PO numbers. A line with neither number was keyed from scratch, and a price that differs from the order’s needs a reason the AP clerk can give.
3. Control with the finalise permission, because approval will not
The approval engine covers purchase orders and requisitions only, is off until configured, and finalises the order on the first approval, even while a second-level request is still waiting; it never blocks a manual FINAL while a request is pending. There is no approval at all on receipts, invoices, payments, returns or notes.
So four rights are worth deciding by name rather than by role template:
| Right | Why it matters |
|---|---|
| Finalise on Purchase Invoice | Books stock and creates the liability. The person who holds it is your matching control |
| Finalise on Purchase Order | Commits the company. If a spending threshold matters, this is what enforces it |
| Finalise on Payment Voucher | Money out |
| Finalise on Purchase Return and Debit Note | Reduces what you owe a supplier, with no counter-signature |
Separate the person who orders from the person who receives from the person who books the bill. The chain records who did what; it does not stop one person doing all three.
Who, when, and how you know. The finance manager names the holders of each right when the company goes live, and again whenever someone changes job. Keep the four lists on paper beside the procedure. You know the control holds when no name appears on both the order list and the invoice list; if a small branch has to break that rule, say who reviews that person’s invoices instead and how often.
4. Receive only what you are willing to be billed for
A quantity on a finalised GRN is what the invoice will knock off. Damaged units received “to sort out later” become units you pay for. Leave them out of the GRN — they stay in the order’s open queue — and let the supplier replace them or credit them. If they have already been invoiced, the route back is a Purchase Return against that invoice; while the return stands, the invoice cannot be voided (void the return first).
Who, when, and how you know. The receiver at the branch, at the dock, before finalising the GRN.
At GS-KV-01 that means 180 on the GRN when 180 good units were counted, and the supplier’s
replacement arrives later on a second GRN against the same order. You know it held when the GRN
agrees with the count sheet and PO Line with GRN KO shows the shortfall as still open on the order.
5. Read the note names the way the ledger reads them
A Purchase Debit Note lowers what you owe; a Purchase Credit Note raises it, posting on the same side as an invoice. This is the reverse of the supplier’s naming, and it is the most common adjustment keyed backwards. If the supplier’s balance moved the wrong way after FINAL, that is the cause — and the fix is the other note, not a void.
Neither note moves stock, and neither touches the moving average. If the goods physically went back, the document is a Purchase Return, which takes them out of stock.
Who, when, and how you know. The AP clerk, when keying an adjustment from the supplier’s paper. Ten seconds after FINAL, open the supplier in the Creditor Report: an overcharge claimed back should bring the balance down. If it went up, the supplier now looks owed twice the difference.
6. Watch the open queue weekly, and CLOSE dead orders
The Purchase Order Queue is every committed line not yet received or invoiced. Lines that a supplier will never deliver sit there indefinitely: the receiver is still offered them on the GRN’s KO For tab, and on the Stock Availability Details screen, when the purchase-order balance is shown, they count as stock on its way. CLOSE the order — it zeroes the open quantities and removes the queue rows — and the figures come right. VOID is for an order that should never have existed; the two are not interchangeable and neither is undone.
Close the lines when you want a record of why
The order’s CLOSE button leaves nothing behind but the zeroed quantities. The Close on a row of the PO Line with GRN KO report closes one line and copies it into the Closed Queue KO report first. For GadgetSphere’s 20 missing earbuds, closing that one line from the report is the better habit: the next time someone asks why the order was never completed, the answer is on a report.
A closed order still counts for Stock Replenishment
If you raise orders from Stock Replenishment with Block existing open PO switched on, closing an order does not release the item. The run holds a line back whenever any purchase order to that supplier carries the item and is DRAFT, FINAL or EDITED. It reads the order’s status, not its open quantity, and an order stays FINAL after CLOSE and after it is fully received. A voided, discarded or deleted order stops counting; nothing else does. In practice, once one FINAL order for an item to a supplier exists, the run blocks that item for that supplier every time. Until that changes, switch the option off on the run’s strategy, and have the buyer read the Purchase Order Queue for that supplier before generating the orders.
Who, when, and how you know. The buyer, once a week, from the Purchase Order Queue. You know it held when nothing older than the supplier’s lead time sits there without a reason the buyer can give.
7. Map every default GL code before the first document that needs it
The purchase journal resolves against company defaults — CREDITOR, PURCHASE, INPUT_TAX, and
for the Stock In pair INVENTORY_NOT_INVOICED and CREDITOR_NOT_INVOICED, for consignment
CONSIGNMENT_STOCK and CONSIGNMENT_LIABILITY. A missing default GL code never stops FINAL: the journal is
built afterwards, by a job, and a gap shows up there or not at all. Map them all at implementation,
not one failure at a time.
Two kinds of silence
- A missing supplier code (
CREDITOR, or the code the supplier’s AR/AP type points at): the invoice goes FINAL, its posting job fails, and the invoice sits FINAL with no journal. Nobody is told. It shows in Error Checking › Missing Journal and in Trace Document. - A missing purchase or tax code (
PURCHASE,INPUT_TAX): quieter still. That line is left out, the supplier’s line is built from what remains, and the journal balances. On a RM 1,060 bill (RM 1,000 of laptops, RM 60 SST) with noPURCHASEcode, purchases end up RM 1,000 short and Missing Journal finds nothing, because a journal exists. The trade creditors account stops agreeing with the creditor ageing. - On a GRN Stock In, a missing
CREDITOR_NOT_INVOICEDleaves the receipt FINAL with the stock posted and no journal; a missingINVENTORY_NOT_INVOICEDalone, on a receipt that carries tax, posts a short journal with the goods lines left out.
Who, when, and how you know. The accountant, before the first purchase document of a new company, and again whenever a company is added to the group. The first month-end proves it: Missing Journal is empty for every purchase document type, and the Stock Flow Report’s Purchases row differs from the journal only by the input tax on the month’s bills (the third row of §12 below).
8. One payment line per real bank movement
A payment voucher writes one cashbook transaction per payment line, and those lines are what Bank Reconciliation ticks off against the statement. Three transfers on one line will match nothing. Enter them as three lines.
Who, when, and how you know. The AP clerk, while keying the voucher, one line for each transfer as it will appear on the bank statement. You know it held when every outgoing transfer on the month’s statement ticks off against exactly one cashbook line, and the Data Fix applet’s Cashbook › Missing Cashbook tab, set to the month, lists no payment voucher.
9. Do not lean on the supplier’s credit limit
It is stored, listed and uploadable, and nothing in the backend reads it. The credit-availability service is advisory and sales-only; the blacklist blocks four sales document types. If a supplier limit matters, it is a rule for the buyer, and the finalise permission on the order is where it lives.
Who, when, and how you know. The buyer, before finalising an order to a supplier with an agreed limit: what the supplier is already owed, from the Creditor Report, plus the open orders in the Purchase Order Queue, plus this order. The finance manager reads the same exposure monthly from the Creditor Report aging.
10. Agree the consignment price before keying the GRN
A consignment GRN enters the moving-average cost pool at the document’s amount. Keyed at RM 0 while the price is negotiated, it pulls the item’s average cost down for everything in stock, and nothing later puts it back: the Consignment Billing writes no stock line, so it never touches the average. Key it at the agreed reference price, or correct the average afterwards with a Reset MA.
Who, when, and how you know. The category buyer, before the receiver keys the consignment GRN, and again before each billing, when the principal’s statement of units sold is compared with what the shelves say. You know it held when the item’s moving-average cost on Stock Availability, straight after the GRN, sits close to the reference price rather than showing a sudden drop.
11. Look at Doc Link before you void anything
A GRN that an invoice has already knocked off refuses to void — the same rule holds for every document another one was raised from, so a billed consignment GRN refuses until the billing is voided first. The Purchase GRN screen says only that the document has been knocked off with another one, without naming it; the server’s own message names it, and an integration calling the API receives that message. Voiding the invoice reopens the receipt’s lines. Open the document’s Doc Link tab before you press VOID: it tells you which documents have to be voided first, last one first, and whether you really mean to unwind all of them.
Who, when, and how you know. Whoever is about to void, usually the AP clerk, every time. You know the unwind finished when the receipt’s lines are offered again on a new invoice’s KO For tab.
12. Three reconciliations worth doing
| Monthly | How |
|---|---|
| Received, not invoiced | Standard pair: Stock Availability GRN quantity per item — goods on the floor that no invoice has booked. Stock In pair: the Creditor Outstanding Document Report’s GRN Stock In rows, which should agree with the INVENTORY_NOT_INVOICED balance once you allow for tax (the receipt accrues net and the invoice reverses the total including tax) |
| Ordered, not received | PO Line with GRN KO; anything older than the supplier’s lead time is a chase or a CLOSE |
| Purchases against the ledger | The Financial Report Stock Flow Report, Purchases and Purchase Returns rows, which compare finalised document lines with the journal lines on the purchase accounts. The document side includes input tax and the journal side does not, so a taxed month always shows a difference |
Who, when, and how you know. The accountant, on the last working day of the month, before the month is locked; the buyer owns the middle row. Each row is done when its difference is zero or every item in it has a name: a bill not yet in, an order still on its way, the month’s input tax, or a line posted to an item’s own GL code on purpose. A difference nobody can name is the practice above that somebody skipped.
Where the figures these practices check come from
| Figure | Stored or worked out | Taken when, from what |
|---|---|---|
| An order line’s open quantity (Purchase Order Queue) | Stored, one row per order line for each kind of document that may follow | Written by a job after FINAL, rewritten when a knock-off is saved, deleted at zero or by CLOSE |
| GRN quantity (Stock Availability) | Worked out each time you load the screen | The plain GRNs’ open balances toward the purchase invoice |
| Inventory Not Invoiced (Stock In pair) | Stored in the journal | When the GRN Stock In’s posting job runs, net of tax |
| What you owe a supplier (Creditor Report) | Stored on each FINAL supplier document as its open balance | Changed by knock-off, payment and contra; read from documents, not the journal |
| The moving average on an invoice line | Stored by the costing job and written back onto the line | After FINAL; debit and credit notes never enter it |
| Last purchase cost | Stored per company and location | Only when a standard Purchase Invoice finalises |
When a practice was skipped
| What you see | The practice skipped | What to do |
|---|---|---|
| The stock take finds a delivery counted twice, or not at all | §1 — both receiving pairs in use | Void where the screen allows it and re-key on the pair you chose; hide the other applets |
| An invoice line with no linked GRN or PO number on the Purchase Report | §2 — keyed from scratch | Ask the AP clerk for the receipt it should have knocked off; compare the price |
| The earbuds’ average cost stays at the overcharged price after a debit note | §2 — compared after FINAL instead of before | Reset MA at company level; compare before FINAL next time |
| An order was finalised by one approver while the second was still deciding | §3 — approval relied on as a gate | Move the control to the finalise permission on the order |
| The supplier’s balance went up after a note for an overcharge | §5 — a credit note keyed for a debit note | Key a debit note that cancels the wrong one, then the debit note you meant |
| A replenishment run blocks an item although every order for it was received or closed | §6 — Block existing open PO counts any FINAL order | Switch the option off on the run’s strategy; the buyer checks the queue instead |
| The trade creditors account and the creditor ageing disagree | §7 — a missing default GL code | Missing Journal for the supplier code; the Stock Flow Report Purchases row for a purchase or tax code |
| A bank transfer matches nothing on Bank Reconciliation | §8 — several transfers on one payment line | Re-split the line on the voucher’s Settlement Adjustment screen, where the company has switched it on; the total must stay the same |
How these practices connect to the rest of BigLedger
- What must exist before these work. The Knock Off Configuration row for each pair you use (without it the KO For tab is empty and §2 has nothing to knock off), every default GL code in §7, and the four rights in §3. Configuration sets them up in that order.
- What becomes possible. A month-end that closes on the first try: Month End Processing works out cost of sales from opening stock, purchases and closing stock, so a purchase line that never reached the Purchases account or a receipt counted twice turns up later as a wrong cost of sales.
- The sibling page, and when to read which. Configuration is what you set once; this page is what people do every day and every month on top of it. Core concepts explains why both are needed.
- What breaks elsewhere when one is skipped. Inventory (a wrong moving average for every later sale), the creditor ledger (balances that disagree with the account), Stock Replenishment (orders blocked or raised twice), and Bank Reconciliation (transfers that match nothing). A scenario support meets at year end: the stock report and the stock account on the balance sheet disagree, and one cause is a purchase debit note coded to the stock account. The note moves the account and never the stock, so the accountant’s month-end tie-out has to list every posting to that account that is not the close’s own.
- What they are used alongside. Stock Availability, the Creditor Report, Bank Reconciliation and the Financial Report’s Stock Flow Report — the screens the reconciliations in §12 read.
How you know the practices are in place
Twenty minutes, once a quarter, per company. Each check can fail.
- One receiving pair. Knock Off Configuration has no row toward the other pair’s documents. Done when nobody holds the other pair’s applets either.
- Knock-off is the habit. Run the Purchase Report by document for last month. Done when every line carries a linked GRN or PO number, or a reason.
- The queue is clean. Done when nothing in the Purchase Order Queue is older than the supplier’s lead time without a reason the buyer can give.
- The rights are separate. Done when no name appears on both the order and the invoice finalise lists, or the exception has a named reviewer.
- Nothing is FINAL without a journal. Done when Error Checking › Missing Journal is empty for every purchase document type for the quarter.