Account Mapping
How items connect to ledger accounts — and what journal entries fire on every transaction type.
Account mapping is the bridge between Operations and Finance. When a transaction involving an item is approved, the system uses the item's ledger slots — or the business defaults where a slot is blank — to construct the journal entry automatically. The quality of your account mappings determines the accuracy of your financial statements.
Mapping by Item Type
Each item type has a specific set of ledger slots. Every slot is optional on the form; a blank slot uses the business default shown below. The table shows what each slot is used for.
| Item Type | Slot (form label) | Default when blank | Element Type | What It Records |
|---|---|---|---|---|
| Product | Sales Account | Sales | Income | Credited when a sales invoice for this product is approved |
| Product | Cost of Sales Account | Cost of Sales | Expense | Debited when a delivery note dispatching this product is approved |
| Product | Inventory Account | Inventory | Asset | Debited on purchase (GRN), credited on sale/delivery, adjusted on stock changes |
| Service | Service Revenue Account | Sales | Income | Credited when a service invoice is approved |
| Service | Service Cost Account | Cost of Sales | Expense | Debited when service cost is recorded (e.g., subcontractor cost). For margin tracking. |
| Material | Material Inventory Account | Inventory | Asset | Debited on purchase receipt, credited on production consumption or write-off |
| Material | Material Cost of Sales Account | Cost of Sales | Expense | Debited when material cost is recognized outside production |
| Expense | Purchases / Expense Account | Purchases | Expense | Debited on every purchase bill line containing this expense item |
How Journals Fire by Transaction Type
Product — Sold on Invoice and Delivered
When a product is sold, two separate journal events occur:
Event 1 — Invoice approval (revenue recognition):
| Account | Debit | Credit | Description |
|---|---|---|---|
| Accounts Receivable | Invoice amount (qty × selling price) | — | Customer owes this amount |
| Sales Account (mapped) | — | Invoice amount | Revenue recognized on the sale |
Event 2 — Delivery note approval (COGS recognition):
| Account | Debit | Credit | Description |
|---|---|---|---|
| COGS Account (mapped) | Qty dispatched × WAC at time of delivery | — | Cost of goods recognized on dispatch |
| Inventory Account (mapped) | — | Qty dispatched × WAC at time of delivery | Inventory removed from the balance sheet |
Product — Purchased on GRN
| Account | Debit | Credit | Description |
|---|---|---|---|
| Inventory Account (mapped) | Qty received × purchase unit cost | — | Stock added to inventory at cost |
| Accounts Payable | — | Qty received × purchase unit cost | Liability to the supplier created |
Service — Invoiced
| Account | Debit | Credit | Description |
|---|---|---|---|
| Accounts Receivable | Invoice amount | — | Customer owes this amount |
| Sales Account (mapped) | — | Invoice amount | Service revenue recognized |
Material — Received on GRN
| Account | Debit | Credit | Description |
|---|---|---|---|
| Inventory Account (mapped) | Qty received × purchase cost | — | Raw material stock added to balance sheet |
| Accounts Payable | — | Qty received × purchase cost | Liability to supplier |
Material — Consumed in Production
| Account | Debit | Credit | Description |
|---|---|---|---|
| Inventory Account (output item mapping) | Cost allocated to each Main / Co-Product output | — | Finished goods added to inventory |
| Inventory Account (material mapping) | — | Qty consumed × the rate on the batch line (WAC unless overridden) | Raw material inventory reduced |
Expense — On Purchase Bill
| Account | Debit | Credit | Description |
|---|---|---|---|
| Expense Account (mapped) | Bill line amount | — | Expense recognized in P&L |
| Accounts Payable | — | Bill line amount | Liability to supplier |
Setting Account Mappings
Account mappings are set when creating an item and can be updated from the item page at any time.
Navigate to: Operations → Items → select item → Edit → Ledger Accounts section
The section is collapsed by default; its caption names the defaults in force ("Using defaults — Sales · Cost of Sales · Inventory"). Each picker lists only accounts of the matching element under a "Recommended" group — the Sales Account field only offers income accounts, so you cannot pick a cost account by mistake. If a mismatched account is submitted anyway, the save is refused with a message such as "Item inventory account must be an Asset ledger account". The item page's Overview shows a Ledger Accounts card with the resolved accounts and a "Missing" warning for any slot still reading "Not set".
Rather than mapping all products to a single "Sales Revenue" account, consider creating sub-accounts by product category: "4010 — Electronics Sales", "4020 — Accessories Sales", "4030 — Service Revenue". The Profit and Loss report can then be expanded to show revenue by line, giving you category-level margin visibility without running custom reports.
Common Mapping Mistakes
| Mistake | Symptom | How to Fix |
|---|---|---|
| Leaving every slot blank on every item | All products post to the same default Sales, Cost of Sales and Inventory accounts — the P&L and balance sheet show one line each with no product-level detail. | Create sub-accounts by product group and set the slots on the items that should post there. |
| Mapping a Material to the same Inventory Account as a Product | Raw materials and finished goods are lumped together on the balance sheet. Stock reports cannot distinguish between the two. | Create separate inventory sub-accounts: "1300 — Finished Goods" and "1310 — Raw Materials". Remap items accordingly. |
| Picking an account of the wrong element | The pickers only offer matching accounts; a mismatched account that reaches the server is refused with "Item [slot] account must be an [Income / Expense / Asset] ledger account" and the item is not saved. | Choose an account from the Recommended group for that slot. |
| Expecting a missing slot to block transactions | It does not — a blank slot posts to the business default account, so cost silently lands on the general Cost of Sales account. | Check the Ledger Accounts card on the item page for any slot reading "Not set" and fill it before posting. |
| Mapping all services to a single revenue account | No granularity in the P&L — you cannot see which service lines are growing or shrinking. | Create sub-accounts per service type and remap items. Future transactions will use the new mapping; historical transactions retain the old account. |