An accounting book is a valuation perspective for one company: the primary book is the general ledger that inventory costing posts to, and any other book restates the company's inventory value under its own costing policies. You set books up once per company, before the first stock movement you want costed, and you rarely touch them afterwards. Valuation policies are attached to a book, inventory cost layers are kept for the primary book, and the statement screens let you switch to a secondary book to see its figures.
Overview
Every company that keeps stock needs exactly one active primary book. Without it, stock still moves but is never costed: no cost layers are built, no cost of goods sold journal is posted, and the Inventory Valuation page has nothing to show.
A company can add further books, for example a tax book or a management book. A secondary book does not get its own journals. xMatix replays the same inventory movements under the secondary book's valuation policies. It stores the difference from the primary book as book valuation adjustments. When you choose that book on a statement, the difference is added as overlay rows.
When to use it
- Starting with inventory costing. Create one primary book per company before you post receipts and deliveries you want valued.
- Reporting stock on a second basis. Add a secondary book when you need inventory and cost of goods sold under a different costing method, for example FIFO for management reporting while the primary book uses moving average.
- Retiring a perspective. Clear Is Active on a book you no longer use, so pickers and costing ignore it.
How xMatix handles it
- Cost posting uses the primary book. When an inventory document posts, xMatix looks for the company's book that is ticked Is Primary and is not inactive. It resolves the costing method from that book's valuation policies and rebuilds the cost layers for each item and branch the document touched. If no such book exists for the company, costing is skipped without a message.
- The book belongs to one company. The match is on the book's Partner Account, which must be the same company as the stock movement. A book with no company is never used for a company's stock.
- Secondary books are an overlay, not a ledger. A secondary book keeps no cost layers of its own. Its figures come from the primary book plus the stored adjustments for inventory, cost of goods sold and NRV write-downs.
- Adjustments are refreshed on request. The stored adjustments for a secondary book are recalculated only when someone runs Recompute (the Recompute Book Overlay action on the fiscal year). Nothing recalculates them automatically when stock moves or when a period is closed.
- What an adjustment holds. Each book valuation adjustment is one number for one secondary book, one fiscal period and one statement line. For each period, Recompute replays the company's stock movements up to the period end under the primary book and under each secondary book. It then stores two differences, each as the secondary book's value minus the primary book's: closing inventory value at the period end (Statement Line Type
InventoryAsset) and cost of goods sold within the period (CostOfGoodsSold). The difference is calculated for the whole company, so Branch stays empty, and Source is alwaysCostFlow. When a difference is zero, no row is stored. - Statements pick the primary book by default. The Accounting book picker appears only when the company has more than one active book. Until you change it, the primary book is selected, and it is listed first with "(primary)" after its name.
Prerequisites
- The company exists as a partner account. See Accounts.
- You can open the Finance Setup app. Books are under Books & Posting → Accounting Books.
- For secondary books, a fiscal year with generated periods for the company, because adjustments are calculated period by period.
Procedure
Step 1 — Open the Accounting Books list
Open Finance Setup → Books & Posting → Accounting Books. The All Accounting Book list shows Name, Partner Account, Book Type, Gaap Framework, Is Primary and Is Active for every book, plus the audit columns. If a company already has a primary book, don't create a second one (see Step 5).
Step 2 — Create the primary book
- Select New.
- In the first section, enter a Name (required), for example "Statutory book".
- Choose the company in Partner Account. On a single-company tenant this field may be hidden. In that case, check after saving that the book shows the company.
- Type the Book Type and Gaap Framework. Both are free-text boxes; see Fields for the values to use.
- In Controls, tick Is Primary and Is Active. Leave Allows Lifo and Allows Standard Cost clear unless you need them; see Business rules.
- In Other Details, optionally choose a Currency and enter a Description.
- Select Save.
The book opens on its record page. The Details tab shows Key Information, Controls and System Information. From now on, inventory documents for that company are costed when they post. Movements posted before the book existed are included the next time a movement for the same item and branch posts, because each costing run replays that item and branch's whole ledger.
Step 3 — Add a secondary book
- Select New again and enter a Name, for example "Management book".
- Choose the same Partner Account, type the Book Type (for example
Management), and leave Is Primary clear. Keep Is Active ticked. - Save.
- Create at least one valuation policy whose Accounting Book is the new book. A secondary book with no policy values everything at moving average, the system default.
Step 4 — Read statements for a book and refresh its adjustments
- Open a fiscal year's statement screen that supports books: Profit and Loss, Balance Sheet or Trial Balance, including their grouped and Schedule III forms. See Financial statements.
- In the statement header, choose the book in Accounting book.
- For a secondary book, the header also shows Valuation overlay:
- Current means no stock has moved since the adjustments were last calculated.
- Stale means stock has moved since then, or the adjustments have never been calculated ("Not computed yet for this book.").
- If it shows Stale, select Recompute. xMatix recalculates the adjustments for every period of the statement's fiscal year, up to the year's end date, for all secondary books of the company. The tag then changes to Current.
The statement then shows extra rows for the book: Book valuation overlay (Inventory) and Book valuation overlay (Reserves & Surplus) on the trial balance, Book valuation overlay under inventories on the balance sheet, and Book valuation overlay (COGS) and Book valuation overlay (NRV write-down) on the profit and loss.
The Inventory Valuation page and the item-lot drill have the same Accounting book picker. On a secondary book, the valuation statement keeps the primary book's item values and adds one Book valuation overlay (book name) row. Only the primary book has cost layers, so the lot drill shows none for a secondary book. On mobile, the finance statement screens offer the book as a Book chip, but they have no overlay status or recompute control.
Step 5 — Change, retire or delete a book
- Edit opens the same form as New. You can change any field.
- Switch the primary book. First clear Is Primary on the old book and save, then tick it on the new one. Costing for later postings uses the new book. Cost layers already built stay under the old book until each item and branch is rebuilt by its next posting.
- Retire a book. Clear Is Active. Costing and the statement pickers ignore inactive books.
- Delete removes the book. Do this only for a book created by mistake: valuation policies, cost layers and stored adjustments that point at it lose their book.
Fields
| Field | What it means | Notes |
|---|---|---|
| Name | The book's name, shown in pickers and in the overlay row label. | Required. Typed; there is no numbering series. |
| Partner Account | The company (legal entity) the book belongs to. | Must be the company of the stock movements the book should cost. The picker lists all accounts, so choose a company, not a customer. |
| Book Type | What the book is for. | Free text. Use Statutory, Tax or Management. No process reads it, so it is a label only. |
| Gaap Framework | The reporting framework the book presents under. | Free text. Use IndAS, IFRS or USGAAP (spaces and case are ignored). Read when a valuation policy is saved: on an Ind AS or IFRS book, LIFO is refused, and Standard Cost needs Allows Standard Cost. |
| Is Primary | Marks the company's general-ledger book. | Exactly one active book per company should be ticked. Not checked on save. |
| Allows Lifo | An opt-in to last-in-first-out costing for this book. | A LIFO valuation policy on the book is refused unless this is ticked, and always on an Ind AS or IFRS book. |
| Allows Standard Cost | An opt-in to standard costing in this book. | Needed for a Standard Cost policy on an Ind AS or IFRS book. The engine doesn't compute standard cost, so leave it clear. |
| Is Active | Whether the book is in use. | Inactive books are skipped by costing and hidden from statement pickers. |
| Currency | The book's currency. | Informational. Values are always in the company's posting currency. |
| Description | Free notes. |
Book valuation adjustment fields
Book valuation adjustments are written by Recompute, not typed. They are on no menu of the shipped apps, but an administrator reading them through reports or the data API sees these fields.
| Field | What it means | Notes |
|---|---|---|
| Name | An identifier starting with BVA-. | System-generated on every recompute. It has no meaning and no numbering series. |
| Partner Account | The company. | Same company as the book. |
| Accounting Book | The secondary book the difference belongs to. | The primary book never has adjustments. |
| Fiscal Period | The period the difference was calculated for. | Recompute replaces a book's rows one period at a time. |
| Branch | Empty. | Differences are calculated for the whole company. Statements do not filter adjustments by branch. |
| Statement Line Type | The statement line the difference lands on. | Recompute writes InventoryAsset and CostOfGoodsSold. The statements also read InventoryWriteDownLoss as an NRV write-down expense. InventoryWriteDownReversal and InventoryProvisionContraAsset are accepted, but no statement reads them. |
| Source | What caused the difference. | Recompute writes only CostFlow, a different costing method. NRV and Reversal are reserved values that no process writes. |
| As Of Date | The valuation date. | The period's end date, or the day Recompute ran if the period has no end date. |
| Amount | Secondary-book value minus primary-book value. | Rounded to two decimals. Positive inventory means the secondary book values closing stock higher. |
Business rules
- One primary book per company is not enforced. If two active books for a company are both ticked Is Primary, costing, period balances and statements each take whichever they find first, and the choice is not guaranteed to be the same each time. Check the list after every change.
- Costing needs an active primary book. If the company has none, inventory still posts, but costing is skipped for every item and branch. The failure is recorded only in the application logs.
- The book decides which methods its policies may use. Saving an active valuation policy is refused for LIFO on an Ind AS or IFRS book or on a book without Allows Lifo, for Weighted Average on the primary book, and for Standard Cost on an Ind AS or IFRS book without Allows Standard Cost. Changing these flags later doesn't recheck policies that are already saved. See Inventory valuation policies.
- Standard cost is not costed. A policy that resolves to standard cost makes the costing engine stop for that item and branch. On the primary book, those movements are left uncosted. On a secondary book, the whole book is skipped when adjustments are recalculated.
- Secondary books need a costable primary book. If the primary book can't be valued (for example, it resolves to standard cost), no secondary book gets adjustments.
- Statements add every stored period. On a secondary book, the statements add the book's stored adjustments for every period that has been recalculated, not just the periods up to the statement date. Each stored period holds the difference in inventory value at that period's end. A statement for an earlier date can therefore include later periods. When several periods have been recalculated, the inventory overlay is the sum of their period-end differences. Check overlay figures against the primary book before you rely on them.
- Recompute replaces, it doesn't add. For each secondary book and period, Recompute deletes the book's earlier cost-flow adjustments for that period and writes the new ones, so running it twice gives the same result. It covers every active secondary book of the company, whichever book is chosen in the picker. Inactive books are skipped and keep any rows they already had.
- Grouped and comparative statements use each column's own periods. The grouped and Schedule III forms work out the overlay for each column from that column's periods. The flat statements add every stored period, as described above.
- Adjustments typed by hand are counted. Users whose profile allows it can create, edit, clone and delete adjustment rows. The statements add every row of the chosen book, including hand-made rows and clones. Recompute overwrites only cost-flow rows with an empty branch for the periods it recalculates, so a hand-made row with another source or a branch stays until someone deletes it.
- Service cost basis. Cost-based pricing on service orders reads unit costs from the cost layers of the oldest active primary book. It does not filter by company.
Example
A distributor keeps stock for one company, Lakeview Traders Pvt Ltd, and values it at moving average for its statutory accounts. Management wants a FIFO view of gross margin.
- The finance administrator creates Statutory book: Partner Account Lakeview Traders Pvt Ltd, Book Type
Statutory, Gaap FrameworkIndAS, Is Primary and Is Active ticked. - They give the statutory book no valuation policy, so it values at moving average, the system default.
- They create Management book for the same company, with Book Type
Management, Is Primary clear and Is Active ticked, and a valuation policy on it with Valuation Method FIFO and no scope. - Goods receipts and invoices post through April and May. The cost layers are built under the statutory book.
- In June, the controller opens the fiscal year's Balance Sheet, chooses Management book in Accounting book, sees Valuation overlay: Stale, and selects Recompute.
- The balance sheet now has a Book valuation overlay line under inventories. That line is the FIFO value minus the moving-average value. The profit and loss for the same book shows Book valuation overlay (COGS).
Training
Practice exercise
In a sandbox company that has stock movements but no books:
- Open Inventory → Inventory Valuation and note that no values appear.
- Create a primary book for the company as in Step 2. Don't add a valuation policy; the book values at moving average by default.
- Post one new goods receipt for an item at that company.
- Reopen Inventory Valuation.
Expected result: the item now has a value. Because the whole ledger for that item and branch was replayed, earlier receipts are valued too. The Accounting book picker does not appear, because the company has only one book.
Quick reference
- Books are in Finance Setup → Books & Posting → Accounting Books.
- One active Is Primary book per company. xMatix does not check this for you.
- No primary book means no costing, and no error is shown.
- Partner Account must be the company of the stock.
- Book Type and Currency are labels. Gaap Framework and the two Allows flags decide which methods the book's policies may use.
- Secondary books need their own valuation policies.
- Secondary-book figures refresh only through Recompute on the statement header.
- The Accounting book picker appears only when a company has more than one active book.
Permissions
- Books. Seeded profiles that work with finance setup records can see, create, edit and delete accounting books. Access follows the profile's entity access on Accounting Book; see Security profiles.
- Statements. The statement screens run fiscal-year actions. Choosing a book needs no extra grant. Valuation overlay reads the status with the Book Overlay Status action, and Recompute runs Recompute Book Overlay. The seeded administrator and standard user profiles have both. If Recompute fails for a user, grant Recompute Book Overlay on the Fiscal Year entity in their profile's Actions tab.
- Adjustment rows. Recompute writes the rows itself, so users don't need access to Book Valuation Adjustment to recompute or to read a statement for a secondary book. The seeded administrator, standard user and sales executive profiles have full access to the entity, including Clone. Because a hand-made row changes the statements (see Business rules), consider reducing that access to read-only in profiles that don't need it.
Configuration
| What | Where | Effect |
|---|---|---|
| Accounting books | Finance Setup → Books & Posting → Accounting Books | Decide which book costing posts to and which perspectives the statements offer. |
| Valuation policies | Finance Setup → Books & Posting → Inventory Valuation Policies | Choose the costing method per book, company, business unit, branch, item group and item. See Inventory valuation policies. |
| Fiscal year and periods | Finance Setup → Company Structure → Fiscal Years | Secondary-book adjustments are stored per period, so the company needs generated periods. See Fiscal years and periods. |
| Inventory period balances | The rebuild on the Inventory Valuation page | Uses the chosen book, or the primary book when none is chosen. See Inventory period balances. |
| Book form and list | Setup → Design Studio → Entities → Accounting Book | Layouts and views can be adjusted like any entity. Turning Book Type or Gaap Framework into a picklist helps keep the values consistent. |
Common problems
Stock moves but the Inventory Valuation page shows no value
The company has no active primary book, or its book has a different or empty Partner Account. Create or correct the book (Step 2), then post another movement for the item and branch so the whole ledger is replayed.
Some items have no value even though a primary book exists
The valuation policy for those items resolves to a method the costing engine can't use, so costing stops for that item and branch and the movement stays uncosted. This happens with standard cost, and with an older policy whose method is a value the engine doesn't know (a save now refuses such values; spaces and case don't matter, so Moving Average is fine). Change the policy's method to FIFO, Moving Average or another method the book allows, or clear its Is Active. Then post a new movement for the item and branch.
The statement shows no Accounting book picker
The company has only one active book, or the extra book is inactive or belongs to another company. Check Partner Account and Is Active on the second book.
The secondary book shows the same figures as the primary book
Either the adjustments have not been calculated (Valuation overlay is Stale: select Recompute), or the book has no valuation policy of its own, so it values at moving average like a default primary book. Add a policy on the secondary book and recompute.
Recompute changed nothing for one book
That book's policies resolve to standard cost, which the engine can't value, so the book is skipped. If no secondary book changes, check the primary book's policies for the same reason.
Valuation overlay still shows Stale after Recompute
The status is Current only when the book has at least one stored adjustment written after the latest stock movement. If the secondary book values stock exactly as the primary book does, every difference is zero and no row is stored. The tag then stays Stale with "Not computed yet for this book." This is expected: the statement figures for that book are the primary book's figures. Check that the secondary book has its own valuation policy if you expected a difference.
The secondary book's figures don't match what Recompute should give
Look for adjustment rows that Recompute did not write: rows with a Branch, a Source other than CostFlow, or a period outside the fiscal year you recomputed. Statements add all of them. Delete the stray rows, then select Recompute again.
Figures jump when I pick a different primary book
Two active books are both ticked Is Primary, and different screens picked different ones. Clear Is Primary on all but one.
Common questions
Do I need more than one book?
Most companies need only one: the primary book. Add a secondary book only when you must report inventory and cost of goods sold on a second basis, such as FIFO for management while the statutory books use moving average. A secondary book does not duplicate your journals. It changes only inventory value, cost of goods sold and NRV write-downs, through overlay rows on the statements. Revenue, expenses and every other account are identical in every book. Each extra book adds a valuation policy set to maintain and a recompute step before reporting.
Does a secondary book post its own journals?
No. Only the primary book's costing posts journals: cost of goods sold against inventory when stock is issued. A secondary book stores adjustment rows, and the statement screens add them when you choose that book. Your general ledger, trial balance totals for other accounts, and AR and AP are the same whichever book you choose. To file accounts on the secondary basis, read the statement with that book chosen. There is no separate ledger to post or close.
Is LIFO blocked for Ind AS or IFRS books?
Yes. When an active valuation policy is saved, xMatix reads the book's Gaap Framework. On an Ind AS or IFRS book a LIFO policy is refused with a message that LIFO is prohibited under that framework. On any other book, LIFO is refused unless the book has Allows Lifo ticked. The check runs only when a policy is saved, so a LIFO policy saved before the check existed, or before someone changed the book's framework, keeps costing until you edit it or clear its Is Active. Inactive policies are never checked. Standard cost is different: the engine can't cost it at all, so a policy that selects it leaves those items uncosted.
What happens when I close a period?
Closing a fiscal period does not recalculate secondary-book adjustments. Open the statement for the secondary book after your last stock posting for the period. If Valuation overlay shows Stale, select Recompute before you report or file.
Can I correct a secondary-book figure by editing an adjustment?
You can, but you shouldn't. The statements add every stored row of the chosen book, so an edited or extra row changes the figures straight away. The next Recompute then replaces the cost-flow rows for each period of the fiscal year, so an edit to one of those is lost without warning. An extra row with a branch or another source stays and keeps changing the figures until someone deletes it. To change a secondary book's figures, change its valuation policies and recompute. Differences the costing engine doesn't model, such as NRV write-downs, are recorded on Inventory NRV assessments and not as adjustments.
