My goal would be to track the so-called "savings" I get from the grocery store or pharmacy when items are bought on sale. (That way I can really save by putting that money aside) But I'm not sure how I would set this up, the word Savings wouldn't actually mean anything so I wouldn't consider it an expense or an income so I'm not sure what category to put it in. How could I implement an account that in reality holds no money. (Similarly I would like to tax myself 3% on junk food (The credit card/bank gives me 3 points back on the dollar which is like 3 cents, why can't I tax myself to save extra money?) Is there a way to set up an account on moneys you essentially want to owe yourself but aren't part of any real account?

  • Sounds kinda like this but instead of "personal" and "shared" you have "savings" and "everything else". Apr 18, 2017 at 1:35

2 Answers 2


An accounting general ledger is based on tracking your actual assets, liabilities, expenses, and income, and Gnucash is first and foremost a general ledger program. While it has some simple "budgeting" capabilities, they're primarily based around reporting how close your actual expenses were to a planned budget, not around forecasting eventual cash flow or "saving" a portion of assets for particular purposes.

I think the closest concept to what you're trying to do is that you want to take your "real" Checking account, and segment it into portions. You could use something like this as an Account Hierarchy:

  • Assets
    • Checking Account
      • Available Funds
      • Short-term Savings
      • Long-term Savings

The total in the "Checking Account" parent represents your actual amount of money that you might reconcile with your bank, but you have it allocated in your accounting in various ways. You may have deposits usually go into the "Available funds" subaccount, but when you want to save some money you transfer from that into a Savings subaccount. You could include that transfer as an additional split when you buy something, such as transferring $50 from Assets:Checking Account:Available Funds sending $45 to Expenses:Groceries and $5 to Assets:Checking Account:Long-term Savings.

This can make it a little more annoying to reconcile your accounts (you need to use the "Include Subaccounts" checkbox), and I'm not sure how well it'd work if you ever imported transaction files from your bank.

Another option may be to track your budgeting (which answers "How much am I allowed to spend on X right now?") separately from your accounting (which only answers "How much have I spent on X in the past?" and "How much do I own right now?"), using a different application or spreadsheet. Using Gnucash to track "budget envelopes" is kind of twisting it in a way it's not really designed for, though it may work well enough for what you're looking for.

  • I feel like you missed the point of OP's question. It was about tracking "savings" as in discounts, not "savings" in the typical sense of the word.
    – feuGene
    Apr 18, 2017 at 15:57
  • 1
    @feuGene I was focused on the "That way I can really save by putting that money aside" in the question. I thought the OP was asking for a way to say "I spent $5 less at the grocery store than I was expecting, how I make sure to save that money for a rainy day". Though if they want to clarify the question, that could certainly help.
    – user42405
    Apr 18, 2017 at 16:04
  • perhaps combination between @feugene & Peter's compromises. Subaccounts are one thing, but they also become an earmark that may or may not be accepted in the end. Subaccounts I think should be saved for actual money set aside, not potential tax I may want to levy on myself. Therefore this leads me to think that a separate account at the top level should be created for this purpose. Only remaining issue: Splitting the saved money to Groceries would show an expense that is higher than the actual money spent. Then perhaps, two new accounts on the top level for this? I will mull it over for a bit.
    – Mallow
    Apr 18, 2017 at 19:00
  • 1
    @Mallow: Can you elaborate on what exactly you mean by this "self-tax", if it's not "with each transaction, move an additional percentage to savings"? I'm not entirely clear on your goals here.
    – user42405
    Apr 18, 2017 at 19:02
  • 1
    @Mallow: My proposal (again, assuming you want to track this in Gnucash rather than a more suitable budgeting framework) would be to transfer $5.05 from Assets:Checking:Available, sending $5.00 to Expenses:Big Macs and $0.05 to Assets:Checking:Self-tax savings reserved or the like. So it's all within your actual Checking account, but marked in your bookkeeping as a reserved chunk of it for savings.
    – user42405
    Apr 20, 2017 at 17:40

First of all, it's quite common-place in GnuCash (and in accounting in general, I believe) to have "accounts" that represent concepts or ideas rather than actual accounts at some institution. For example, my personal GnuCash book has a plethora of expense accounts, just made up by me to categorize my spending, but all of the transactions are really just entries in my checking account.

As to your actual question, I'd probably do this by tracking such savings as "negative expenses," using an expense account and entering negative numbers. You could track grocery savings in your grocery expense account, or if you want to easily analyze the savings data, for example seeing savings over a certain time period, you would probably want a separate Grocery Savings expense account.

EDIT: Regarding putting that money aside, here's an idea: Let's say you bought a $20 item that was on sale for $15. You could have a single transaction in GnuCash that includes four splits, one for each of the following actions: decrease your checking account by $20, increase your expense account by $20, decrease your "discount savings" expense account by $5, and increase your savings account (where you're putting that money aside) by $5.

  • Could you have it decrease your checking account by $20, increase grocery expenses by $15 and increase the savings account by $5? (I'm not familiar with gnucash) Apr 18, 2017 at 23:59
  • Yes, you can do that. Just make sure your increases and decreases balance out, and GnuCash stays happy.
    – feuGene
    Apr 19, 2017 at 0:16
  • Your cheque account and savings account in GnuCash most likely represent real-life accounts that you hold at the bank. When you buy groceries you are unlikely to withdraw money from your cheque account AND deposit money in your savings account - so don't do that in GnuCash. It probably works better if you create a GnuCash account that is a (notional) sub-account of the cheque account. Then when you actually spend $15 from your cheque account, you can show (in GC) a decrease of $20 from the Cheque account, grocery expense of $15, and $5 transferred to the Cheque:DiscountSavings acct. Apr 23, 2020 at 14:29

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .