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?
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:
- Checking Account
- Available Funds
- Short-term Savings
- Long-term Savings
- Checking Account
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.
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.