Bookkeeping the FOSS way

Smart Money

Author(s):

Put your personal finances in order or manage your small business with GNUCash 3.5, a free and open source software program designed to handle both basic and complex accounting data.

If you're starting your own business or want to take greater control of your personal finances, you may have been tempted to subscribe to one of the many popular proprietary (and sometimes expensive) accounting products on the market such as Sage and Intuit QuickBooks. There is some sense in this: If you choose a less well-known product that is later discontinued, all your financial data could become unreadable overnight. Many of the freeware finance programs also don't support more advanced features like double-entry bookkeeping.

GnuCash offers a ready solution to both these dilemmas. As free and open source software, there's far less risk of support being discontinued altogether, and it can open and save transaction data in a number of formats. Despite being free of charge, the program is suitable for complex accounting data and supports double-entry bookkeeping, multiple currencies, and credit card transactions out of the box.

GnuCash 3.5 [1], which is the focus of this review, contains a truly staggering number of features. We have focused here on setting up accounts and inputting transaction data, but we encourage readers to take the time to explore the program's extra functions, too (see the "Other Features" section).

A Little Background

GnuCash was first developed in 1997. The first stable release was in 1998. It was initially designed to imitate some of the features found in Intuit QuickBooks but soon evolved and began to offer more. There are versions for Windows and macOS, as well as Linux (Figure 1). An Android version was released in 2015.

Figure 1: Download GnuCash from the application's main page.

GnuCash stores all data you enter in the flexible .xml format. It is also one of the few bookkeeping tools to support multiple currencies, and GnuCash developers claim it is the only open source program of its kind.

The software can track your finances any way you see fit. If you just want to balance your checkbook, GnuCash has that covered. You may want to do more in-depth bookkeeping, such as tracking credit card spending, assets, and liabilities. While GnuCash is perfect for personal use, it is a very powerful tool for business users. Users can also track investments and loan payments.

Installing GnuCash

GnuCash comes preinstalled in certain distributions of Linux. Failing this, there are several different ways to install GnuCash. Ubuntu users can navigate to Ubuntu Software, type in GnuCash, and click on the results (Figure 2). From here, press Install. Once the installation is complete, click Launch to open. The GnuCash website [1] also contains instructions for installing the program in other popular distributions.

Figure 2: You can use the Ubuntu Software Center to install GnuCash.

Each time you open the application, a pop-up box with a tip appears. If you don't want to see this, just uncheck the box underneath the message.

Setting Up Main Accounts

Once install is complete, you can set up your main GnuCash account. The software is suitable for both personal and business accounting.

It is best to set up five principle accounts. These include Assets, Expenses, Income, Liabilities, and Equities. Every transaction you make can be categorized under these headings. This makes your finances easier to manage.

You can simplify setup by using the GnuCash wizard. Although this is a fast way to get started, some users may find there are way more accounts and sub-accounts than needed. The sheer number of accounts can be overwhelming at first, but they can easily be unchecked and removed from your books.

To get started, open GnuCash. Click on File | New File From here, you can choose whether to use the wizard or enter your information manually. A pop-up box appears called New Account Setup Hierarchy. Click Forward to use the setup wizard.

Next, select the currency you wish to use in your accounts, and then press Forward. The next page relates to New Book Options, and there are four tabs to go through: Accounts, Budgeting, Business, and Counters. The setup wizard can walk you through all these.

However, more adventurous users can click Cancel when the setup window launches and enter information manually. Once you have cancelled, ensure that you can see Accounts on the left-hand side of the page. If you can't see this, go to View | New Accounts.

Next, click on Actions and scroll to New Account. From here, you can start entering your main accounts. We started with Assets as the first account typed, checking it was set to our currency of choice, US dollars (Figure 3). Next, under Account Type, we selected Assets. You can also choose to set a different color for each account, enter an account code, description, and any notes about this account.

Figure 3: GnuCash includes an account setup wizard. You can also enter your information manually.

Setting Up Sub-Accounts

From looking at your current screen on GnuCash, you can see that it is not worth much to you as is. So in order to start getting the most out of the application, you now need to start populating it with sub-accounts. This can be done the same way as for main accounts except that you click the drop-down menu under the Parent Account Type section. GnuCash will then show which section this comes under (e.g., Assets). When you choose the parent account, depending on your choice, the Account Type options also change. At this stage, there is no need to worry about having an exhaustive list of sub-accounts. You can add more at any time by repeating the above steps.

Once all these have been entered, it is now time to add your opening balance. Again, go to Accounts | New Account. Input Opening Balance as your account name. This should then go under Equity in Parent Account. This will now be saved as a sub-account on the main page.

