Tech News
← Back to articles

10 years of personal finances in plain text files

read original related products more articles

January 2026 will mark 10 years since I started storing my personal finances in plain text files using Beancount. Since January 2016, I've taken out about 30-45 minutes every single month to download my monthly bank statements and import them into my Beancount ledger.

There's a lot to talk about here, but let's start with some fun numbers!

The 10 year old Beancount ledger

10 years of financial transactions is a lot of data! All in all, my ledger contains over 45,000 lines of Beancount entries spread across 16 plain text files. All of it is stored in a finances directory (version controlled) on my laptop. Here's a snapshot:

❯ find . -name "*.beancount" | xargs wc -l 4037 ./includes/2020.beancount 3887 ./includes/2018.beancount 27 ./includes/cash.beancount 4398 ./includes/2021.beancount 5531 ./includes/2019.beancount 5267 ./includes/2022.beancount 3287 ./includes/2017.beancount 5506 ./includes/2024.beancount 5606 ./includes/2023.beancount 1454 ./includes/2016.beancount 1089 ./includes/open/04-expenses.beancount 66 ./includes/open/03-income.beancount 11 ./includes/open/05-liabilities.beancount 37 ./includes/open/02-assets.beancount 1 ./includes/open/01-equity.beancount 4807 ./main.beancount 45011 total

Running bean-query on main.beancount tells me I have about 10,000 transactions in total, that in turn contain about 20,000 postings (in double-entry bookkeeping, one transaction may have multiple postings).

❯ uv run bean-query main.beancount Input file: "Goel" Ready with 12466 directives (19743 postings in 9895 transactions) . beanquery >

There are 1086 accounts in total.

beanquery > select count( * ) from (select distinct(account)) ; coun ---- 1086

... which does not mean that there are 1086 bank accounts. Accounts in Beancount are virtual, and you can create as many as you like. Imagine one account for categorizing supermarket spending, one for tracking your income, one for your Netflix subscription, and so on.

... continue reading