Overview
budgeting-envelopes
Financial dashboard for budgeting-envelopes. View account balances, net worth trends, and income/expense summaries.
Financial position
Net worth and the accounts that make it up
Money movement
Monthly income and spending by account category
Recent activity
Posting-aware activity from the journal
Income vs Expenses
Balance Sheet
Cash Flow
Envelope Budgeting Example — beancount.io
A Beancount ledger demonstrating envelope (zero-based) budgeting: giving every dollar a job before it is spent, and seeing immediately when a category runs dry.
The method rests on one idea — envelopes are equity, not assets. The money is already in the bank; budgeting only decides what it is promised to. So an allocation moves value between equity subaccounts and never touches Assets, which is why the overlay can never disturb your bank reconciliation.
The ledger also declares matching native custom "budget" targets for each expense account. The equity postings provide rollover envelope balances; the custom directives power beancount.io's Budget report and its budget-versus-actual charts. They are complementary views of the same monthly plan.
Quick Start
make install # Install beancount + fava via uv
make check # Verify the ledger has zero errors
make serve # Open Fava at http://localhost:4739File Guide
| File | What it demonstrates |
|---|---|
main.bean | Entry point — options and include directives |
accounts.bean | Commodity definitions, real accounts, and the envelope tree |
budgets.bean | Native monthly targets used by the beancount.io Budget report |
transactions/opening.bean | Starting balances, and what "to be budgeted" means |
transactions/funding.bean | Assigning income to envelopes — kept separate from income arriving |
transactions/spending.bean | The four-posting purchase: two for the money, two for the plan |
transactions/overspending.bean | An envelope going negative, and covering it deliberately |
transactions/sinking-funds.bean | Funding an irregular bill monthly instead of being surprised by it |
transactions/reset.bean | Retiring a category, and reconciling against the bank |
The one thing to copy
Spending is four postings, readable as two independent pairs:
2026-01-08 * "Whole Foods" "Weekly shop"
Assets:Bank:Checking -128.44 USD ; what your bank sees
Expenses:Groceries 128.44 USD
Equity:Budget:Groceries -128.44 USD ; what your budget sees
Equity:Budget:Unallocated 128.44 USDEach pair balances on its own, so the budget overlay is always safe to add, remove, or ignore.
