After watching the Toronto housing price skyrocket in the past year, I started to worry if I could ever afford a house. So last week, I started exploring various personal finance applications to figure out how much money I was saving a year, and how I can increase my savings. I first looked at popular applications such as Mint.com and YNAB (You Need A Budget). These applications are most popular, but they either require a subscription, or require login credentials to online banking account. I don’t feel safe handing over my banking password, so I decided to try another application called GnuCash.
GnuCash is a financial accounting app written in C. It does double entry accounting, meaning each transaction will have 2 records. For example, Salary goes into Income->Salary, and goes towards your assets (Chequing account). Grocery bill goes into Expense->Grocery and goes towards your liability. When you pay your bills, money from assets goes into paying the liability, and your account remains balanced!
You can create accounts to track cash flow between your savings and chequing accounts, credit accounts, and even trading accounts. The application has an online stock quote feature to gather the latest prices for your stocks. The application can also create financial reports, ex. assets, income, expenses, etc.
After using GnuCash for a week, I find that its data entry is extremely tedious. Applications such as Mint.com gathers transaction data from your banking info. You lose security on your password but they take care of all the data entry and categorization for you. With GnuCash, you have to download the transactions yourself and import them in. Downloading the files depends on your banking provider. Most banks provide Quickbook files, ex. .QFX or .OFX files, a standard financial accounting file format. Some finanicial instituents only give Excel or CSV files. These files are trickier because you have to define the columns and format the data yourself.
Because GnuCash does double entry account for every transaction entry, you would have to indicate which account the corresponding entry(aka Split) goes into. The good news is that GnuCash use some Bayesian decision tree to learn to auto-match the splits based on data previously entered. The bad news is that the first time you enter, you have to set it manually. What sucks is that GnuCash doesn’t allow you to select multiple transactions at a time! This means you’d have to manually click on transactions one by one. I figured out a trick by only importing a distinct set of transactions in a file the first time, and set those splits manually. I then import the entire file again, and GnuCash will now auto-match the new splits. But event selecting the distinct set can be quite a chore. While you can sort the transactions, but you can’t select multiple rows. Imagine clicking each checkbox for an account with 50 transactions! That’s 50 clicks!!!
GnuCash gets easier to use once it learns how the splits are matched. You have to teach it yourself. Compare this with online applications where every user teaches the splits, so that other users can benefit from previously learned results, and have a more accurate match. This is where Mint.com and YNAB shines in comparison with GnuCash.
Would I recommend GnuCash to my family and friends? No, unless I want them to suffer the tedious data entry to set it up initially. But I do think that personal finance applications are very useful. For example, GnuCash showed my total income from 2016 and grouped it according to Interest, Bonus, and salary. I found out how much money I gained by taking advantage of free money. (Ex. Referral bonuses, cashbacks, etc.) I do wish that banks will provide something like OAuth to allow read-access to transaction data so personal finance apps can access it without giving up security. So far, I think only a few financial instituitions provide OAuth. Examples include discount-broker Questrade, and Robo-advisor Wealthsimple. This way, you can use an application like Mint without security fears.