GnuCash  5.6-118-gf3b203f4db+
Some Thoughts about GnuCash Budgeting

API: Budget

Bob Drzyzgula

18-April-1998

Abstract

At this point, this document contains my personal thoughts about possible design criteria for a budgeting engine in GnuCash. These should not at this writing be taken as consensus opinion, and may in places be at odds with conventions inside GnuCash code (and with general accounting principals... I am in no way an accountant), and thus may not be practical. However, I believe that they provide a self-consistent view of how one might do this, and I hope that this document will serve to continue the discussion that began on the GnuCash/Xacc mailing list.

tableofcontents

Definitions

As with any design paper, we'll need a few definitions. I'll try to stick as close to possible to the Xacc usage of these terms, but I'm not intimately familiar with the code, so I may have made some errors here.

Documenting the Budget

One possible way to document a budget might be as a classic `‘input-output table’'. Consider the following table:

+---------+----------+---------+-----+------+------+-----+------+------+
|         | Checking | Savings | MMA | Cash | Visa | Tax | Food | Rent |
+---------+----------+---------+-----+------+------+-----+------+------+
+---------+----------+---------+-----+------+------+-----+------+------+
|Checking |    x     |    3    |  2  |  7   |  3   |     |      |  5   |
+---------+----------+---------+-----+------+------+-----+------+------+
|Savings  |          |    x    |  1  |      |      |     |      |      |
+---------+----------+---------+-----+------+------+-----+------+------+
|  MMA    |          |         |  x  |      |      |     |      |      |
+---------+----------+---------+-----+------+------+-----+------+------+
|  Cash   |          |         |     |  x   |      |     |  6   |      |
+---------+----------+---------+-----+------+------+-----+------+------+
|  Visa   |          |         |     |  8   |  x   |     |  7   |      |
+---------+----------+---------+-----+------+------+-----+------+------+
|Paycheck |    20    |         |     |      |      |  5  |      |      |
+---------+----------+---------+-----+------+------+-----+------+------+
|Interest |          |    2    |  3  |      |      |     |      |      |
+---------+----------+---------+-----+------+------+-----+------+------+

The first five data columns and the first five data rows have the same names. These are the asset and liability accounts. The last three columns are the expense accounts, and the last two rows are the income accounts (When I learn a little more SGML I'll try to make the table a little more readable). Notice:

Contributing Data

(to be done)

Where I'm headed for the rest of it is this: