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

Прогнозування майбутніх транзакцій в Beancount

Beancount може прогнозувати майбутні регулярні транзакції за допомогою плагіна fava.plugins.forecast. Це дозволяє візуалізувати майбутній вплив регулярних доходів і витрат, таких як зарплати, оренда та підписки, на ваші фінансові звіти.

Знімок екрана плагіна Forecast

Крок 1: Увімкніть плагін Forecast

Спочатку вам потрібно увімкнути плагін, додавши наступний рядок у верхній частині вашого файлу книги 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

Після додавання цих записів ваші звіти, такі як Звіт про прибутки та збитки та графік Чистого прибутку, автоматично включатимуть прогнозовані дані, надаючи вам чітке уявлення про ваше фінансове майбутнє.

Пошук та усунення несправностей та кращі практики

  • Прогнози не відображаються?

    • Переконайтеся, що plugin "fava.plugins.forecast" є у вашому файлі книги.
    • Використовуйте позначку # для транзакції, а не *.
    • Перевірте наявність друкарських помилок у тегу частоти (наприклад, [MONTHLY], а не [Monthly] або [MONTLY]).
  • Кращі практики

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