Skip to main content

Categories

Categories (/categories) classify payables, receivables and transactions. The structure is hierarchical, up to three levels.

Categories list

Fields

FieldRequiredDescription
NameYesCategory name
TypeYesRevenue or Expense
CompanyYesThe company that owns the category
Parent categoryNoThe category above it in the hierarchy

On a subcategory, Type and Company don't appear — they are inherited from the parent. You only pick those two when creating a root category.

Type: revenue or expense

  • Expense — appears in the picker for payables and outgoing transactions.
  • Revenue — appears in the picker for receivables and incoming transactions.

A subcategory is always the same type as its parent. There is no mixing: the system refuses to save, with "A subcategory must have the same type as its parent category".

Changing the type of a root category is allowed, and the change cascades through the whole subtree — children and grandchildren follow.

Hierarchy

Operating Expenses (Expense)
├── Rent
├── Power and Water
│ ├── Electricity
│ └── Water and Sewage
└── Payroll
├── Salaries
└── Payroll Taxes

Revenue (Revenue)
├── Subscriptions
└── Services
├── Consulting
└── Support
note

The limit is three levels. At the third level the Add subcategory button stops appearing, and an attempt by any other route is refused with "Limit of 3 hierarchy levels reached."

The screen

Categories are shown as cards, not a table. Each card is a root category, with its subcategories listed inside.

  • Search by name. A hit at level 2 or 3 pulls the ancestor's whole card onto the screen, so you can see where it sits.
  • Tabs with counters: All · Expenses · Revenue. The counters count root categories only — it's the number of cards.
  • Double-click the name to edit it in place, with no dialog.
  • Badges: Revenue or Expense on the root card, and Unused when neither the category nor any of its subcategories has links.
  • A card's transaction count sums the subtree — the number on the parent includes what's on the children.

With the company selector on "All", the cards are grouped into collapsible sections per company. Pick a specific company and it becomes a single grid.

Filtering by category on other screens

When you filter transactions or bills by a parent category, the subcategories don't come along automatically. Inside the Category filter there is an Include subcategories option — tick it for the filter to reach the whole subtree.

The Uncategorized option, in the same filter, is mutually exclusive: ticking it disables Include subcategories.

CSV import

warning

CSV import doesn't create categories. It only looks them up by name: if one exists, it links; if not, the entry comes in without a category — no error and no warning.

This is unlike People, which the import does create when it finds no match. If you're about to import a file, register the categories first.

Creating a category by name does work in the forms and in the API.

Delete

danger

Deletion isn't blocked by usage — and it takes the subcategories with it. Deleting a category removes it and its entire subtree. The linked transactions, payables and receivables are not deleted: they are left without a category.

The dialog says exactly that before you confirm: "This will delete this category and all subcategories. This action cannot be undone.", followed by what it found — "This category is linked to 12 transactions, 3 payables (15 in total). These transactions will be uncategorized after deletion." If there are no links, it says so too.

The warning is informative, not blocking. If you want to preserve the classification, reclassify the records first: on the Transactions, Payables and Receivables screens, select the rows and use Classify selected.