Walletguide
ConceptsCommon objects

Transactions

The rows behind every number: how they arrive, how splitting works, and why a transfer between your own accounts is not income.

A transaction is money moving: a payment, a salary, a dividend, a purchase. Each belongs to one asset, has a date and a signed amount, and is usually assigned a category and a merchant.

Negative means money out. A transaction keeps the currency of the asset it sits on.

How they arrive

Imported by a bank connection, created by a file import, or entered by hand. Crypto and securities transactions carry extra fields — quantity, symbol or ISIN, the price at the time — because a trade is not just an amount.

Splitting

One payment, several purposes. A €200 supermarket receipt that was €160 of groceries and €40 of something else can be split into children, each with its own category.

The parent stays as the record of what actually left the account, and the children carry the categorisation. Reports count the children, never both — which is why adding up raw transaction rows yourself double-counts a split, and asking a data slice does not.

Transfers, and money in transit

Moving €1,000 from your current account to your savings account is two rows: one out, one in. It is not €1,000 of expense and €1,000 of income — it is the same money, and your net worth did not change.

Walletguide links the two sides into a transfer so they cancel. When only one side has arrived — the money has left one bank and not yet landed at the other — the unmatched side shows in the Open filter as a transfer missing its counter transaction. That is a real state worth clearing, not an error.

Open, and what needs you

The Open filter is the to-do list: anything uncategorised, plus transfers waiting for their other half. Clearing it is what keeps the reports honest, and it is the one piece of routine work the product asks of you.

Recurring

Payments that repeat on a schedule are detected by merchant and surfaced in the recurring report, so a subscription you forgot is findable without reading a year of rows.

On this page