Tracking Personal Finances!
I have been looking for solutions to track all of my personal finances in one place.
I wanted to understand more about my money. I wanted data about how much money is coming in and how much is going out, where it is coming from, and where it is going out. All of this data needs to be in one place. It has to be accessible to let me run my analysis and get deeper insights. It also needs to track my liabilities like my Home Loans, Personal Loans, etc. Over the last few years, I tried a lot of mobile apps and other online tools. This blog details my experiences with them.
Expense Tracking apps
Google search always resulted in a variety of expense tracking apps. So I started with them and tried many apps, both on Android and iPhone. Some of the android apps used to read my messages and automatically add them as expenses with accurate information about the type of expenditure it was. This feature was good, but it came with a cost of them accessing sensitive information. iOS does not give access to read messages, so most of these apps on the iPhone would rely on you to add the data yourself. These apps were good at tracking expenses but not other things. This setup did not completely solve my problem, so I kept at it and tried different things until I found what I was looking for until I found the INDMoney app.
INDMoney calls itself a Super Finance app. Most of its features are related to investing. It is a place to research your investments in Stocks, Mutual funds, etc. Not only does it allow you to invest in them, but what I found particularly appealing was that with just a couple of clicks, the platform would automatically track all of my investments from other sources. Other investment apps like Zerodha, Groww also do this. Another feature that I found useful was the ability to track my credit score and loans, all in one place. The platform made it easy to stay on top of my financial standing. This feature was great since it would let me show my net worth by displaying all the investments and loans that I needed to pay back. The biggest drawback was that this did not solve the problem of Expense tracking. So with this, I had one way of solving this problem of tracking finances Track all my expenses on the expense tracking app Track all my investments on INDMoney I wasn’t particularly fond of this solution because it split the data between two places, forcing me to check both locations to understand what was happening. It also makes it difficult to add any correlation between these two sources. So I ditched this solution and started looking for a better solution. That is when I came across GnuCash.
I came across GnuCash when I was looking to understand more about accounting applications for something related to work at Drip Capital. Someone recommended GnuCash to me as a resource for learning how to implement double-entry bookkeeping. After researching more about this, I realized it solved my finance tracking problem. So I decided to give this a try.
You can download the application from the project page. It did come with a learning curve in understanding the setup. The documentation goes through it very clearly and explains everything in detail. I followed the quick start guide and opened accounts as I saw fit my scenario. For the backend, it uses XML by default. Though it exports the XML file, any custom analysis would require writing custom scripts that read, interprets, and create a data model on which to run the analysis. I wanted even less hassle in analysis and I found that it does provide SQLite, MySQL, and Postgres support. I have been dipping my toes into Postgres a bit these days, so I ended up choosing Postgres. The export from XML to Postgres was very simple and the application handled it completely. To build custom reports, I connected the database to metabase and started building them.
The cons for this solution are that mainly it is completely manual, which anyway no other application was solving. There is also a bit of a learning curve to understand how to set up the application and how to add accounts. It also assumes that you have an understanding of Double entry accounting. Once you understand this concept working with the application becomes easier.
Currently, this setup is running fine for my use cases. I am right now more focused on building custom reports to get more insights into my finances. As I start using this application more I see different ways this solution can be improved. One of them is the fact that my entire setup is local. I have to make all entries on my machine which has the Postgres server running. I will be looking to move this to a remote server and then make the application reachable from multiple machines. Also, GnuCash has a great feature to build custom reports using Scheme language. This has the advantage of showing the data on the application itself. I would be looking into building more of these reports in the application itself. In case you were ever facing this problem then I hope you find this article helpful. Please feel free to reach out to me in case of anything you want to discuss.