TL;DR

Since January 2016 the author has tracked personal finances in plain-text Beancount files, spending roughly 30–45 minutes each month importing bank statements. The ledger now contains tens of thousands of lines, specialized importers for German banks, and hundreds of attached documents, all kept in a version-controlled directory.

What happened

Beginning in January 2016, the author adopted Beancount and has since maintained a plain-text accounting workflow. Each month they download CSV bank statements, run them through custom importers that translate the CSV into Beancount entries, and spend about 30–45 minutes balancing and categorizing the resulting transactions. Over a decade the ledger grew to roughly 45,011 lines across 16 .beancount files, with bean-query reporting 12,466 directives, 19,743 postings and 9,895 transactions. The repository holds about 507 PDF documents attached to entries for receipts and invoices. The author splits older transactions into per-year files for readability and tracks everything in a version-controlled finances directory on their laptop. They also developed and maintain several importers for German banks and authored a short book to help newcomers adopt the same workflow.

Why it matters

  • Plain-text ledgers and local version control put the owner in control of their financial data rather than relying on a third-party service.
  • Attaching source documents to transactions simplifies reconciliation and tax-time preparation.
  • Custom importers enable automating repetitive parsing tasks for different banks, lowering ongoing manual effort.
  • A long-term, consistent workflow produces a searchable, auditable financial history that can be analyzed with existing tools.

Key facts

  • Tracking began in January 2016.
  • Monthly maintenance takes about 30–45 minutes to import and balance transactions.
  • The repository contains approximately 45,011 lines of Beancount entries across 16 .beancount files.
  • bean-query reports 12,466 directives, 19,743 postings and 9,895 transactions in the main ledger.
  • There are 1,086 distinct accounts defined in the ledger (virtual categories, not bank accounts).
  • About 507 PDF documents are attached to transactions in the repository.
  • Yearly posting counts rose from 715 postings in 2016 to a peak of 2,651 postings in 2023.
  • The author wrote importers named beancount-dkb, beancount-ing, beancount-n26, and an older beancount-commerzbank (the latter is no longer maintained).
  • All files live in a version-controlled finances directory on the author's laptop; older years are moved into separate year files for readability.

What to watch next

  • Ongoing maintenance and updates for the beancount-dkb, beancount-ing and beancount-n26 importers (these are actively maintained).
  • The author's yearly file-splitting practice that keeps the main ledger readable as the dataset grows.
  • not confirmed in the source

Quick glossary

  • Beancount: A plain-text, double-entry accounting system and related tooling for recording and analyzing financial transactions.
  • Plain-text ledger: A human-readable file (typically .beancount or other text formats) that records financial transactions without proprietary database formats.
  • Importer: Code that converts bank statement exports (often CSV) into the structured transactions that an accounting system like Beancount can process.
  • Double-entry bookkeeping: An accounting method where each transaction has matching debits and credits (postings) that sum to zero, helping ensure correctness.
  • Version control: A system like git used to track changes to files over time, useful for auditing edits and restoring previous states.

Reader FAQ

How long has the author used Beancount?
Since January 2016.

How much time is spent on bookkeeping each month?
About 30–45 minutes per month to import, balance and categorize transactions.

Which bank importers does the author maintain?
Libraries exist for DKB, ING and N26 and are actively maintained; a Commerzbank integration was created but is no longer maintained.

Is the ledger backed up to a remote service?
not confirmed in the source

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…

Sources

Related posts

By

Leave a Reply

Your email address will not be published. Required fields are marked *