If you've ever read a blog about saving money, one of the first points they usually make is “record your expenses”. However, all that data is not very useful if you can't easily analyze it. I've been recording expenses using the “state-of-the-art” method of pen and paper for a few years before I decided it's taking way too much time and effort to draw any conclusions. The obvious improvement was to start using some kind of software to make summaries and graphs using that data. There's a myriad of options out there and I encourage you to try them out, but in this article I'll talk about GnuCash, which is what I'm using now. It works for me and might be something for you too.

What Is GnuCash and Why Should I Use It?

GnuCash is a free, open source accounting program available for Windows, Mac OS, and Linux. It's very powerful and has many advanced features, but don't be intimidated, you really don't need to know what all the options do. Why should you use it? Let me tell you what GnuCash did for me and you can decide if it's something you're interested in. First of all, I can now easily see how much my family earned and spent in a given period of time without doing any calculations. With a few clicks I can see if we're living within our means or just how many months we need to save for that bigger expense. Thanks to categories of expenses, I'm better able to spot ways to optimize them. For example, recently I noticed that my wife is paying more for her phone than usual (she's using a prepaid so it wasn't immediately obvious). We investigated further and it turned out that she's mostly calling the same people, but more often. Now she has free calls to these people and is paying way less than before. 

Expense Structure

Structure of my expenses for this year. Do you know what's yours?

So, in short, I get a better overview of my finances and I can get more bang for my buck. Want to do the same? Great! But first we need to set everything up.


After you download, install and run the program you should see a New Account Hierarchy Setup wizard. In case you get an empty GnuCash window, just click File – New File. Click Forward, select your currency, and click Forward twice to get to the Choose accounts to create window. An account in GnuCash is simply a category of expenses, income, assets, etc. By default, GnuCash will want to create a lot of accounts, but if you're just starting out I suggest going simple and adding accounts when you feel you need them. In the Categories pane, deselect Common Accounts and select A Simple Checkbook. Make sure A Simple Checkbook is the only entry with a check mark. If you select a few entries here, all the accounts from those types will be added to your hierarchy. Click Forward twice, and then Apply. Save the file somewhere safe, it will contain all your data so make regular backups.

Account Wizard

Lots of accounts to choose from

Managing Accounts

Our sample hierarchy has been created, but it's much too general to be really useful. If you want to be able to easily analyze your data, we need to add some accounts under expenses. Right click the Expenses account, and select New Account. Type in the Account Name and click OK. I suggest the following accounts: Cleaning & hygiene, Clothes, Eating out & take-out, Entertainment, Groceries, Home, Medical, Other, Phone, and Transport. If you want to track something specific more easily, you can add more accounts or create subaccounts. For example, if you want to focus on reducing your power bill, it will be easier to visualize the expenses if you create a separate account under Home. To keep things as simple as possible, I suggest you also delete Equity (right click and select Delete Account, deleting all subaccounts) and rename Checking Account to All (right click, select Edit Account, and change the account name). If you followed these instructions, your account hierarchy should like this:

Sample Hierarchy

The Boring Part a.k.a. Getting All That Data

While GnuCash offers the option of downloading records from banks, I've never used this feature, because I have some privacy concerns. If you decide to use it, you're on your own. I input all my data the old fashioned way and it takes me no more than five minutes per day. The most important part in this process is collecting the receipts. If you don't get them, it will be difficult to remember how much you paid where and for what, especially if you decide to input the data into GnuCash once every few days or once a week. Before I tell you how to input the data, there's one thing you need to know about how money flows within GnuCash. Flows is a good word here, because all money has to flow from one account into another, i.e. if you add a $100 entry under Expenses, that $100 has to be deducted from some other account. For the purposes of this example, every entry should involve the All account, but once you get more familiar with the program, you can track specific bank accounts or credit cards and even the cash in your wallet.

Double click a specific account under Expenses and it will open in a new tab. The date will be automatically filled with the current day, but you can easily go back and forth using the - and + keys on your keyboard, respectively. The Description field is where you can give some additional information about the operation. You can leave this blank if you want, but I prefer to be specific. This helps me identify places I spend the most money at and allows me to track expenses of specific family members, if applicable. For things like Groceries, I never put specific items in the description, just the shop name. I get a little more specific with clothes, and very specific with electronics and the like. An example description would be “Pat's bakery”, “Running shoes (Sniqs),” and “240 GB SSD drive, manufacturer, model”. During analysis I can then search for Pat's bakery if I want to see how much I spend there, or search for my name and see all the stuff I bought specifically for myself. Another advantage of providing a description is that the next time you start typing, GnuCash will fill out the rest of the transaction for you (including the transfer account). This speeds up the whole process a lot. Next, in the Transfer field, select an account where the money comes from (in our case Assets:Current Assets:All). To do this, you can click in the field, then click the small arrow icon that appears, and choose an account from the dropdown menu. Finally, enter the amount in the Expense field.


