カスタムリンクとクエリでBeancount体験を向上させる
Beancount は、開発者やファイナンス好きに愛される二重仕訳会計システムで、シンプルさが魅力です。しかし、Fava(Beancount のウェブインターフェース)で、より細かい制御や高速なナビゲーションを求めるユーザーには、カスタムサイドバーリンクと SQL クエリがワークフローを次のレベルへ引き上げます。
このガイドでは、以下を実現する方法を紹介します。
- Fava のサイドバーにクイックアクセスリンクを追加する
- 高度なフィルタリングと分析のために SQL クエリを使用する
- 月次レビューや異常検知のためにワークフローをカスタマイズする
なぜ Fava をカスタマイズするのか?
Fava はすでに美しい Ledger 表示インターフェースですが、ジャーナルが大きくなるにつれて、ショートカットやスマートクエリの必要性も高まります。
解決できる課題
- 時間範囲を何度も手動で指定する手間
- ネストされた勘定科目を横断する取引のフィルタリング
- マイナス残高や異常を迅速に検出したい
✨ カスタムサイドバーリンク
まずは、シンプルなサイドバーショートカットで日々の作業を改善しましょう。これらのリンクは Fava の左サイドバーに表示され、今月の取引や先月の収入といったフィルタビューへ直接ジャンプできます。
Beancount ファイルに以下の行を追加します。
2021-01-01 custom "fava-sidebar-link" "Current Month" "/jump?time=month"
2021-01-01 custom "fava-sidebar-link" "Last Month" "/jump?time=month-1"
2021-01-01 custom "fava-sidebar-link" "Clear All" "/jump?account=&time=&filter="
動作概要
- Current Month:現在の月にフィルタされた取引ビューを開く
- Last Month:前月に即座にジャンプ(月末レビューに最適)
- Clear All:フィルタをリセットし、全エントリを再表示
これらのショートカットにより、手動で時間を入力する手間が省け、Fava の操作感がより流動的かつパーソナライズされます。
🔍 カスタム SQL クエリ
さらに深い洞察が必要な場合は、Fava の SQL インターフェースが非常に強力です。以下は、特定パターンにマッチする勘定科目の マイナス残高 をすべて抽出するクエリ例です。異常取引のフラグ付けに最適です。
SELECT account, units(sum(position)), sum(position)
WHERE number(units(position)) < 0
AND account '.*:BCM:.*'
AND date >= DATE(2021,12,9)
AND date < DATE(2022,1,9)
クエリの構成要素
account '.*:BCM:.*'
:名前に:BCM:
を含む勘定科目をフィルタnumber(units(position)) < 0
:マイナス残高(例:予算超過)を検出- 日付条件で 1 カ月間に絞り込み
活用例
- 重複経費や誤った仕訳のエラー検出
- 特定ベンダーやカテゴリの監査
- 予算策定のための実用的インサイト抽出
🛠 プロのコツ:リンクとクエリを組み合わせる
Fava ではカスタムクエリへの直接リンクは作れませんが、以下の手順で月次レビュー習慣を構築できます。
- 「Current Month」リンクでレビューを開始
- 別ペインで保存済みクエリタブを開く
- まずフィルタを適用し、次にクエリで詳細分析
この組み合わせにより 異常を早期に捕捉 し、Ledger のクリーンさを維持 できます。
最後に
Beancount はミニマル設計ですが、こうした小さな拡張で効率は飛躍的に向上します。予算の見直し、奇妙な残高のデバッグ、クリック数の削減など、カスタムリンクと SQL クエリは「パワー」を増し「摩擦」を減らします。
ボーナス:もし Fava のカスタムレポート を利用しているなら、個人のファイナンス習慣に合わせたダッシュボードも構築可能です。
さあ、コントロールを手に入れましょう!
まずは小さく始めてみてください。 「Current Month」リンクを追加し、次に自分だけのクエリを作成。将来の自分が感謝するはずです。
もっとこうしたヒントが欲しいですか? ニュースレターに登録するか、Beancount.io で他のレシピを探索してください。