Перейти к основному содержимому

Бюджетирование в 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. Расширенные методы бюджетирования

Перенос бюджета Система бюджета по умолчанию сбрасывается каждый период. Чтобы реализовать "перенос", когда неизрасходованные средства переносятся, используйте специальный счет активов для хранения бюджетных средств.

  1. Пополните бюджетный счет в начале периода:

    2024-02-01 * "Пополнение месячного бюджета на развлечения"
    Assets:Checking -200.00 USD
    Assets:Budget:Entertainment 200.00 USD
  2. Тратьте непосредственно с этого бюджетного счета:

    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, проверьте следующее:

  1. Формат даты: Убедитесь, что даты указаны в формате YYYY-MM-DD.
  2. Названия счетов: Название счета в директиве должно точно соответствовать названию счета в ваших транзакциях.
  3. Правописание интервала: Интервал должен быть одним из пяти допустимых вариантов и в нижнем регистре (например, "monthly").
  4. Перезапустите Fava: Если вы недавно добавили директивы, может потребоваться перезапуск сервера Fava, чтобы он обнаружил изменения.