August 25, 2003

What's new in GnuCash

- by Joe Barr -
It's been almost a year since I first wrote about GnuCash, the open source alternative to Quicken, the perennial best-selling/most popular proprietary application for personal finances. You may not have noticed, given the thick layer of SCO news the past week, but the project has recently announced both a new release of the application and a new release of its documentation: the GNUCash Guide. You can download both of them here.

After I wrote about release 1.6 of GnuCash last September, and especially after the feedback I received, my view was that GnuCash was at an awkward stage in its development. Perhaps because of the failure of an effort to make it a commercial success, interest in GnuCash had waned for a while. Maybe it was simply a reflection of where it was in its development cycle. Whatever the reason, it seemed to be caught in the middle. It was difficult for some to learn to use, and yet at the same time it wasn't really geared to meet the demands of business use.

When I say too difficult for some users, I am not talking about Linux newbies confused by the differences in the interface. I mean users without a basic understanding of accounting. GnuCash is based on double-entry accounting, like any professional accounting application should be. Folks who want nothing more than a way to balance their checkbooks may not want to have to learn basic accounting in order to use GnuCash for that purpose. If that's the case for you, more's the pity. It's a dandy application. And you really should know a little about accounting in any case.

The newest release of GnuCash is 1.8.5. You still should know what double-entry accounting is to make full use of GnuCash. But it has made big strides toward removing the second barrier by offering new functionality designed to meet business needs. The documentation explaining how to use those tools is ready as well.

Before I report on the new ease-of-use changes for business, let's talk a bit about double-entry accounting. Balancing a checkbook doesn't require double-entries. When you put money in your bank account, depositing a paycheck, for example, you enter it in your checkbook as a deposit and add it to the balance. When you write a check to pay for your online access, you enter the check number, payee, and amount in the checkbook and subtract it from the balance. That's all there is to it. The only account you're concerned about is your bank account.

Double-entry accounting requires additional accounts and additional entries to handle those same two transactions. The balance of each account is tracked with debits and credits. The debits and credits are itemized in separate columns: debits on the left and credits on the right.

Some accounts normally have a debit balance. These "debit accounts" include things like your bank account balance, savings, and other assets. Posting debits to these accounts increases their balance. Other accounts normally have a credit balance. "Credit accounts" include liabilities: the amount you owe on your car or home, for example. Posting debits to these accounts decreases the account balance.

In double-entry accounting the debits have to equal the credits in every transaction. Let's look at what would be required to record the checkbook examples above in a double-entry accounting system.

First of all you would need three accounts in order to record those transactions: salary, bank account, and ISP. To record the deposit of your paycheck, you would credit the salary account and debit your bank account. To record your check to the ISP, you would credit the bank account and debit the ISP. That's all there is to it.

GnuCash makes it even easier to do doule-entry accounting than I've described. It also has a much better explanation than mine, so if I've left you confused, read the section on double-entry accounting in their docs and it may become clear.

Updated: The link to the GnuCash docs above has been updated to point at the latest version of the docs.

Now let's take a tour of GnuCash 1.8.4 (1.8.5 was released since I started writing this story) and focus on the new tools for business. We'll set up the books for a hypothetical enterprise: a miniature donkey ranch.

After cleaning up all the remnants of my earlier installation (both from the .gnome subdirectory and the various files left around by GnuCash 1.6), I started 1.8.4 for the first time. A Tip of the Day window appeared along with a smaller one, asking if I wanted to set up a chart of accounts, import files from Quicken, or open the tutorial. After closing the Tip of the Day, I chose to set up the chart of accounts and clicked OK.

Another window explained what the account setup would entail. When I clicked Continue I was asked for the currency type from a long list in a drop-down menu and then to pick the type of accounts to create. The choices ranged from "A Simple Checkbook" to Spouse Retirement. I chose the Business Accounts category. Next I was given the opportunity to enter starting balances in the list of business accounts it had created for me. I put $10,000 in a checking account. Then I clicked Finish and setup was done. It had only taken a minute.

The chart of accounts created for me by GnuCash was very generic, so I added two new accounts before doing anything else. I right-clicked on Expenses from the account listing, then selected Add Account from the pop-up menu. I called the new expense account "Livestock Purchases."

The next thing to do was to buy three donkeys from the Texas Donkey Emporium. I clicked on Business on the tool bar across the top of the GnuCash window and was selected Vendors->New Vendor. Then I filled in the name and address of the vendor and clicked OK.

When I received the bill for the donkeys, I started GnuCash again and clicked on Business->Vendors->New Bill. After selecting the vendor and entering a brief description, another window appeared so that I could enter the remaining details. Some of the data was already filled in. I entered the description, expense account (the new Livestock Purchases I added above), quantity, and unit price for each animal. When I hit Enter for the first one, a second line appeared. When all three had been entered, I clicked on Post button, then verified that I wanted to post the transaction by clicking OK. Then I closed the window.

Checking the accounts window afterwards, I saw that I still had $10,000 in the bank, but now also had a $4,500 expense and a $4,500 liability as well. The liability amount represented the accounts payable created when I entered the bill. Now it was time to pay the bill.

Still at the main GnuCash window, I selected Business->Vendors->Process Payment. A Payment Information window appeared where I selected the vendor
to pay and entered the payment amount. I also needed to select a Transfer Account. This is "other side" of the double-entry accounting. I chose the Checking Account under assets as the source of the funds for the payment.

After paying the bill, a status line between the icon toolbar and the listing of accounts advised me that I had Net Assets of $5,500 and profits of minus $4,500. I had certainly picked a realistic example. The process had been so easy I was encouraged to sell the three donkeys to two different buyers and try to turn a profit.

I added two customers by clicking on Business->Customers->New Customer and filling in their names and addresses. Then I clicked on Business->Customers->New Invoice. I recorded the sale of Anna and Freida to one customer for a $1,750 each. I used the Income: Sales account that GnuCash had created for me to record the sale. Then I repeated the process and created a second invoice to record the sale of Daisy to the other customer for $1,800, posting each invoice as I finished it. By the way, you can also print the invoices while you've got the invoice on the screen. Or you can come back later to do that. The same is true of posting them.

The status line on the main window now told me I had earned $800, so I was feeling better about the ranch. But what about reports? GnuCash has them covered, too.

In addition to the nine standard reports and graphs having to do with income and expenses, there is now a separate menu listing six different business reports: customer, employee, and vendor reports, payables aging, receivables aging, and invoice printing. There are also ten reports on Assets and Liabilities, an Account Summary, a tax report, and a transaction listing. If that's not enough, you can write your own.

I've gotten a little long-winded in this story, but I haven't really done more than scratch the surface of the capabilities of the latest GnuCash. I didn't mention its ability to handle and pay employees, for example. Or its tax tracking capabilities. Or provide a better look at its standard reporting.

But I've seen enough to recommend that if you are looking for an accounting package for small business, you start by looking at GnuCash. In fact, GnuCash might very well be a better replacement for QuickBooks than it is for Quicken. I know I am going to give it a very thorough real-life exercise in my own small business. Who knows, you might save yourself a bundle. If you just want to balance your checkbook, GnuCash can handle that, too. In fact, it has a sample set of accounts you can use for exactly that purpose. But a spreadsheet might be an easier way for you to accomplish that, albeit without all the bells and whistles GnuCash offers.

Joe Barr has been writing about technology for 10 years, and about Linux for five. His work has appeared in IBM Personal Systems Journal, LinuxGazette, LinuxWorld, Newsforge, phrack, SecurityFocus, and He is the founder of The Dweebspeak Primer, the official newsletter of the Linux Liberation Army.


  • Open Source