Multiple GNUCash Reports

I use GNUCash for my personal finances because I don’t trust services that require me to give up my financial institution’s username and password. Not only does this feel wrong, it might be a terms of service violation. Either way, it seems like a security kerfuffle waiting to happen, so keep track of my finances locally. Yes it’s a lot more work, but I really feel like I have more control over what I want to see and a better understanding of what it means.

This solution heavily relies on a little known Google Sheets feature.

My biggest complaint is running reports. GNUCash makes decent reports, but it’s a pain if I want lots of reports. Specifically I like to copy monthly income statements into a spreadsheet so I can easily see how money moves from month to month. I also like to do this for investments. If I update anything in the past, I have to run the reports again. This is even more time consuming than importing transactions, so I whipped up some Python to automate it (well the time consuming part).

This solution works well for me. With the GNUCash file is saved as an uncompressed XML file, I can easily parse it to create CSV files with the numbers I want split up the way I want. Then I copy and paste the CSV files into a Google Spreadsheet.

Here is an example spreadsheet.

Maybe we don’t need so much in Bitcoin.

Clearly still room for improvement. I’ve begun tinkering with Google Sheets API to eliminate the copy and paste part. That would be fun, but I’m not sure the time saving it worth that big of an addition. There are also some minor bugs people might run into (the on Github explains more). So far I’ve only read from the XML, I also want to tinker with updating it–starting with security price history.

Check it out or try it on Github.