Перейти до основного вмісту

Бюджетування в 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, щоб він підхопив зміни.