Skip to content

Transactions & rules

Whatever it came from, it lands in one list.

A card payment, a bank transfer, a swap and a receipt photographed at a till all become the same kind of row.

Rules and suggestions are included on every plan, Free among them.

TransactionsSearch: payee, amount, note, three words deep⌘K+ New
AllUncategorized 4Needs a receiptMarch 2026 ⌄All accounts ⌄312 rows · net -1,284.20
DatePayeeCategoryAccountAmount
Mar 28Sold 0.38 ETHOne row with both sides of the trade on it📈 Crypto saleKraken+1,414.60
Mar 24Sent to KrakenMatched to the arrival, so it is a transfer and not a sale⇄ Own transferBase wallet-0.38 ETH
Mar 18Kestrel StudioMatched to invoice 0104 by amount and memo💰 Client incomeBase wallet+1,200.00
Mar 12FigmaRule: payee contains Figma🖥 SoftwareCard 5163-45.00
Mar 5ContinenteFrom a photographed receipt, 3 items read🛒 Groceries & homeN26-27.40
Mar 4SEPA transfer, IBAN ending 4471Nothing matched it yetUncategorizedN26-64.00

Two rows picked. Categorize both, move them to another account, attach a document, or mark them as one transfer between your own accounts.

Set a categoryMark as a transferExport the selection

Teach it once

A rule can be applied backwards.

The suggestion for everything else comes from how you sorted it before.

AutomationsSearch rules and watchers⌘KNew rule
When the payeecontains · Bolt
File it under⛽ Transport
Also whenOptional: an account, an amount range, a directionany account
Matches already in the ledgerYou decide whether the past gets tidied too14 rows
Other things a rule can doRename the payee, add a note, mark it deductible3 more

Watchers are the other half of this screen: a rate that moves past a number, a balance that drops under one, an invoice that goes unpaid too long. Each one picks where it reaches you.

Apply to the 14Only from now onAdd a watcher
SuggestionsAccept all
Aversi PharmacyYou filed it under Health in June💊 Health
MARKET BY WOLTEleven times before, always the same🛒 Groceries
SEPA, IBAN 4471Nothing to go on: it stays uncategorizedno guess
What it never doesInvent a category to make the screen look finished

Categories and tax

Each category says whether it reaches the tax package.

Everything left as not counted stays out of the file, on purpose and visibly.

Map categoriesSearch categories⌘KSave
CategoryWhat it usually holdsTax lineRows this year
💰 Client incomeInvoices and pay links that landedIncome41
🖥 SoftwareTools the work needsDeductible96
🏢 Rent, studioThe half you actually work inDeductible12
⇄ Own transferBetween your own accounts, both legs matchedNot counted38
💊 HealthPersonal, however you feel about itNot counted27
A trade is not income: swaps and sales feed capital gains, not this listThe taxonomy is yours to rename, merge and re-order

Where rows are actually born

A till, a cellar with no signal, a chat.

What is typed offline is saved on the device and sent when there is signal.

9:41▮▮▮
New transactionClose
3 waiting to send
4.20EUR · Cash
123456789.0
AccountCash
Category🍽 Eating out
ReceiptPhoto attached
Save

Saved now, sent when there is signal

A coffee, with no signal and a photo of the receipt

9:41▮▮▮
Transactions
Today
🍽A PadariaCash · not sent yet-4.20EUR
🛒ContinenteN26 · from a receipt-27.40EUR
Yesterday
💰Kestrel StudioBase wallet · invoice 0104+1,200.00USDC
BoltCard · rule applied-8.40EUR
To KrakenOwn transfer, matched-0.38ETH
LedgerHome+AddMore

The same list, with the unsent row marked as unsent

Where it goes next

The blocks either side of this one.

Each one reads the rows the one before it wrote.

Start

Import one month. The rules can learn from it.

A statement in any language imports into the same list, and the rules run on it.