4. Transactions
A transaction is the atomic unit of CaeliBudget: every income, expense or transfer is stored as one transaction.
The Transactions page
Under the Transactions menu you find a sortable, filterable list. On desktop it is a classic table; on mobile (≈ below 768 px) it switches to a card layout where each field appears in its own labelled cell.
Actions dropdown
The page header offers a single Actions dropdown with:
- New transaction — manual entry form.
- Export to CSV — download the currently filtered transactions as
.csv. - Import from CSV — bulk-load from a file (same column schema as the export).
Switching between accounts
The page header offers — just like on the dashboard — a separate account switcher button (shown only when the workspace has more than one account). By default the All accounts view is active, but you can pick a single account. The selected account applies to the whole view: every filter, sort, page, month navigation and export is scoped to the selected account. For transfers, the account appears whether it is the source or the target account.
Filters
The filter form is collapsed by default to save space. Click the Filters bar to expand it. A small counter badge on the right shows the number of active filters. If the URL already contains filters (e.g. you arrived from a budget link), the form opens automatically.
Available filters: type (income / expense / transfer), category, date range (from / to), free-text search, tags, page size. Account filtering is done with the account switcher button above.
Tag filter: AND / OR rule
Next to the tag input there is a dropdown that controls how multiple selected tags are matched:
- All tags (AND) — default: only transactions carrying every selected tag are shown.
- Any tag (OR) — transactions carrying at least one selected tag are shown.
With a single selected tag both settings return the same result.
Sorting
Desktop: click the column headers (Date, Type, Description, Category, Account, Amount). Clicking again reverses the direction.
Mobile: because the headers are hidden in card mode, a separate Sort dropdown appears above the list with the same options.
Recording a transaction
- Income / expense: account + category + amount + date. The description is optional (max. 255 characters); tags are optional too.
- Transfer: between two accounts (source / target), category optional. Stored as a single row (
type=TRANSFER); both account balances reflect the change immediately (balances are computed live from the ledger).
CSV columns
Import and export share the same column set, so an exported file can be re-imported without modification:
date,type,amount,description,account,category,transferTo,tags,notes
date:YYYY-MM-DDtype:INCOME/EXPENSE/TRANSFERamount: decimal point (e.g.1234.56)tags: semicolon-separated
Tags
You can type any tag name on the form; missing tags are auto-created in the workspace on save or import.