Budgets
Beancount allows you to set flexible budgets for your accounts using custom
directives. These budgets can be visualized and tracked in Fava’s reports and charts, making it easy to monitor your spending and stay on track.
Setting Budgets with Custom Directives
To assign a budget to a specific account, add a custom "budget"
directive to your Beancount file. You can specify the account, interval, and amount:
2012-01-01 custom "budget" Expenses:Coffee "daily" 4.00 EUR
2013-01-01 custom "budget" Expenses:Books "weekly" 20.00 EUR
2014-02-10 custom "budget" Expenses:Groceries "monthly" 40.00 EUR
2015-05-01 custom "budget" Expenses:Electricity "quarterly" 85.00 EUR
2016-06-01 custom "budget" Expenses:Holiday "yearly" 2500.00 EUR
- Account: The account you want to budget for (e.g.,
Expenses:Groceries
). - Interval: One of
daily
,weekly
,monthly
,quarterly
, oryearly
. - Amount: The budgeted amount for that interval and account.
You can update a budget for an account at any time by adding a new directive; the most recent directive takes effect from its date onward.
How Budgets Work
- The specified budget is broken down to a daily budget internally, so Fava can sum budgets over any date range.
- You can mix intervals: for example, start with a monthly budget, then override it with a weekly budget later in the year.
- Budgets are valid until another budget directive for the same account is specified.
Visualizing Budgets in Fava
Fava, the web interface for Beancount, displays your budgets in several places:
- Net Profit and Expenses charts (in the Income Statement report) show budgeted vs. actual values.
- The Expenses Income Statement report is a good starting point for analyzing budget performance.
- The Changes (monthly) and Balances (monthly) reports show monthly and cumulative budgets, respectively.
Budgets help you gain insight into your spending habits and stay accountable to your financial goals.