A budget is a plan expressed in numbers. It sets expected income and spending for a future period and provides a standard against which actual results can be compared.

Why budget

  • Without a budget, you discover you overspent only after the money is gone.
  • A budget forces explicit decisions: if housing takes 40% of income, that leaves 60% for everything else. The allocation is visible.
  • Comparing budget to actual spending each period reveals patterns — categories that consistently run over, windfalls that mask structural deficits, seasonal variation you can plan for.

Structure

A budget mirrors your chart of accounts. For each expense and income account, set a monthly (or period-appropriate) target:

AccountMonthly Budget
Income:Salary4,000.00
Expenses:Housing:Rent1,200.00
Expenses:Food:Groceries400.00
Expenses:Food:Dining100.00
Expenses:Transport150.00
Expenses:Utilities120.00
Expenses:Insurance200.00
Expenses:Savings500.00

The sum of budgeted expenses plus savings should not exceed budgeted income.

Methods

  • Zero-based budgeting: every dollar of income is assigned a purpose. At the end of the allocation, the remainder is zero. This forces full accounting of every spending decision.
  • Envelope method: allocate fixed amounts to categories. When the envelope is empty, spending in that category stops until the next period. Works well for variable categories like food and entertainment.
  • Percentage-based: allocate income by fixed percentages (e.g., 50% needs, 30% wants, 20% savings). Simple to maintain but less precise.

Budget vs. actual

The value of a budget is in the comparison. At period close, generate the income statement and compare each line to the budget:

  • Under budget: the surplus can roll to savings or be reallocated.
  • Over budget: identify why — one-time event or structural pattern? Adjust the budget or the spending accordingly.
  • Income variance: if actual income differs from budgeted, the entire budget may need rescaling.

In plain-text accounting

Beancount does not have native budgeting, but budgets can be maintained in a separate file (e.g., budget-2025.beancount or a plain CSV) and compared against actuals using reporting tools or scripts. Fava supports budget visualization through plugins.