The problem

Ability to track the expenses is a pretty common requirement when it comes to personal finances tools.

At this point in the guide, you actually may already have some estimates available. The pad directives generate changes to your accounts and track them in the Expenses:* accounts. There are two issues with these:

  1. These are only categorized by the account. That means, you can only see how much you’ve spent from the Bank1 account vs how much you’ve spent from the Bank2 account (via Expenses:Unattributed:Bank1 vs Expenses:Unattributed:Bank2).
  2. The transfers between accounts are not considered. If you’ve made a transfer from Bank1 to Bank2, it’s not an expense from Bank1 and income for Bank2, it’s actually just a transaction between two.

Still, taking this into account, you can probably get some idea of your total expenses over various periods of time. But surely you can improve on that and get pretty accurate categorization.

Expenses

Manual tracking

From the official Beancount docs, it may seem that manual tracking of every and each transaction is the default approach.

Indeed, you may start to put down transactions into manual_transactions.bean already. And this is how I track all (large enough) purchases made from Assets:Physical:Cash. I put notes in a note taking app on the go and then later write it down in a ledger when it’s convenient. You may even automate this process even further if you want to (e.g. using other apps, bots, converting from other data sources). Unless you want to be really precise, it makes sense only to track larger purchases.

Manual transactions

The format/process is pretty straightforward, these are normal Beancount transactions written in manual_transactions.bean. You can also edit this file from the Config tab but using advanced editor with plugin may make the process more pleasant.

Instead of tracking all transactions you can also create manual transaction for weekly/monthly estimates for spending from Assets accounts to Expenses

We won’t spend too much time here, I think much better approach is actually importing transactions from your financial institutions.