Budgeting With GNUCash


After writing my “Using GNUCash to manage your personal finances” series I have been getting quite a bit of traffic looking for information on Budgeting in GNUCash. I touched on it lightly but I don’t think I really did it justice.

The way I see it there is three schools of thought on budgeting in GNUCash. The first uses the included budgeting system to set and track your monthly budgets, the second involves an envelope system made up of GNUCash accounts, and the third uses GNUCash reporting along with some means of setting and tracking your budget outside of GNUCash.

Built in Budget Tool

To get started with the built in GNUCash budgeting tool you need to first create a budget to work from, this can be done by going to the File Menu and selecting New -> New Budget ->. This will bring up a listing of all of your GNUCash accounts and a timeline of months.  To set a budget amount for each category you can either enter the amount directly in the corresponding field or have GNUCash estimate your budget based on previous spending.  Under the options you can set the name of your budget, and the budgeting period either daily, weekly, monthly, or yearly.  Once you have saved your budget you can come back to it anytime by going to File -> open -> open budget.  Tracking your progress is as easy as running the budget report where you will see your actual expenses compared to your budgeted and if you mark the right option you will see the variance.

Because of the way GNUCash tracks your paychecks and loan payments you aren’t going to see your loan spending as a whole payment but as a separate expense for interest and principal. One under liabilities, the other is under expenses. You can pick and choose which accounts you want to see in the budget report by deselecting those you don’t want under the report options. If you rename the report it will allow you to save it as new report so you don’t have to customize it again.

GNUCash Envelope System

The GNUCash envelope system is an interesting take on budgeting with the software. Essentially it amounts to creating inidividual accounts within your Asset structure in GNUCash for each of your spending categories.  When setting up your Paycheck deposits into GNUCash you portion out the budegted amounts into your “Enevelope” accounts which is where all spending will come from.  Like the cash envelope system you will then spend what is in your “Envelope” and if you run out you will need to jockey around the remaining cash if you need to increase the budget amount for that account.

We don’t personally use the envelope system so this is a little foreign to me, I get the concept but you would essentially be tracking your expenses twice. To reduce your envelope amount you would have to transfer the money to a specific expense category, in GNUCash it is strict double entry so money doesn’t just disappear, everything has to balance.

External Tracking

The third option for budgeting with GNUCash is doing it externally. I know this isn’t really budgeting WITH GNUCash but you are still going to be pulling all of your data out of GNUCash reports. A lot people, myself included, already have systems setup where they track their budgets in external spreadsheets. If the previous two options didn’t convince you to switch to solely using GNUCash, no worries. The best way to pull your expense data out of GNUCash for budget tracking is using the CashFlow report, with a few customizations.   The Cash Flow report is going to show you all of the funds which have transfered into your asset accounts as well as where that money went to, your expense accounts.  The default report is not going to include charges on your credit liabilities so you will need to add those accounts to the selected accounts. You are probably going to want two of these reports, one for tracking the Current Month expenses and one for the Previous Month expenses. This will help you monitor your spending through the month as well as your total for the previous month.

Once you have created the report you can use the data provided to update your spreadsheets or other budget tracking device.


GNUCash provides multiple options for creating and monitoring your budget. While the included budgeting system may not be as flashy or robust as other systems out there, it functions and it accomplishes its intended purpose.  After writing this article I think I am actually going to give the included budgeting system another try as I think the estimate tool is pretty slick.

What methods or applications do you use for setting up and monitoring your budgets? Leave a comment and let us know.


1 Tony December 14, 2010 at 3:32 pm

Just tried setting up an “envelope” (a subaccount to one of my savings accounts). When you reconcile the parent account, make sure to check Include subaccounts in the Reconcile information dialog that starts the reconcile. After that, it looks (to me; but I’m not an accountant) as if “but you would essentially be tracking your expenses twice” doesn’t apply: you create transactions from the subaccount only once.

2 Wise Finish January 20, 2011 at 11:38 pm

My thoughts on enveloping in GnuCash follow the KISS principle.

When I take the money out of checking to place in my envelopes, I just create a split transaction that divides the money directly into the appropriate expense accounts. Once the cash is in the envelope it is as good as spent on that expense category; and I don’t have to worry about tracking the details about what I spend that envelope cash on.

Mission accomplished.

3 bgrupczy March 28, 2011 at 5:51 pm

@Wise Finish
I like that idea! It would eliminate me having to reassign the expense down to a subaccount.
But then you can’t ensure that your accounts in GC match your bank, right? You can’t reconcile. Or is there no point because the money is good as gone?

4 bgrupczy March 28, 2011 at 5:55 pm

@Wise Finish
I thought of something else too. If you are budgeting towards a liability (not expense) then this method affects the liability balance even though the money hasn’t been spent yet. Thoughts?

5 bgrupczy April 5, 2011 at 6:59 pm

Did some more thinking about what you posted and it really doesn’t make any sense. Now I tried following the link your “Wise Finish” name is pointing to and it kinda looks bogus too. Just another ploy to get people to a heavily ad laden site. Yes, I looked at the posts and they all have reference to signing up for something. Makes me mad that I spent time noodling on this.

6 YYC May 10, 2011 at 4:42 pm

I think you misunderstood Wise Finish’s post. What they’ve described is a ~cash~ envelope system. They take ~cash~ out of their bank account, and put it into a physical envelope. In that case, it’s perfectly reasonable to categorize the withdrawal to whatever expense account you plan to spend that money on.

7 Christopher January 28, 2012 at 2:40 pm

I have a feeling that in order to correctly use and manipulate the internal budgeting system, you need to go into the data files themselves. It just seems too bulky to only go in through the default user interface.

I did budgets with the internal tool, but manipulating them seems difficult to me.

The envelop system seems kind of nice, but I would do it differently :



I would make the budget COA one level simpler than the “real” COA, but perhaps include “interesting” accounts. At the same time, I would use the internal budgeting for the “real” accounts. the “budget” COA would only help me calculate my “main” budget hypothesis (since the internal system allows for multiple concurrent budgets.)

Perhaps this is doing the work thrice.

8 Joel April 12, 2012 at 10:28 pm

You would think the powers that be who develope GnuCash would be open to the idea of developing an envelope style budget addon or feature for GnuCash.

9 Carlos Ramirez August 21, 2012 at 3:58 pm


I personally use gnu cash budget functionality plus importing csv from bank to keep track of my expenses. But I discovered that is not enough so now I am using EEBA to stop expending before I reach the budget limit. Then I use gnucash at end of the month to reconcilie everything with bank.

So I use “External Tracking” approach.

10 jpaugh July 8, 2018 at 1:06 pm

You mentioned that the “envelop system” seemed foreign to you because it requires you to track expense categories twice. I think this system actually comes about because it is less intuitive to track categories on the expense side than on the asset side. In other words, the expense side might not be categorized at all with an envelop system.

I have used such a system for about a month now, because I am focused on how much I have available for a given spending category, rather than how much I have already spent.

Comments on this entry are closed.

Previous post:

Next post: