GnuCash Project Goals

The people behind GnuCash aim to create a world-class GPL'ed Open Source Personal Financial Application for GNU/Linux and other Unix's. This page aims to review some of the technical and development issues surrounding this product, representing a sort of FAQ for developers and contributors, to suggest directions when developers are trying to determine how to implement new functionality.

To get a better idea of what GnuCash is and what it does, visit its home page.

There are currently several different versions of GnuCash.

The latest Gnome version, and latest versions in general, are currently available only via CVS.

Precompiled versions are available, but usually only for the stable releases. Don't use the unstable versions unless you are ready for excitement and adventure, and are prepared to cope with a need to keep extensive backups.

This document is divided into several sections.

  1. Architectural Goals
  2. Feature Requirements
  3. Features

Architectural Goals

There are some over-reaching design principles and philosophies that we intend to maintain. Some of these concepts and terms are introduced in this section.

Separation of GUI and Data

First, we must maintain a clean separation between the data structures and the GUI that manipulates them, along the lines of the Model-View-Controller paradigm.

GnuCash also needs to deal with multiple distributed data sources: stock quotations from the net or transaction confirmations from online banks and brokerage houses, or from more mundane sources, such as file imports, or merger of data from several users.

Amongst these terms, the concept of a global Model-View is dated, and somewhat inappropriate. Rather, we need to be concerned about how data is represented in the local address space of the GUI, how the GUI manipulates it, how data is brought in and merged from external sources, and how that data is again output, whether to a file or a local or remote database.

Thus, the View essentially represents a local data cache of the data that is immediately present and being displayed, reported, and manipulated. The Model is the abstraction of that data that the GUI (the controller) can act on.

The Financial Engine

In GnuCash, the Model is implemented via the Engine API, and the View is the data that is currently in the Engine. Thus, the Engine is a set of programming API's that the GUI (or a script, or even a clever command-line-addict) can use to manipulate the data.

Currently, the Engine is fairly poor, and is tightly tied to the data structures that the GUI manipulates. These data structures include:

The Engine has a very simple apply/commit model, and a simple query mechanism for generating reports and views.

The Engine currently handles only a small set of data sources:

However, since the Engine is meant to be the interface between the GUI and the financial data, it is really intended to be able to do much more.

In particular, it should be possible to back the Engine onto an SQL database, and thereby enable multiple users and/or interface to more complex accounting systems. The engine should also be expandable to handle other sources of data, such as OFX, Integrion GOLD, the Open Trading Protocol, the OMG CORBA General Ledger submission, the IBM San Francisco business objects, or closer to home, Linux Kontor. In particular, it should be possible to use GnuCash not only to view data from these sources, but also to manipulate it and send it back.

Modularity, Extensibility and Customization

The above structure should leads us to view GnuCash not so much as a tightly integrated application, but rather as a loose confederation of component objects, libraries and interfaces.

In order to facilitate the gluing together of these parts, as well as simplify the questions of customizability, change and rapid development, GnuCash makes use of an extension language to glue the pieces together.

The extension language that is most central to Gnucash is Scheme, and in particular, the FSF implementation, Guile, although some of the interfaces are also available through Perl.

Markets and Users

Implicit in this desire for extensibility is the need to build financial applications supporting two major classes of users: They may use some of the same financial terminology, and hopefully might share a fair bit of code, but have quite different goals and requirements.

Personal Finance Needs

Important properties of a personal finance system include:

Small Business Needs

Reconciling Those Needs

A seemingly contradictory factor is that the kinds of sophistication that are required vary considerably. Consider:

It may be that these will require completely different systems, and that GnuCash cannot be "all things to all people." This remains to be seen.

Feature Requirements

Personal Financial Application

Below are listed the technical work items needed to implement the features that home users might hope to have. They are listed in approximate order of priority.

The right hand column shows a sizing guesstimate. pm == person-months

Feature Sizing
Internationalization Small
Graphs, Reports Medium
Simplified Stock Ledger Small
Themes, Icons, Glitz Medium
Books, Accounting Periods Small
Check Printing Small
User Preferences Medium
Extension Language Support Medium
Bonds and Interest Bearing Instruments Small
401K etc. Small
Annotate with Investment News Small
Loan and Mortgage Calculators Small
Budgeting Medium
Alerts, Recurring Transactions Medium
Quicken(TM) Export Small
Stock Quotes, Price Quotes Small
OFX, Online Banking, Trading, Billpay Large
Multiple Currencies Medium
Double Entry Accounting Small
Tab-delimited ASCII export Small
Tax Preparation Large
Sync with Palm Pilot organizers Medium
Emergency Records Organizer Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect. Emergency Records Organizer
Small

Small Business Features

Features that small/medium businesses expect.