Personal Finances Update
Written by Sebastian Dümcke on
I described my setup to track my expenses using ledger-cli and some homegrown scripts in a previous post. I have been using this setup for a couple of months now. Previously I regretted not being able to automatically import my bank statements via HCBI. While having such a function would be very comfortable, logging into my bank (I only have one) and downloading the statements as CSV files, takes little time.
I then wrote some scripts to import all transactions and classify every expense. By now, I have set up automated matching for most expenses have very little manual work left to do. The only things that need to be manually classified are expenses out of the ordinary (maybe 2-5 per month).
My main gripe was with the reporting capabilities of ledger. What is very difficult to achieve is comparing several time horizons across in a table. It seems this contradicts with the ledger design. I have scripted a set of reports that I run each month. Some are single ledger reporting commands, others actually combine awk, grep, sed and R one-liners to achieve the expected outcome. I currently look at the following:
- up-to-date profit and loss for the current year:
ledger --period 2019 --depth=1 --amount='(-amount)' balance "^Income" "^Expenses"
- current net worth
ledger --period "until today" bal ^Assets ^Liabilities
- monthly expenses for each month of the current year, along with the difference to the previous month and the median monthly expenditure. This was the tricky one that I could not get out of ledger. My script is too long to share here.
- the sum of all expenses related to living. This is just the balance of expenses related to housing, cash expenses, clothes, and groceries. Again I could not tabulate them side by side with ledger so I look at them month by month one after the other.
All reports are under version control. It would be nice to have a graph showing the development of my net worth over time. Also I would like to have the monthly living expenses side-by-side instead of below each other. And finally, maybe a script highlighting outlier transactions (especially large transactions).
So far this provides me with enough overview and gives me the feeling to have my finances under control, which is what really matters. I will stick to this tooling for the time being.