Now updated for Beancount 3!
Learn double-entry bookkeeping with Python. Build a plaintext accounting system using Beancount in this comprehensive book for software developers.
300+ (and counting) happy readers!
"Tracking Personal Finances using Python is extremely thorough and and well-researched. Siddhant's love of plaintext accounting shows through in the writing. Iām a regular beancount user, and his book still taught me new techniques for tracking my finances easily."
"A friend of mine told me about Siddhant's book while he was writing it. I was just getting into Beancount to help organize my finances, and the book was an invaluable guide. I highly recommend it - super useful!"
"I started using Beancount in Dec last year thanks to this book. I can now safely say that the book has paid for itself many times over. If you are interested in plain text accounting but don't know where to start, this is a great place to begin."
"I really liked the content and was able to sift through it and go from 0 to a working workflow with 3 sources and 3 months of data in 1 day."
"I've actually already finished your book, and the chapters on writing (AND TESTING!) custom providers are really helpful, so I'll be able to write my simplefin importer that I want to make."
"This was the only resource I could find that actually walks you through how to do that and provides sample code. I've never written a python program before, but the concepts were straightforward and I got a year's worth of financial transactions imported in a day thanks to the leg up this book gave me."
Tracking Personal Finances using Python is a book that teaches software developers how to track their personal finances entirely using Python and a bunch of plain text files.
The Python ecosystem contains an excellent package called Beancount that provides the foundations for working with money. We'll take Beancount as the starting point to build an application that will act as the single point of contact for your complete financial history, and:
The final result will be a Git repository on your computer where you can track everything related to your finances.
We'll ensure data privacy by using only open source software and making sure that your financial data never leaves your computer.
There are a ton of applications on the market that you can use to manage your finances but most of them are either closed source or store your data on the cloud (or both).
We will do things differently. Your financial data is one of the most private data you own, and no one should have access to it, except you.
It goes one step beyond that. It's strictly aimed at software developers (and folks who want to pick up softare development). š
Have you ever wanted to run a SQL query on your bank transactions? By the end of this book you most definitely will.
We'll approach the subject from a developer perspective and learn about topics including plain text accounting, double entry bookkeeping, Beancount, maintaining your financial records in a secure git repository, and more.
All this, without ever leaving the comfort of your favorite $EDITOR
or the terminal.
Hey! My name is Siddhant, and I'm a software developer and entrepreneur located in Munich, Germany. š©šŖ
I've been writing Python code for more than a decade now. In my spare time, I maintain several open-source packages written in Python, which have totaled more than 2 million downloads on the PyPI.
A few years ago I discovered the world of plain text accounting and Beancount. Since starting to track my personal finances using Beancount, I can honestly say that this is the one technology that has had an outsized impact on my life. I love sharing what I've learned and this book is another attempt at doing that.
I hope you have as much fun reading it as I had writing it! And if you have any questions, DM/@ me on Bluesky and I'll get back to you as soon as I can!