Inputting Opening Figures

Once all your accounts have been set up, you need to enter your opening figures. When we were doing our accounts, we began by inputting an opening balance under Savings. To do this, double-click on Savings. A dedicated tab will now open beside your main account page. Enter the amount of savings you have under the Deposit section (e.g., $2,000). Under the drop-down menu in Transfer, select Equity:Opening Balance. On the Accounts tab, you will see there is now $2,000 in both the Savings and Equity:Opening Balance sub-accounts.

GnuCash is fairly intuitive in that it calculates the totals in each parent and sub-account depending on the opening balances you enter. For more information on the basics of inputting transactions and reading outputs, read through the GnuCash Tutorial and Concept Guide [2].

Basic Transactions

Once you have all your accounts and sub-accounts set up and your opening balances are filled in, you can begin entering transaction data.

As with most financial software, you'll need a basic grasp of the double-entry system so you can interpret all the data in the Accounts section. When you work with GnuCash, you will always be concerned with at least two accounts. For every change in value on one account, there must be a balancing change in another account. This is known as the principle of balance.

GnuCash divides your data into three organizational levels: files, accounts, and transactions. These are categorized based on their complexity. One file can contain multiple accounts and each account can hold multiple transactions.

Begin by inputting your expenses. Go to an expense (e.g., Phone) and double-click. In the selected tab enter the amount and where it is coming from (e.g., Assets:Checking). When you go back to your main page, you will see that your Checking account has now been debited by the amount entered in the bill. This amount also shows up under Expenses.

You can also enter these transactions by going directly to Checking. From here, enter your description and in the Transfer section and choose the category of expenses. Make sure to enter the amount under Withdrawal, not Deposit.

You can choose to pay by credit card: This will then be displayed under the Liabilities section where you have entered the type of card you use.

At some stage during this process, you may want to pay a bill or input an amount from an account that is not already created while you are in the middle of a transaction. To do this, enter you chosen field (e.g., Checking). Fill in the description. Under Transfer, fill in an entirely new name rather than clicking on the drop-down menu (Figure 4). Next, press Enter. A pop-up box will appear stating that this account does not exist and asking whether you would like to create it. Click Yes. You can now add this account in the New Account box that appears.

Figure 4: You can enter figures by clicking on the exact transaction you want calculated. These will then show up on your main screen.

Simple vs. Split Transactions

Each transaction that takes place in GnuCash splits at least two ways. This usually just involves a current account and a single remote account. This is known as a "simple" transaction.

However, there are times when your incoming transactions may be divided in numerous ways, and in GnuCash these are known as "split" transactions.

As most of our expenses are taken out of our salary, it is safe to say this is where the majority of split payments occur. If this is the case, start in your Income | Salary account and not it in your Checking account as you have been doing for the rest of your expenses.

Double-click on Salary, and enter description and salary amount. Before finalizing this entry, select Split from the top of the screen. Fill in the Transfer section but do not press Enter. Click Tab until you reach the next row and add your next split entry. Continue this until you are finished splitting your paycheck.

Other Features

GnuCash is extremely feature rich, so much so that the application guide runs to almost 300 pages. Although we can't provide a complete list here, some extra features caught our attention.

GnuCash can import transaction data from the SWIFT network and other international banking institutions. Currently the software supports files in QIF, OFX/QFX, CSV, MT940, MT942, and DTAUS formats. Just go to File and Import to start the process.

GnuCash also has a very handy loan repayment calculator which can add these payments into your account. It can be used to calculate payment periods, interest rates, the present value, periodic payments, and future values.

Another useful feature is GnuCash's reporting function, which allows you to display numerous transactions in a variety of formats. There are several commonly used reports, which can be customized to suit your needs. However, if you feel these are insufficient, you can create your own custom reports.

Summing Up

The main advantage of GnuCash is that it builds upon layers of complexity. Users with little or no bookkeeping experience can use the simple setup wizard to create main accounts, sub-accounts and enter their transaction data within minutes. The GnuCash project's open source nature may also provide some reassurance to business owners who worry about trusting their financial data to private companies that can go bust at any time. Although we focused on the Linux version of GnuCash, the software is cross platform, meaning that financial data can be shared across operating systems, though perhaps not quite as easily as with a cloud-based finance platform like Sage. As the GnuCash website notes, although the program does come bundled with various flavors of Linux, they don't always include the latest version. Make sure to follow the instructions in the Installing GnuCash section to enjoy all the latest features.

The Author

Nate Drake is a freelance journalist specializing in cybersecurity and retro tech.