YNAB to Beancount Migration - Worth the Switch?

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!