A Budget Proposal - Virtual Accounts

Andrew Beard dropandyaline at gmail.com
Thu Jan 14 00:27:35 EST 2016


Hi All,
I’m a long time GNUCash user (10+ years) but only recently really sunk my teeth into trying to budget with it.  As attested to by the number of budget related threads on the gnucash-user lists, I’m not the only one who feels the current budget features are grossly insufficient.

After many attempts, the best, but still flawed solution I’ve found is from Dennis at allmybrain.com <http://allmybrain.com/> (see http://goo.gl/1Tti1Y <http://goo.gl/1Tti1Y>).  What makes his solution a deal breaker in my opinion is the fact that ‘budget’ or ‘envelope' sub-account balances' and transactions’ are NOT included in the parent account.  As a result, parent accounts (in my case my checking account) don’t display the proper current balance or transactions without serious additional effort (basically quadruple account entry).  

My proposal for handling budgets in GNUcash is to elevate the idea of an ‘envelope’ account to a new level.  In particular, I propose the creation of a new ‘virtual’ account type.  By ‘virtual’ account I mean simply an account which calculates balances and maintains totals but the transactions themselves always belong to the ‘real’ parent account (e.g. a bank checking account).  

Cash envelopes themselves provide a nice case-in-point.  When a person uses actual envelopes to budget their cash, the amount of the asset - cash - is the same regardless of how many envelopes they might have split it into.  However, when somebody spends from an envelope, they have done two things:
	1) Decreased their budgeted amount for that envelope category (or budget).
	2) Decreased their Cash asset amount.
The envelope (or virtual account) balance has decreased, but the actual cash asset has decreased as well.  Said another way, *both* ‘accounts' have decreased, but one asset is real (cash) and the other is ethereal (your idea of where that money should have gone).

On the other hand, when adding money to an envelope, you are increasing the virtual account value (again, your idea of where the money should go) but NOT increasing the amount of the real cash asset on hand which is fixed.

In GNUCash, I’d generally expect a virtual account to obey the following rules:
- Money can only be transferred in from a parent asset account (cash, checking account, etc). 
- A transfer into the account, increases the virtual account balance, but does NOT modify the parent asset account balance.
- A transfer from the account, decreases both the virtual account balance AND the parent account balance (transactions show up in both real and virtual account).

In this manner, a virtual account would strongly resemble a traditional budget in that:
- Budgets are cumulative and not tied to a specific time period (e.g. budget surplus falls out naturally).
- The parent account tied to an actual asset (i.e. checking account) contains all actual transactions (balancing and reconciliation does not change).
- You CAN over-budget by allocating more money to  your virtual account than you have in your actual ‘real’ asset account.
- You CAN overspend your budget and this would show as a red negative balance on the budget.

Additionally, virtual accounts could use the normal report functionality of GNUCash just like a regular account (adjustable period, status, etc). 

I think the concept could probably be generalized further but this is the basic proposal.  Any feedback is appreciated.

    ~Andy


 













More information about the gnucash-user mailing list