Skip to content

Filters

A filter narrows Reports and the Journal to the transactions that match. How much did the trip to Lisbon cost? What did I spend on the car, not counting fuel? are both one filter away.

The filter is shared between all the reports and the Journal, like the period, and remembered between launches. Portfolio is not filtered: it lists positions, not transactions.

Click the round Filter button (a funnel) in the toolbar, or press ⌥⌘F (View ▸ Add Filter…). The button’s icon becomes filled while any filter is active.

The picker has two columns. On the left, what to filter by:

Field Matches
Tag Transactions with that #tag.
Link Transactions with that ^link.
Payee Transactions with exactly that payee.
Account Transactions with a posting to that account or any of its subaccounts. Expenses:Home also matches Expenses:Home:Electricity.
Text Transactions whose payee or description contains the words you type.
Metadata One entry per metadata key used in your ledger (vehicle, property, trip…). Matches that key with that value, whether it is on the transaction or on any of its postings.
Status Transactions with that flag: Pending (!) or Cleared (*). A ledger with pad directives also shows Padding, the transactions Beancount adds for them. See Pending transactions.

On the right, the values that really exist in your ledger, the most used first, each with the number of transactions that carry it (accounts are listed without a count). Type in the Search field to narrow a long list.

  • Click a value to add it. Its circle turns into a checkmark. The picker stays open, so you can add several.
  • Click it again to remove it.
  • For Text there is no list: type the words and press Return or Add.

Reports and the Journal update as you click.

There are two ways to say “everything except this”:

  1. Click the chip. Once a filter is active, it shows as a chip in the bar under the toolbar. Clicking a chip flips it between include and exclude. An excluded chip turns red, with a minus sign and its text struck through. Click it again to flip it back. The tooltip always tells you what a click will do.
  2. In the picker, tick Exclude instead of include at the bottom before clicking values. Everything you pick while it is ticked is added as an exclusion (a red minus in the list).

The same condition cannot be included and excluded at once — it would make no sense — so adding it the other way round simply flips the one already there.

It only takes up room while something is filtered. It holds:

  • One chip per condition: #travel, ^trip-2026, Mercadona, Expenses:Home, “pharmacy”, vehicle: Golf. Click the chip to flip it, or its × to remove it.
  • Clear — removes every filter (⌥⌘⌫, View ▸ Clear Filters).
  • Save as View… — keeps this combination in the sidebar (⌃⌘S). See Saved views.

Three rules cover everything:

  1. Same field: either. #lisbon and #porto shows transactions tagged with one or the other.
  2. Different fields: both. #lisbon and Expenses:Food shows only food on that trip.
  3. Exclusions always subtract. Add an excluded Expenses:Car:Fuel to vehicle: Golf and you see everything about the car except fuel.

Some useful combinations:

You want Filter
The cost of one trip #lisbon-2026
Two trips together #lisbon-2026 #porto-2025
Car expenses without fuel vehicle: Golf and excluded Expenses:Car:Fuel
Everything except one-off events excluded #wedding
What you pay a supermarket for, other than food Mercadona and excluded Expenses:Food
The transactions you still have to check Pending
The numbers without anything unconfirmed excluded Pending

The Journal lets you filter by what you are looking at:

  • Click a tag or link chip on any transaction to filter by it.
  • Right-click a transaction for Filter by Payee “…” and one Filter by key: value item for each piece of its metadata. A pending transaction also offers Filter by Status: Pending.

In Beancount, the ! flag is only a mark: this one needs a look. It changes nothing in the numbers. A pending transaction counts in every balance, report and balance assertion exactly like a cleared one, and Fava shows it the same way. That is what you want for something that really happened but you have not checked against the bank yet — or for a draft from the iPhone that came in incomplete.

The Status filter is how you handle them:

  • Include Pending and you get your review queue: only the transactions still marked !, in the Journal and in the reports. Save it as a view and it is one click away in the sidebar.
  • Exclude Pending and the reports and charts leave them out, until you confirm them.

Once you have checked one, edit it and set its status to Cleared. For something that has not happened yet — a bill due next month — do not use !: give it its future date and it stays out of every period up to today.

A filter selects whole transactions. If a transaction matches, all of its postings count — including the ones to accounts you did not ask about. This is the same behaviour as Fava, and it has two visible consequences:

  • Filtering by Expenses:Food in the Income Statement shows the food expenses, and in the Balance Sheet the bank accounts that paid for them.
  • A filtered Balance Sheet still balances.

The filter is applied first and the period second.