Beancount での将来のトランザクションの予測
Beancount は、fava.plugins.forecast プラグインを使用して、将来の定期的なトランザクションを予測できます。これにより、給与、家賃、サブスクリプションなどの定期的な収入と支出が財務レポートに与える将来の影響を視覚化できます。

ステップ 1: 予測プラグインの有効化
まず、Beancount レジャーファイルの先頭に次の行を追加して、プラグインを有効にする必要があります。
plugin "fava.plugins.forecast"
ステップ 2: 予測トランザクションの作成
定期的なトランザクションを予測するには、# フラグ ( * または ! の代わり) を使用して単一のトランザクションエントリを作成し、ナレーションに特別な予測タグを追加します。
基本的な構造は次のようになります。
YYYY-MM-DD # "ナレーション [頻度 条件]"
Account:One 100.00 USD
Account:Two -100.00 USD
予測プラグインは、このエントリをテンプレートとして使用して、レポートに将来のトランザクションを生成します。
予測構文の理解
ナレーションの予測タグは、[頻度 条件] という特定の形式に従います。
頻度
頻度 の部分は必須であり、トランザクションが再発する頻度を定義します。すべて大文字でなければなりません。
DAILY(毎日)WEEKLY(毎週)MONTHLY(毎月)QUARTERLY(四半期ごと)YEARLY(毎年)
例: 月々の家賃の支払い このトランザクションは、2024 年 1 月から毎月 1 日に発生すると予測されます。
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 を使用します。これは、隔週の給与などに役立ちます。
-
例: 隔週の給与 (2 週間ごとに発生)。
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]や[MONTLY]ではなく[MONTHLY])。
-
ベストプラクティス
- 記述的にする: 各予測が何であるかを把握できるように、明確なナレーションを使用します。
- 定期的にレビューする: 予測を更新して (例: 給与の増加または家賃の変更)、正確性を維持します。
- 終了条件を使用する: 永続的でないトランザクション (ローンやサブスクリプションなど) の場合は、
UNTILまたはREPEATを使用して、無期限に予測されるのを防ぎます。