Time for me to eat some humble pie and admit defeat. About a year ago I started a project to write a simple home finance system for myself. I wrote a number of blog posts about it and then it sort of got placed on the back burner. Other things took priority. I have to be honest with myself – I don’t have the time, or, if I’m honest, the inclination to follow through on it. Too many other things to do.
It’s a bad habit of mine. I have any number of projects that I’ve half started and never finished. The initial burst of enthusiasm gives way to a reluctance to get bogged down in the fine details. I’m better off sticking to small scale projects that have a clear and achievable end.
The fundamental driver behind it hasn’t gone away though. I still want to keep better track of my finances. I’m just not going to reinvent the wheel. I’ve been assessing different options using off the shelf software and have decided to give GnuCash a try. It’s a local desktop application, so I’ll need the discipline to keep it up to date – I won’t be able to track spending as I go, but I have to be realistic and accept that I probably wouldn’t have the discipline to do that either. I hope I can get into a habit of spending a few minutes a week keeping it up to date. Once the regular payments are configured, there won’t be all that many transactions to deal with anyway.
As with any finance software, there’s a bit of a learning curve, but it has a wizard that takes you through setting up a basic set of accounts. You can’t edit the hierarchy of accounts at this point but you can fine tune them later.
The account names have a very American bias – there’s a checking account rather than a current account and the Taxes section includes accounts for Federal, State and Medicare taxes. If you’re outside of the US, you’ll want to do some extensive renaming.
Once it’s all configured, the main screen presents the hierarchy of accounts and a running total of your net assets. Adding a transaction is as simple as double clicking on an account. Multiple transactions can be entered at once. If you start from the account that the money’s leaving – credit card or current account – rather than the target expense account, it’s easy to enter a week’s worth of transactions in one go.
Scheduled transactions are also supported and the easiest way to create them is to enter the first instance of the transaction and then create a scheduled transaction from it.
Budgeting also looks pretty straightforward, although I haven’t set a budget yet. My plan is to enter a couple of months of transactions to get a proper feel for the account hierarchy that I want, and then set up a fresh file for 2020. I don’t know how fine-grained I’ll go with the expense accounts yet – it depends on what I feel I need to track and budget. For example, I’ll probably break expenses down at the top level into essentials such as utilities and discretionary items such as streaming subscriptions.
GnuCash has a wealth of reporting options that I’ll look at once I’ve got a reasonable amount of data in the system
One odd thing about GnuCash is the file format. By default, it saves files as XML. That seems a little strange to me, as accounting is the classic use case for a relational database, but I suppose it’s an easy way to make installation simple and keep external dependencies to a minimum. There are options to use SQLite, MySQL and Postgres, but that’s a relatively recent development and the XML format is still recommended for most users. The database options do not add multi-user capability, and directly manipulating the data is strongly discouraged.
There are a wealth of additional features in GnuCash that I won’t be touching – it can run business accounts, so it has a set of features for managing customers, vendors and employees. It looks capable of supporting a small business, but the lack of multi-user access could be limiting for larger businesses.
It’s early days yet, but I think it’s going to be the right choice. It offers just enough for me beyond simply using spreadsheets to keep track of my money. The true test will be whether I manage to keep it up to date – but then that would be true of whatever system I chose.in Finance Project