How I Manage my money

As a first step towards financial responsibility, I think it makes alot of sense to simply track your spending and savings habits, get some baseline data, and see where all the money is going.

Enter Beancount! Beancount is a command line accounting tool created by Martin Blais. As the authors describes it, its essentially just a fancy system for counting based on classic double-entry book-keeping accounting practices. It provides a framework for collecting, parsing, and storing financial records in a single, human-readable text file! That means I have complete control over that information and can go to whatever service, or an accountant or financial planner, without being locked into a commercial system or service. It provides a unified, global picture of spending, saving, investments, and assets.


Like many people, my financial life is spread across a host of institutions and instruments. I want some way to organize that and get a global picture of how much we’re spending and how much we’ve got. That seems like a reasonable first step on the way to financial responsibility. Sure, your credit card or bank will do some of this, but inevitably you’ve got to then manually combine multiple institutional outputs to try and get the unified picture.

I gave free online tools like Mint a try years ago but wasn’t happy with: a) the fact they had access to all my accounts, and b) by trying to be too user-friendly I was frustrated when things didn’t seem to work like I expected and I couldn’t fix it. Really something like Beancount is what I probably would have made myself, but in a much poorer, kludgey-ier form. I actually partially did this a few months agowhen I wrote some scripts to scrape my investment statements to get a global picture of what my portfolio looks like.

Beancount is part of the plaintext accounting movement (dare I call it a movement?). There are a variety of programs available in different forms and languages. Beancount is written in Python which makes it very easy for me to write custom scripts for generating reports on whatever kind of financial question I might have that pops up.

Eventually I’ll do a how-to post after I establish my own workflow and hopefully help others get started using Beancount.