Budgeting in GnuCash

Ben Stanley bds02@uow.edu.au
Fri, 1 Dec 2000 14:46:12 +1100


Joshua,

I'm glad you are looking into this. You seem to have put in some serious 
thought. I wish to add some comments, though.

   A budget is a tool by which a user can compare expected expenses to
   the history of actual expenses, for the purposes of better allocating
   income. Once realistic budgetary limits are obtained, the user can
   then project forward to plan for future expenditures. The goal with
   any future-based financial tool is to manipulate the difference of
   income to expenses, in order to further utilize available financial
   resources.

I wish to use the budgeting to exert rigorous control over my expenditure, in 
order to *limit* it, not merely to track it. I suppose that this is where the 
money in envelopes method comes into its own. It's pretty difficult to limit 
expenditure when everything is actually stored in one place (bank account, 
cash), and the allocations are stored separately to where the spending 
decisions are made (at the mall)... 

I think that you've managed to capture the idea of what a budget is. However, 
you have not indicated much about your method of implementation. Here are 
some practical questions:

Will you use a completely separate set of data structures to represent the 
budgeting information? (This seems inevitable if we are to escape using the 
recurring transactions hack.) 

Where will the budget information be stored? (I heard a rumour that the data 
file format was being expanded to find a place for this kind of information - 
how far away is this?)

How does all of this interact with the GNUCash requirements of being able to 
store the information in an SQL database? Storing the budget as extra 
information may add considerable complexity to the separate back-end problem.

As for user experience flow, my wife and I have already drawn up a budget of 
spending - by reviewing our previous expenditure. We have tried to use the 
budgeting component of Microsoft Money (a 1995 version) without any 
success... of course I hope we will be able to come up with a better 
solution. I think that the lack of success with the Microsoft approach was 
that it took, essentially, a report approach to budgeting. It had poor 
support for regular expenses and regular contributions - it allowed you to 
set an amount per year. It then allowed you to compare your current 
expenditure against your yearly goal. Of course, it's easy to 'look good' 
toward the beginning of the year, but run out of money half way through, 
because it did not take time into account. It is important to ration the 
funds as you go, and to incorporate time into the reports.

Looking again at what I have said above, I think that the biggest problem was 
probably the lack of support for examining the budget at the current point in 
time - and comparing it with where I should be right now, not at the end of 
the year. Given this, I think that the implementation done as reports 
probably had little to do with it's failure in our case.

If you want to discuss my and my wife's opinions of how a budget should work, 
we are happy to do so. drop me an email.

You have put a lot of work into that design document - are you doing it as 
assessment for an educational institution?

Ben.