メインコンテンツまでスキップ

Beancount で予算管理

このガイドでは、Beancount の custom ディレクティブと Fava ウェブインターフェースを使用して、アカウントごとの予算を設定、管理、および可視化する方法について説明します。

1. 予算の設定方法

予算は、Beancount ファイルで custom "budget" ディレクティブを使用して定義します。構文は簡単です。

YYYY-MM-DD custom "budget" AccountName "interval" Amount CURRENCY
  • AccountName: 予算を立てる特定の支出または収入アカウント。
  • interval: 予算期間。dailyweeklymonthlyquarterly、または yearly のいずれかである必要があります。
  • Amount: 期間の目標金額。

仕組み:

  • 予算ディレクティブは、同じアカウントの別の予算ディレクティブによって上書きされるまで有効です。
  • Beancount と Fava は、すべての予算を 1 日あたりの金額に換算し、特定の日付範囲の合計予算額を計算できるようにします。

例:

; コーヒーの 1 日予算を設定
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

予算を調整するには、新しい日付の新しいディレクティブを追加するだけです。たとえば、3 月から食料品の予算を増やすには:

2024-03-01 custom "budget" Expenses:Food:Groceries    "monthly"  650.00 USD

2. Fava での予算の可視化

Beancount のウェブインターフェースである Fava は、予算を自動的に検出し、いくつかの主要なレポートに表示し、実際の支出と目標を比較できるようにします。

  • 損益計算書: 純利益 および 費用 チャートには、予算値と実績値が表示されます。
  • 変化 (月次): 各月の予算額が表示されます。
  • 残高 (月次): 時間経過に伴う累積予算額が表示されます。

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. 期間のスペル: 期間は 5 つの有効なオプションのいずれかであり、小文字である必要があります (例: "monthly")。
  4. Fava の再起動: ディレクティブを最近追加した場合、変更を反映するには Fava サーバーの再起動が必要になる場合があります。