Inventory Accounting
Overview
When an item has Track Inventory turned on, Kuberan Books maintains a perpetual inventory: every sale and purchase updates the item’s quantity on hand and its unit cost, and the matching journal entries keep the Inventory Asset on the Balance Sheet and Cost of Goods Sold (COGS) on the P&L in step with the books automatically. You do not post inventory journal entries by hand — selling or buying a tracked item does it for you.
This page explains the accounting rules so you can reconcile inventory confidently and explain the numbers to a client. The per-item setup fields are documented on the Items page.
Costing method: weighted average
Kuberan Books uses the weighted-average cost method (a CRA-acceptable method that needs no per-lot tracking). Each tracked item carries a single Average Cost that is recomputed on every purchase:
new average = (existing qty × existing average + purchased qty × purchase unit cost) ÷ (existing qty + purchased qty)Average Costis empty until the item’s first inventory event. For items that already had stock when inventory accounting was switched on, it was seeded from the item’s Purchase Cost.- If quantity on hand is zero or negative when a purchase posts, the new average is simply that purchase’s unit cost — there is no meaningful prior average to blend.
What posts on a sale
Selling a tracked item on an invoice or sales receipt posts two journal entries:
- The normal revenue entry — Debit Accounts Receivable (or bank), Credit revenue, plus GST/HST.
- A separate COGS entry — Debit Cost of Goods Sold, Credit Inventory Asset — valued at the item’s current average cost (× quantity sold).
At the same time, quantity on hand is decremented and the cost used (cost at sale) is snapshotted on the transaction so a later void reverses the exact amount.
The COGS entry and the quantity decrement post only for non-draft transactions on accrual-basis clients. On a cash-basis client, sales of tracked items do not move inventory or post COGS — cash-basis books recognise the cost when the item is purchased, not when it is sold. Draft invoices never move inventory.
By default a sale cannot drive quantity on hand below zero — the transaction is rejected with an “Insufficient inventory” message naming the item, the available quantity, and the requested quantity. Negative stock is only permitted when the transaction explicitly allows it.
What posts on a purchase
Buying a tracked item on a bill increments quantity on hand and recomputes the weighted-average cost (see formula above). No COGS entry posts on a purchase — the cost sits in the Inventory Asset until the item is sold.
Unlike sales, the quantity and average-cost update on a purchase happens on both cash and accrual clients, so quantity on hand stays correct regardless of accounting basis. Only non-draft (approved) bills move inventory.
Accounts used
Set per item and required when Track Inventory is on. This is the Balance Sheet account credited on a sale and debited (in effect, via the purchase value) on a buy. It is intentionally per-item — there is no chart-of-accounts fallback — so different item lines (e.g. raw materials vs. finished goods) can carry their own asset account.
Optional per-item override. When set, that account is debited for COGS on a sale. When not set, Kuberan uses the first active Cost of Goods Sold account in the client’s chart of accounts (lowest account number). If the item has no COGS override and the chart of accounts has no COGS account, the sale is rejected with a clear message — add a COGS account or set the override.
Voids and corrections
- Voiding a sale (invoice or sales receipt) reverses the COGS entry at the originally snapshotted cost and restocks the quantity. Inventory returns exactly to its pre-sale state.
- Voiding a purchase (bill) decrements the quantity by the amount originally bought, but does not unwind the average cost. Weighted averages are not reversible without replaying every later move, so the current average reflects all real movements up to the void. If the average needs correcting after a voided purchase, post an inventory adjustment.
- Editing a posted invoice or bill that contains a tracked item is blocked. Void the document and re-enter it instead — this keeps the quantity and cost history consistent.
Where it shows up in reports
- Balance Sheet — the Inventory Asset account carries the value of stock on hand. It rises with purchases and falls as items are sold.
- Profit & Loss — the automatic COGS entries populate the Cost of Goods Sold section, so gross profit is correct on accrual-basis books without a year-end inventory adjustment.
- Both are visible in the standard Reports.
Related
- Items — turn on Track Inventory and set the inventory accounts
- Invoices — selling tracked items posts COGS automatically
- Sales Receipts — same COGS behaviour for over-the-counter sales
- Bills — buying tracked items raises stock and recomputes cost
- Chart of Accounts — the Inventory Asset and COGS accounts used here
- Reports — Balance Sheet and P&L reflect inventory automatically