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

Прогнозирование будущих транзакций в Beancount

Beancount может прогнозировать будущие повторяющиеся транзакции с помощью плагина fava.plugins.forecast. Это позволяет визуализировать будущее влияние регулярных доходов и расходов, таких как зарплата, аренда и подписки, на ваши финансовые отчеты.

Скриншот плагина прогнозирования

Шаг 1: Включите плагин прогнозирования

Сначала вам нужно включить плагин, добавив следующую строку в начало вашего ledger-файла Beancount:

plugin "fava.plugins.forecast"

Шаг 2: Создайте прогнозируемую транзакцию

Чтобы спрогнозировать повторяющуюся транзакцию, создайте одну запись транзакции, используя флаг # (вместо * или !) и добавьте специальный тег прогноза в описание.

Основная структура выглядит так:

YYYY-MM-DD # "Описание [ЧАСТОТА УСЛОВИЯ]"
Account:One 100.00 USD
Account:Two -100.00 USD

Плагин прогнозирования будет использовать эту запись в качестве шаблона для генерации будущих транзакций в ваших отчетах.

Понимание синтаксиса прогнозирования

Тег прогноза в описании имеет определенный формат: [ЧАСТОТА УСЛОВИЯ].

Частота

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

  • DAILY (Ежедневно)
  • WEEKLY (Еженедельно)
  • MONTHLY (Ежемесячно)
  • QUARTERLY (Ежеквартально)
  • YEARLY (Ежегодно)

Пример: Ежемесячная арендная плата Эта транзакция будет прогнозироваться на 1-е число каждого месяца, начиная с января 2024 года.

2024-01-01 # "Арендная плата [MONTHLY]"
Expenses:Housing:Rent 2500.00 USD
Assets:Checking -2500.00 USD

Условия (Необязательно)

Вы можете добавить необязательные УСЛОВИЯ для управления продолжительностью и закономерностью прогноза.

1. Установите дату окончания с помощью UNTIL Используйте UNTIL YYYY-MM-DD, чтобы остановить прогноз в определенную дату.

  • Пример: Абонемент в спортзал, который заканчивается в этом году.

    2024-01-15 # "Абонемент в спортзал [MONTHLY UNTIL 2024-12-31]"
    Expenses:Health:Gym 80.00 USD
    Assets:Checking -80.00 USD

2. Ограничьте количество повторений с помощью REPEAT Используйте REPEAT n TIMES, чтобы сгенерировать транзакцию определенное количество раз.

  • Пример: Автокредит с 36 оставшимися платежами.

    2024-01-25 # "Платеж по автокредиту [MONTHLY REPEAT 36 TIMES]"
    Expenses:Transportation:CarPayment 450.00 USD
    Liabilities:Auto-Loan -450.00 USD

3. Создавайте нерегулярные шаблоны с помощью SKIP Используйте SKIP n TIME/TIMES, чтобы пропустить интервалы. Это полезно для таких вещей, как зарплата раз в две недели.

  • Пример: Зарплата раз в две недели (происходит каждые две недели).

    2024-01-05 # "Зарплата раз в две недели [WEEKLY SKIP 1 TIME]"
    Assets:Checking 3000.00 USD
    Income:Salary -3000.00 USD

Практический пример: Ежемесячный бюджет

Вы можете объединить несколько прогнозов, чтобы спрогнозировать весь свой бюджет, включая различные потоки доходов и расходов.

plugin "fava.plugins.forecast"

; === ДОХОДЫ ===
2024-01-05 # "Зарплата раз в две недели [WEEKLY SKIP 1 TIME]"
Assets:Checking 3000.00 USD
Income:Salary -3000.00 USD

; === РАСХОДЫ ===
2024-01-01 # "Аренда [MONTHLY]"
Expenses:Housing:Rent 2500.00 USD
Assets:Checking -2500.00 USD

2024-01-01 # "Продукты [WEEKLY]"
Expenses:Food:Groceries 150.00 USD
Assets:Checking -150.00 USD

2024-01-15 # "Страхование автомобиля [QUARTERLY REPEAT 4 TIMES]"
Expenses:Insurance:Auto 450.00 USD
Assets:Checking -450.00 USD

После добавления этих записей ваши отчеты, такие как Отчет о прибылях и убытках и график Чистая прибыль, автоматически будут включать прогнозируемые данные, предоставляя вам четкое представление о вашем финансовом будущем.

Поиск и устранение неисправностей и рекомендации

  • Прогнозы не отображаются?

    • Убедитесь, что в вашем ledger-файле есть строка plugin "fava.plugins.forecast".
    • Используйте флаг # для транзакции, а не *.
    • Проверьте наличие опечаток в теге частоты (например, [MONTHLY], а не [Monthly] или [MONTLY]).
  • Рекомендации

    • Будьте описательными: Используйте четкие описания, чтобы знать, для чего предназначен каждый прогноз.
    • Регулярно проверяйте: Обновляйте свои прогнозы (например, при повышении зарплаты или изменении арендной платы), чтобы поддерживать их точность.
    • Используйте условия окончания: Для транзакций, которые не являются постоянными (например, кредиты или подписки), используйте UNTIL или REPEAT, чтобы они не прогнозировались бесконечно.
References: