This page is for the people responsible for configuring the Cash Statement (often an accountant or finance lead). It explains how the Category Tree shapes the structure, totals, and computed lines of the Cash Statement.
The Cash Statement can be configured from scratch by building a Category Tree yourself. This is important: it means the statement is not a fixed report, and its structure can be audited and explained.
Most first-time setups will prefer a template as a starting point.
A template provides a working baseline:
You can then tailor the structure to match your business without losing clarity.
See: Business Node Initialization → Templates for how templates are selected and what they install.
A Cash Code is assigned to invoice lines (or to a project that produces invoice lines). Cash Codes are the smallest units the Cash Statement aggregates.
Each Cash Code belongs to exactly one Category.
Cash.tbCode → links CashCode → CategoryCodeA “Cash Statement Category” is a line/group definition in the tree. Categories come in three types:
Category (Cash Code Category)
Holds Cash Codes directly. This is where “raw” values enter the statement.
Total Category
A roll-up category that totals one or more child categories (and can roll up through multiple levels).
Expression Category
A calculated line defined by an expression that references other categories.
You can think of these as: source lines, roll-up lines, and computed lines.
The Cash Statement is designed to read in a meaningful sequence rather than as an alphabetical list.
You control this using each Category’s Display Order:
Practical guidance:
Each Category has a polarity:
Polarity matters because it ensures the statement can remain structurally consistent while still expressing “what is good/bad” and “what direction this flow normally has”.
Polarity is also used by forecasting features (for example, when interpreting open work as “sales-like” vs “purchase-like” based on the Cash Code category it uses).
Total Categories are what make the Category Tree more than a flat list.
A Total Category defines a set of child Category Codes that contribute to it. Those children can themselves be Total Categories, allowing multi-level aggregation.
Cash.tbCategoryTotal (ParentCode → ChildCode)What to use totals for:
Expression Categories let you add calculated lines to the Cash Statement (for example margins or reconciliation checks) without changing any underlying transaction data. They define calculations that reference other categories or expressions.
Cash.tbCategory (type = Expression)Cash.tbCategoryExpExpressions are useful for:
Important behavior:
Key points:
See: Category Tree → Expressions (how to create and register expressions).
Not every line in the Cash Statement is a tree node.
However, the statement includes sections whose values are derived from hierarchies of Category Codes, notably:
This is why two users can generate different Cash Statements from the same underlying invoices: they are not changing the transactions—only the meaning structure used to interpret and group them.
Before using the Cash Statement for decision making:
See: Cash Statement Examples for a small Category Tree, sample invoice activity, and how changing the tree changes the output.