Using the app
Accounts
One account per bank account you export from. It is what transactions are filed under, what duplicate detection is scoped to, and what tells the app a payment went to your own savings rather than to a shop.
Owner kinds#
| Kind | Meaning | Effect on totals |
|---|---|---|
| own | Yours, and you import statements for it | Money whose counterparty is this account is an internal transfer — excluded |
| joint | Shared with someone else | Counts as expense: the money has left this budget |
| external | Someone else's | An ordinary counterparty |
The mechanism is a managed rule: every own account with a number gets one pointing at Internal transfer, every joint account one pointing at Joint account. The app keeps them in step with your account list on every start and after every change, and backfills existing uncategorized rows when something changed.
So changing an account's kind changes the numbers retroactively. Removing a managed rule also clears the assignments it made, so those rows resurface as uncategorized rather than quietly keeping their old meaning.
Account numbers#
Stored normalized — uppercased, unspaced, a bare Polish NRB promoted to IBAN form — so matching doesn't depend on which spelling an export used. Masked numbers match on their last digits.
The number is optional. Revolut and most foreign banks print none, and an account without one works fine; it just can't take part in automatic internal-transfer detection, so those rows surface as uncategorized instead.
Finding accounts in a file#
Import from file… scans any export for account numbers and lists them with the rows they appeared on. Numbers are checksum-validated, so transaction ids and balances can't be mistaken for accounts.
Tick the ones worth configuring, name them, add them in one go. ×6 expands the actual source lines, so you can tell your own account from a frequent counterparty by reading rather than guessing.
Step 2 of a new file#
A new database asks the same question before anything is imported, on step 2 of five: your accounts. Drop every export you have at once — your second account is usually named only in its own statement, so one file can rarely finish the answer — and the screen lists every number found across all of them, in two bands:
- Named by the files — a statement says which account it is of, or the number turns up on more than one row. These arrive ticked and marked own.
- Seen once — a single payment to somebody else. Unticked and marked external; tick one only if it is a second account of yours.
Each row states what its answer will do — excluded — Internal transfer, filed as Joint account, ordinary counterparty — so the consequence is readable before the choice. Nothing is imported in this step: the files are read as text, for the numbers printed in them, and nothing else.
Next: the account → creates what you ticked. An account whose statement states its currency — in the rows, above the table, or in the file's own name — takes it; the rest get PLN, and a wrong code is changed here, in the Accounts tab. Map them later writes nothing, and this tab does the same job at any time.
Hiding#
hide takes an account out of every picker: the import's account step, the dashboard's filter, the Transactions select. For the account that exists only so one IBAN resolves to a name.
It is a display decision and nothing else — the transactions stay, keep counting in every total, and the transfer rules keep working. Hiding one that has rows asks for confirmation, because someone hiding it to "get rid of it" should hear that the numbers won't move.
Deleting#
Refused while any transaction points at the account. Delete its imports first, or — almost always what was wanted — hide it instead.