Budget Transactions
The paycheck transaction at the beginning of the month deposited $5000 in our bank account. If we're using zero-based budgeting we'll want to distribute all of it to envelopes. Suppose this is our budget:
Expense Category | Amount | Comment |
---|---|---|
Home | $3000 | rent, household items, etc |
Car | $1000 | payment, fuel, misc expenses |
Food | $1000 | groceries, restaurants |
The key idea behind Dexter's approach to budgeting is to use expense accounts, not asset accounts, to represent envelopes.
The transaction below, which we call a budget allocation transaction, allocates funds to envelopes according to our budget. Note that it debits income accounts and credits expense accounts. The credits are how we model the process of adding money to the envelope, and the debit is a record of where that money came from:
2024-01-02 fill envelopes ; budget:
income:yoyodyne $5000.00
expenses:home $-3000.00
expenses:car $-1000.00
expenses:food $-1000.00
There's a lot going on there!
Using the income account on the debit side makes it look like we're giving our salary back to the company. We're not, but it does mean we need a new interpretation for the balance of an income account. The balance on that account is now $5000 - $5000, or $0. That seems meaningless, but in fact it's very useful information, as we'll explain below.
On the other side, what are all those credits to expense accounts doing?
They certainly play havoc with the balances of those accounts.
For example, when the credit to expenses:food
is combined with the two transactions shown earlier the food account balance is -$1000 plus $40, for a total of -$960.
But here also there is a method to our madness, to be explained shortly.
Before we get to the explanations, though, there is an important point:
Budget transactions are easily ignored.
It's very easy to recover the original meanings of the balance of income and expense accounts by simply not including budget transactions in balance calculations.
Here is the default report for food expenses after we add budget transactions:
$ dex report expenses:food --end 2024-01-10
expenses:food ✉️
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃ date ┃ description ┃ credit ┃ debit ┃ amount ┃ balance ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
│ 2024-01-01 │ starting balance │ │ │ │ $0.00 │
│ 2024-01-02 │ fill envelopes │ food │ yoyodyne │ −$1000.00 │ −$1000.00 │
│ 2024-01-07 │ Chez Ray │ assets:checking │ food:restaurant │ $75.00 │ −$925.00 │
│ 2024-01-08 │ venmo from Sam │ food:restaurant │ bank:checking │ −$35.00 │ −$960.00 │
└──────────────┴───────────────────────────┴──────────────────────┴──────────────────────┴──────────────┴──────────────┘
Note there is a small envelope icon in the title bar next to the account name, to remind us that budget transactions are used in balance calculations.
If you want to exclude budget transactions add a --no_budget
option to the shell command and you'll get the same report as before:
$ dex report expenses:food --end 2024-01-10 --no_budget
expenses:food:
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃ date ┃ description ┃ credit ┃ debit ┃ amount ┃ balance ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
│ 2024-01-01 │ starting balance │ │ │ │ $0.00 │
│ 2024-01-07 │ Chez Ray │ assets:checking │ food:restaurant │ $75.00 │ $75.00 │
│ 2024-01-08 │ venmo from Sam │ food:restaurant │ assets:checking │ −$35.00 │ $40.00 │
└──────────────┴───────────────────────────┴──────────────────────┴──────────────────────┴──────────────┴──────────────┘