Gnucash is as baroque as you say, but the only one of your options above that actually works and solves this problem (aggregate view) reasonably, of course that can't help you with things like virtual CC limit above. Still, it's much nicer than doing double entry with spreadsheets.
- Checking - Food - Housing - Entertainment - Emergency Reserve
Your paycheck would go into checking and then you'd "fund" those subaccounts from the top level account. Then, when you reconcile your statements (I did it every day by going online), you "spend" out of the subaccounts.
I pay using different accounts (bank accounts or credit cards). Groceries, in particular, I pay with both checks and cards. Admittedly, this is still a problem with many envelope budgeting SW, but they usually have ways to mitigate this.
The other problem: Say I have two checking accounts A and B, and I pay for groceries with A and car expenses with B. One month I overspend car stuff and my envelope for B is in the negative, and I don't have enough emergency reserve. I take money out of my grocery envelope under A to bring the car envelope in B back to 0.
Now if I did this in GnuCash, it will show a wrong balance in one of my checking accounts (unless I physically transferred money between the two accounts).
Your setup will work if you tend to spend everything from one account. I am curious, though: If you do it this way, doesn't it make reconciling a bit of a pain? Let me explain:
When I go to do groceries, I usually have multiple categories I am purchasing (example below):
1. Groceries = $60
2. Supplies = $30
3. Miscellaneous (catch-all) = $10
I pay with a check of $100. How do you represent this in GnuCash? Will you list 3 separate transactions coming out of each virtual subaccount? If so, do you then not reconcile with your bank statement? Or does GnuCash let you mark it all as one transaction under Checking to make reconciliation easy?
Ledger CLI has good support for "true" virtual accounts, so that the "real" accounts show the real world transactions (it will show up as one transaction from Checking to the Grocery Store), while simultaneously letting you split this into the 3 virtual budget accounts.
Your actual representation of chequing accounts should really represent the bank account,so you shouldn't do what you describe (that lead to a wrong balance), your actual budgeting is done elsewhere.
If you weren't doing envelope budgeting, you might just mark things into expense accounts, so they keep a running track of what you've spent.
I haven't used it for a while so may get details a bit mixed, but the gist of it is right, If you want to do envelope style budgeting, you have a few possibilities. One is to do regular expense accounts but change your reporting period to say 1 month, and you use the report tools to see what is happening. In this way if you overspend in one, and underspend in another, it all rolls up into the same total. Another way would be more explicit, you would allocate a liability account 1st of each month for each "envelope" and then spend against that. You could freely transfer between these, and you can carry over etc. This would give you an up to date view easily. There are other schemes, depends what you want to make easy and what you make hard.
By the way I'm pretty sure I remember gnucash has a built in budget tool also, but I've never used it; might be close enough to what you want to be the least effort.
I'm aware of that, which is what I meant: If you do it this way, then you can't do envelope budgeting using subaccounts the way the original commenter said (and I agree with you that you should not do it this way).
Both the methods you propose involve significant work on my part, which to me means "Gnucash doesn't support it." For the first method:
> In this way if you overspend in one, and underspend in another, it all rolls up into the same total.
Arguably, this goes against envelope budgeting. The whole analogy is mirroring the physical world, where an envelope cannot go negative. In my envelopes, if one goes negative, then I need to move money from another envelope into it immediately. In your first scenario, since you're using real accounts, we should not do that (otherwise we lose real spending habits data).
Your second approach is closer, but it's a fair amount of work (or perhaps I misunderstood it). Using my example above, if I go to the store and spend $60 on groceries, $30 on supplies and $10 on misc, how do you propose I put that in Gnucash using those liability accounts?
There's always some way to hack it, but when you actually do it for a while, those hacks become tedious. As I said in another comment, the mechanics of envelope budgeting are easy to code, and I'd like the SW to handle those details for me.
I did play with the built-in budget tool. It's like the typical budget tool in most such SW: No carryover of excess budget - you have to manually track it and update it each month.
Sort of. At least it would give you a monthly total of everything and a roll up of everything, but doesn't handle carry over cleanly. I was suggesting it as a way that works for lots of people but fair enough if it doesn't' fit close enough.
> Your second approach is closer, but it's a fair amount of work (or perhaps I misunderstood it)
It would look like this: Your salary comes in, and instead of matching that transaction to "income" you would split it against a bunch of "envelope" accounts, each however much you want per check. If you use liability accounts (e.g. like an accounts payable account) for this they will count "backwards". This is exactly analogous to envelopes, except that nothing (other than you) stops you from going negative. You can move funds between them whenever you want.
Then when you spent your $100 check you would split that transaction also, and apply the 60/30/10 each to its own account. These carry over of course, so if you don't spend it all this month you'll have extra next month, etc.
Are you in Europe? I hear it's unusual there. In the US virtually every store will accept a check. There are still stores that will not take any card. And some stores that will take a a debit card but not a credit card. But they'll all pretty much take checks.
Eh, a little bit. I know for me, I was always afraid of using autopay because I get paid biweekly, so even if all my bills had the same due dates every month, payday was always different every month. Being able to tuck that money away made it less tempting to overspend.
As for getting out of living paycheck-to-paycheck, again, easier said than done. You're basically making the opposing higher minimum wage argument: "Get a better job if you want to make more than $8 an hour." "Get a better job if you want to have better control of your finances."
Plus there have been several studies showing that for many people, as their income goes up, they still have trouble saving because they unconsciously think that since they make more money, they have more money to spend. "Financial restraint" is easier said than done for many people, myself included. Simple's "Safe-to-Spend" has made a world of difference in my life and I'm honestly really concerned about how I'm going to keep it up when that goes away.
Probably a lot of us on HN can get by without a budget, because we are generally highly paid, so just keeping spending within reason is all it takes.
If you actually need to budget, then it would be nice to have tools to remind you that you've spent all your X money for the month/year, so either no more of that, or you need to adjust the budget.
In college I used gnucash for this and even wrote a (now very old and somewhat embarrassing) article about it (https://organicdesign.nz/A_day_in_the_life_of_a_dollar).
After I got a bit tired of gnucash's relatively baroque interface I moved over to https://www.mvelopes.com, but I found it expensive, slow, and just not to my taste (it might be better now, this was still over a decade ago).
Next, I noticed this newfangled site called Mint.com. I liked it right away and even had a phone conversation with its founder about the envelope budgeting idea. He said he really liked it and would look into it but then of course Mint got acquired by Intuit and we all know what Intuit does to creative product ideas. I still use Mint to track net worth and cash flow but every time I open it I sigh at what could have been.
Some years ago I heard about Simple and was incredibly excited that an actual BANK finally grokked what was so obviously awesome about this idea. I signed up right away and for a few months enjoyed budgeting bliss. But I knew it was likely to end in corporate takeover sadness and so I avoided moving my accounts to it. This is a decision I regretted having to make, and regret being right about.
Some years ago I got the bug again and spoke to some startups who were trying to democratize the "connect to your bank API" space, which would let folks like me just make a tool ourselves and maybe productize it without having to look for VC funding just to afford the stupid license fees for bank connectivity. I had a few good conversations but no one else seemed anywhere near as excited about it as I was.
Fast forward to today: I work at a FAANG company doing interesting stuff and have pretty much abandoned my dream of doing finances this way. I've tried gnucash again. I've tried spreadsheets. I've tried custom personal programs. None of them are really good.
You REALLY want your bank to do this.
What you want is to tie this to your debit and credit cards and have them all pool from the same "virtual subaccounts".
What you want is to be able to have your credit card be declined if you go over budget (with an option to override).
What you want is to create a tree of accounts in under a second using your smartphone without having to fill out forms.
But you won't get it, it seems.
Product idea: A bank. With a a nice API. That's it. I'll take my startup idea equity now.