November 6, 2006

Review: GnuCash 2.0

Author: Conrad Canterford

GnuCash is a personal and small business accounting package that provides true double-entry accounting, the ability to set up automatic recurring transactions, and simple budgeting. The application does not try to hide the complexities of managing your money from you with pretty screens. It does show you where (and how much) you're spending your money. If you're prepared to learn a subtly different way of doing things, you will find GnuCash a very powerful alternative for home or small business use.

GnuCash supports a number of different languages (29, according to the release notes), and has multi-currency support as part of its fundamental design principles. It has QIF file import, and if the appropriate external packages are installed, it supports HBCI electronic banking (predominantly German, I believe), OFX/QFX and MT940 file import, and support for OFX DirectConnect. It has some basic business support, including the ability to create, monitor, and pay invoices and record suppliers and customers. It features a comprehensive range of reports, with extensive options for most reports to tailor exactly what is reported on. In my experience, it is a stable and reliable program, and the developers go to some length to ensure it stays that way.

The interface is structured around a chart of accounts, and each account opens into an individual view, called a register. The register is simultaneously an up-to-date view of the account and data entry point. In true double-entry accounting style, every transaction must have two (or more) entries that completely balance each other out. This might sound a little complicated, but it is a powerful way of viewing what is going on with your money, and from my understanding is not too dissimilar to the way "real" accountants manage money.

GnuCash is open source, and it looks different from the commercial (Windows) accounting software I've previously dealt with. This is predominantly because of its no-fuss interface style, which focuses (by default) on the chart of accounts. If you are not an accounting wiz it might take a little while to figure out how to do things. The tutorial and concepts guides (links to which are available on the GnuCash documentation page) and the users mailing list are invaluable resources if you need help or advice in working out how to do things. Most people get a helpful answer from other users on the gnucash-user email list fairly quickly.

The software doesn't have payroll, or inventory control, or detailed customer management features. I found for my purposes it was best (and cheapest) to purchase a cheap dedicated payroll software package and manually key the transactions into GnuCash. There may by now be other alternatives available.

What's new in 2.0?

In GnuCash 2.0.0 (released in July), the user interface has had a substantial rewrite to convert it to using Gnome2 interface libraries. This has resulted in a subtle change to how it looks, but it has not had a negative impact on how it works, even for old hands. The instinctive keystrokes I've learned from many years of keying transactions into previous versions all still work. This for me has always been one of GnuCash's strong points -- it is not just possible, it's actually practical to enter lots of transactions by manual keying at the keyboard. You don't need much in the way of mouse clicks, and after a couple of transactions you actually get very quick at it. This hasn't changed with 2.0.

The user interface now provides a tabbed layout approach rather than opening new windows for every new register and report. This behaviour is controlled by configuration options (one for registers, one for reports), so you can change back to the old behaviour if you like. The menu structure has been reorganised slightly to provide a more consistent approach and to confirm with GNOME Human Interface Guidelines. These changes have given the program a new fresh look, without detracting from its tried-and-true approach. It looks prettier, with a new logo and graphics, and with the upgrade to Gnome2 it now behaves much like most other GNOME programs.

Budgets are a new feature that looks to be fairly flexible -- allowing different budgeting periods to be specified, and with an "estimate" feature to calculate the budget from actual transactions. There is also the requisite "Budget Report" to provide budgeted-to-actual reporting. Budgeting is not a feature you have to use in order to get other stuff to work, so you can always ignore it if you can't be bothered or don't like the way it works. To be honest, I couldn't even find it when I went looking for it for this review, because its hidden away in the File menu. I required a gentle hint to point me in the right direction. If I were to have a complaint about this feature, that would be it -- I think it would be possible to better integrate it with the rest of the program while still keeping it an optional feature.

The release notes mention improved support for various online banking standards, particularly OFX DirectConnect support. This is dependent on a very recent version of the aqbanking library and an as-yet-unreleased version of libOFX, but by the time GnuCash appears in your distribution these will hopefully also be available. Version 2.0 also claims new support for importing files in the MT940 format.

So why should I upgrade?

From a users perspective, this release might feel a little light, with the only major new feature being budgeting. Don't be fooled -- this is much more than a bugfix release dressed up. A substantial amount of work has gone on in the background to update and improve the internals. This should make the next generation of features possible, and with any luck will speed up the development process. It might not look like much has happened, but plenty of changes have been made that should make the next generation of features possible.

That is not to say that there are no bugfixes in this release, of course. One of the main reasons for upgrading is that support for the old 1.8 series is now discontinued. There will be no more bugfixes made to the 1.8 series, so all users should change to 2.0 for that reason alone. There is already strong community support behind 2.0, and the developers have just announced the release of 2.0.1 to fix a few minor bugs and adjust a few default configuration options.

Upgrading is simple -- install the software, load up your 1.8 data file, and away it goes. If you don't set up a budget, 2.0 is completely backward-compatible with 1.8.12, so you can always go back if you want.

Building the software yourself isn't particularly difficult if you know what you're doing (it "just worked" for me, once I'd installed all the -devel packages), but if that doesn't make any sense to you, I'm afraid you will have to look around for precompiled packages for your distribution or wait until the distributions make the new version available. I know user-contributed packages have been made for Fedora and Debian at least.

Note that GnuCash is a GNOME program, and needs many of the GNOME libraries. If you already use GNOME, you won't notice this, but if you use KDE or another desktop environment, you will have to install the GNOME libraries in order for GnuCash to work. You will also need Guile (the Gnu Scheme interpreter) and g-wrap (which provides the interface between Guile and the rest of the program. If you are installing from a distribution, these should be installed for you. If you are building from source, you will need these to build. There is an up-to-date list of the dependencies required for most major distributions in the source code -- look for the "README.dependencies" file in the top level directory.

I have been a long-term GnuCash user (from the pre-1.4 beta releases, in fact). I have the accounts for my (very) small business in GnuCash, and have in the past been a heavy user. If you want something that looks and works just like package X, then GnuCash probably isn't for you. But if you'd like a stable and robust open source accounting solution, and are not afraid to learn a little bit to drive it, you could do a lot worse than to give GnuCash a try.