Бюджетирование в Beancount
В этом руководстве объясняется, как настроить, управлять и визуализировать бюджеты для каждого счета, используя директивы custom Beancount и веб-интерфейс Fava.
1. Как установить бюджет
Бюджеты определяются с помощью директивы custom "budget" в вашем файле Beancount. Синтаксис прост:
YYYY-MM-DD custom "budget" AccountName "interval" Amount CURRENCY
AccountName: Конкретный счет расходов или доходов, для которого вы хотите установить бюджет.interval: Бюджетный период. Должен быть одним из:daily,weekly,monthly,quarterlyилиyearly.Amount: Целевая сумма для интервала.
Как это работает:
- Директива бюджета остается в силе с даты ее указания до тех пор, пока другая директива бюджета для того же счета не переопределит ее.
- Beancount и Fava разбивают все бюджеты на ежедневный эквивалент, что позволяет им рассчитывать общую запланированную сумму для любого заданного диапазона дат.
Пример:
; Установить дневной бюджет на кофе
2024-01-01 custom "budget" Expenses:Food:Coffee "daily" 5.00 USD
; Установить месячный бюджет на продукты
2024-01-01 custom "budget" Expenses:Food:Groceries "monthly" 600.00 USD
; Установить годовой бюджет на отпуск
2024-01-01 custom "budget" Expenses:Travel:Vacation "yearly" 3000.00 USD
Чтобы скорректировать бюджет, просто добавьте новую директиву с более поздней датой. Например, чтобы увеличить бюджет на продукты, начиная с марта:
2024-03-01 custom "budget" Expenses:Food:Groceries "monthly" 650.00 USD
2. Визуализация бюджетов в Fava
Fava, веб-интерфейс для Beancount, автоматически определяет и отображает ваши бюджеты в нескольких ключевых отчетах, позволяя вам сравнивать ваши фактические расходы с вашими целями:
- Отчет о прибылях и убытках: Диаграммы Чистая прибыль и Расходы будут показывать запланированные и фактические значения.
- Изменения (ежемесячно): Показывает запланированную сумму за каждый месяц.
- Остатки (ежемесячно): Показывает совокупную запланированную сумму с течением времени.
3. Расширенные методы бюджетирования
Перенос бюджета Система бюджета по умолчанию сбрасывается каждый период. Чтобы реализовать "перенос", когда неизрасходованные средства переносятся, используйте специальный счет активов для хранения бюджетных средств.
-
Пополните бюджетный счет в начале периода:
2024-02-01 * "Пополнение месячного бюджета на развлечения"
Assets:Checking -200.00 USD
Assets:Budget:Entertainment 200.00 USD -
Тратьте непосредственно с этого бюджетного счета:
2024-02-15 * "Вечер кино"
Expenses:Entertainment:Movies 30.00 USD
Assets:Budget:Entertainment -30.00 USDОставшийся баланс в
Assets:Budget:Entertainment- это ваша сумма переноса.
Отслеживание целей по доходам Вы также можете установить цели для ваших счетов доходов, используя отрицательную сумму бюджета. Это позволяет Fava отслеживать ваши доходы по сравнению с вашими целями.
; Установить ежемесячные цели по доходам
2024-01-01 custom "budget" Income:Salary "monthly" -5000.00 USD
2024-01-01 custom "budget" Income:Freelance "monthly" -1000.00 USD
4. Устранение неполадок
Если ваши бюджеты не отображаются в Fava, проверьте следующее:
- Формат даты: Убедитесь, что даты указаны в формате
YYYY-MM-DD. - Названия счетов: Название счета в директиве должно точно соответствовать названию счета в ваших транзакциях.
- Правописание интервала: Интервал должен быть одним из пяти допустимых вариантов и в нижнем регистре (например,
"monthly"). - Перезапустите Fava: Если вы недавно добавили директивы, может потребоваться перезапуск сервера Fava, чтобы он обнаружил изменения.