First Entry

If this seems like a very tedious process, it is, but fear not, there's a better way to do this with just the keyboard. When you open the account, the cursor will be in the Date field. Use the +/- keys to select the date if you need to and then press the Tab key twice to move to the Description field. Type in the description and press Tab again. Type the first letter of a top level account name (top level accounts in this example are Assets, Expenses, and Income). If you need to choose a subaccount you can either use the arrow keys or type a colon and as many letters of the subaccount name as needed (for example you'd need to type “e:clo” to choose the Expenses:Clothes account to differentiate from Cleaning & hygiene). When the correct account is highlighted, press Tab to move to the Expense field. Input the amount and press Enter. So, for the entry in the screenshot above, the sequence is (no changes to date): Tab, Tab, Pat's bakery, Tab, a, Tab, 20, Enter. Pretty simple, right? And much much faster. Even better, the next time you shop at Pat's bakery, you can just do: Tab, Tab, p (or as many letters as needed, same as for accounts), Tab, 30, Enter.

The Saving Part

Rows of numbers are not that great for analyzing, so let me show you how to use GnuCash to display reports. Personally, I only use reports from the Income & Expense category. From the main menu, click ReportsIncome & Expense and choose the report you want. The ones I use are: Expense Barchart, Expense Piechart, and Income & Expense Chart. When you open them for the first time, the graphs in them will probably be really tiny, but that's easily fixable. Go to EditReport Options – Display and change the plot width and height to suit your needs. There are other options you can change here, displaying data from specific accounts and choosing the time period are the most useful for me. When you're done, click OK. To avoid doing this every time, save the report by clicking Reports – Save Report Configuration, entering the name and closing the dialog window. The next time you want to view that report, click Reports – Saved Report Configurations, and double click the report.

How do these reports help you? This part is very personal, because a lot depends on your spending habits and financial goals, but I will give you a few pointers to get you started. At the end of a month, I always look at the Income & Expense Chart and Expense Barchart reports. The first one lets me see if we gained or lost money and how this month compares to the previous ones. Of course, it's best if the net result is better than previous months, but remember that this is a total and a single big expense can skew the results. If you bought a car, you will see a massive loss, but that doesn't mean you're going bankrupt. Expense Barchart is better for analyzing expenses since it splits them by account. That's where you can really see where your money is going. Look at the bars and note if any are larger than in the previous months. If they are, think about why is that. Maybe you went on a spending spree, because it was sales season or you needed to call the plumber. If so, that's fine, but if you have no idea why you suddenly spent twice as much on hygiene, then that warrants an in-depth look. Open the offending account and go entry by entry (here's where good descriptions really help) until you know what's going on.

Nothing Unexpected

Another useful method of analysis is searching. Go to Edit – Find (or press Ctrl+F) to search entries in the current tab. Again, this method works best if you provide good descriptions. If I feel like I'm always buying new shoes, I can open the search window, type “shoes” in the text field, click Add, type “Sniqs” in the second field and click OK. The results will show all entries with shoes I bought for myself and then I can check if it's just my imagination or if I'm really buying shoes every month, even though I almost never walk. That could be a signal to either buy better shoes or stop hoarding. Some stores may give you discounts or coupons if you spend a certain amount and sometimes it's just a matter of changing your shopping habits a bit to get those bonuses. You might even be spending the required amount already, but not in one go. With the search it's easy to check that and then act accordingly.

Thanks to the records you can also easily track if you're making the right changes and just how much they impact your bottom line. For example, if you're not sure if eating out is that much more costly than cooking at home, just try it for a month and you'll see if it's worth your time. These are just a few ideas for how you can use GnuCash to help you take control of your finances. I'm sure by now you have a lot of your own.


There are many ways visualizing your finances can help you. I hope I gave you an idea of the benefits and how to get started. This might seem like a lot of work, but once you set everything up, it's a breeze. If you ever looked at your bank account balance and wondered where all your money went, this is definitely something for you and the sooner you start, the sooner you'll have data for analysis. Good luck!