Budget envelope method in Beancount - replicating YNAB’s core feature:
This is what made YNAB special. Here’s how to do it in Beancount:
Setup: Virtual envelope accounts
; Envelope accounts (like YNAB categories)
open Assets:Budget:Groceries
open Assets:Budget:Dining
open Assets:Budget:Entertainment
open Assets:Budget:Transportation
open Assets:Budget:Savings:Emergency
open Assets:Budget:Savings:Vacation
; Your actual money
open Assets:Checking
open Assets:Savings
Monthly allocation (like YNAB’s “To Be Budgeted”)
2024-01-01 * "January budget allocation"
Assets:Checking -3000.00 USD ; Money leaves checking
Assets:Budget:Groceries 500.00 USD ; Goes to envelopes
Assets:Budget:Dining 300.00 USD
Assets:Budget:Entertainment 150.00 USD
Assets:Budget:Transportation 400.00 USD
Assets:Budget:Savings:Emergency 500.00 USD
Assets:Budget:Savings:Vacation 200.00 USD
Assets:Budget:Unallocated 950.00 USD ; Leftover
When you spend (envelope decreases)
2024-01-15 * "Whole Foods"
Assets:Checking -87.43 USD ; Money spent from checking
Expenses:Groceries 87.43 USD ; Track actual expense
Assets:Budget:Groceries -87.43 USD ; Decrease envelope
Income:Budget:Released ; Balance it out
Check envelope balances (like YNAB’s category view)
SELECT account, sum(position)
WHERE account ~ 'Assets:Budget'
GROUP BY account
Results:
Assets:Budget:Groceries 412.57 USD (spent 87.43)
Assets:Budget:Dining 300.00 USD (nothing yet)
Assets:Budget:Entertainment 150.00 USD
Fava visualization:
Create custom query to show budget vs actual as bar chart!
This gives you YNAB’s envelope budgeting with Beancount’s power!