budgeting

Christopher B. Browne cbbrowne@hex.net
28 Nov 2000 07:47:15 -0600


James LewisMoss <jimdres@mindspring.com> writes:

> >>>>> On Thu, 23 Nov 2000 00:23:56 -0500, Aaron Peromsik
> <aperomsik@mail.com> said:
>  >> From: James LewisMoss <jimdres@mindspring.com> Date: 21 Nov 2000
>  >> 03:08:01 -0500 I want my budgeting system ...
> 
>  >> ... to add transactions automatically
> 
>  >> ... to mark transactions as automatically added so I can make sure
>  >> they are ok.  ... to remind me to add items.
> 
>  Aaron> I guess this is as good a place as any to introduce
>  Aaron> myself... I'm a Quicken user interested in switching to
>  Aaron> GnuCash if the right things happen with respect to scheduled
>  Aaron> transactions. By day, I'm a CAD software developer. I don't
>  Aaron> have much free time to contribute to GnuCash development, but
>  Aaron> I'll start by joining the discussion and take it from there.
> 
> Great.
>
>  Aaron> Quicken draws a distinction between "budgeting" functionality
>  Aaron> and "scheduled transactions." I find the scheduled
>  Aaron> transactions useful as reminders, but I don't use the
>  Aaron> auto-entry functionality because I don't want things entered
>  Aaron> as paid until I actually mail the check.
> 
> I agree there is a distinction, but I see scheduled transactions being
> very useful for budgeting, so for the moment I'm including them
> together in my head.

There are two major approaches to budgeting that I am aware of, and
while I agree that thinking about them "together" is necessary to
getting a design, they tend to make the head hurt.

1.  There's what might be called an "accountability model;" you set up
    parameters indicating what you predict spending will look like,
    and then compare this to the Real Transactions.

    This is what big organizations do when doing their annual budgets;
    departments and managers get told information about their
    constraints, and they then pass back predictions that get
    collected together to form the Organizational Budget.

    Quicken seems to handle budgeting in much this manner, and the
    GnuCash script [.../src/scm/report/budget-report.scm] takes this
    approach.

2.  Then, there is what might be called the "pragmatic
    adding-scheduled-transactions" approach.

    Basic idea: You use a "transaction scheduler" to automagically add
    periodic transactions to your set of accounts.

    Quicken offers this, with a GUI to let you manipulate the set of
    scheduled transactions.  

    And the Tcl/Perl-based "CBB" package has _long_ offered a scheme
    whereby you set up a file that looks _remarkably_ like a set of
    crontab entries, and then run a utility that runs across that and
    your data file to add [and, in some cases, delete] such.
    
    See <http://cbb.sourceforge.net/cbb-man/cbb-man.html>, searching
    for the section entitled "Managing Recurring Transactions."

Both approaches have merits and demerits:

Method #1 keeps the budget quite separate from the actual books,
unlike #2, which is rather crucial if you need to pretty strictly
control Conformance To The Budget.  

Unfortunately, with that tight control comes two rather significant
demerits:

a) It represents a dramatically different independent subsystem,
   requiring Yet Another User Interface.  

   With Quicken, there's a complete user interface _independent of the
   "register"_ for working with the budget info.

   With GnuCash's present [.../src/scm/report/budget-report.scm], you
   need to write up your set of budgeted items using a text editor,
   and run it as a report.  It would be logical to create a GUI that
   would allow you to edit the budget items; that would be Quite
   Distinct from the existing Register UI.

   In contrast, "budgeting via scheduled transactions" requires a
   dialog to support the schedule; that may be fairly closely
   integrated with the register.

b) You likely need to do quite a lot of setup of information in order
   to get _any_ useful information out of this.

   In contrast, the "scheduled transaction" approach lets you set up a
   scheduled transaction here and there, and gradually converge
   towards something useful.

>  Aaron> On the other hand, having things entered in the register in
>  Aaron> advance would be useful for cash flow management. Currently I
>  Aaron> duplicate my scheduled transactions for the next couple months
>  Aaron> in a StarOffice spreadsheet to help me decide how much money
>  Aaron> gets transferred from savings to checking in time to pay the
>  Aaron> bills. If Quicken -- or more likely, GnuCash -- would have
>  Aaron> some in-between state for scheduled transactions which show up
>  Aaron> in the register but are not really entered yet, this task
>  Aaron> would take a lot less duplicative effort.
> 
>  Aaron> ...
>  Aaron> What do other people think of these suggestions?
> 
> I like this a lot actually.  I don't know how difficult it'll be to
> implement, but the functionality sounds quite useful.

I'd suggest that setting up a scheme to manage "scheduled
transactions" with a model similar to that of CBB's "Recurring
Transactions" would be a fruitful first step; it doesn't provide you
with a complete _FORMAL_ budget, but provides something that is
_pragmatically_ very useful to help manage your cash accounts.

Blue Sky Thinking: It would later be sensible to provide a more formal
budgeting scheme that would allow you to reference the register, with
choices [relevant here] of:

  - Take [this, perhaps scheduled, transaction], and put it verbatim
    into the budget as something I expect to spend;
  - Take the average monthly spending for this account and put it into
    the budget, perhaps with a % increase for inflation.

That would simplify construction of the formal budget...
-- 
(concatenate 'string "cbbrowne" "@hex.net") <http://www.ntlug.org/~cbbrowne/>
Artificial intelligence,  like fusion power,  has been ten  years away
for the last 30 years.  -- Conrad Stack