概要
- Beancount を使い始めて 10年 の個人資産管理の実践記録
- 45,000行超 のエントリーと 500以上のドキュメント を管理
- 毎月 30-45分 で明確なワークフローを実施
- 独自インポーター 開発や書籍執筆によるノウハウ共有
- プレーンテキスト管理 と 自己所有データ の価値強調
10年分のBeancountレジャー
- 2016年1月 から Beancount で個人資産をテキストファイル管理
- 毎月30-45分 かけて銀行明細をダウンロードし、インポート作業実施
- 45,000行超 のエントリーが 16ファイル に分割保存
- ファイルは financesディレクトリ でバージョン管理(git利用)
- 例:2020年4037行、2023年5606行、2016年は1454行
- メインファイル には約 10,000件 の取引、 20,000件 のポスティング記録
- 1086アカウント 登録(実際の銀行口座数ではなく、用途ごと仮想的に作成)
- 例:スーパーマーケット支出、収入、Netflixサブスクリプションなど
- 500件超 のPDFドキュメント(領収書・請求書等)を紐付け管理
- 年度ごとのポスティング数 :2016年715件から2023年2651件まで増加
毎月のルーティン
- 銀行口座にログインし CSV明細 をダウンロード
- インポーター でCSVをBeancount形式に変換
- 変換データを .beancountファイル に追記
- 各エントリーを 一つずつ確認・バランス調整
- ダブルエントリーブックキーピングの原則(合計ゼロになること)を確認
- 一部は自動、一部は手動で調整
- 年度切替時、前年の取引を <year>.beancount に移動し、mainファイルでインクルード
- すべての資産履歴が 数個のテキストファイル に集約
ドイツ銀行向けBeancountインポーター開発
- Beancount自体は 銀行明細の形式 に非依存
- インポーター とは、銀行明細(CSV等)をBeancount形式に変換するPythonクラス
- ドイツ在住のため、 beancount-dkb、beancount-ing、beancount-n26 等の独自インポーターを開発・メンテナンス
- Commerzbank向けは口座閉鎖により非メンテ
- これらのライブラリは 現在も活用・保守中
ユーザーから著者へ
- Beancount導入時は ドキュメントの網羅性 が高い反面、全体像の把握が難しかった経験
- 試行錯誤を経て「 新規ユーザー向けの短い書籍」を執筆
- https://personalfinancespython.com にて公開
- 書籍は Beancount公式サイト でも紹介され、読者から高評価
プレーンテキスト会計の価値
- 全資産データが 自分の手元 かつ プレーンテキスト で管理
- gitでのバージョン管理により 変更履歴 も明確
- 必要な時に エディタで即時閲覧・分析 可能
- クラウドサービス依存なし、長期的な可用性確保
- プレーンテキスト会計 の強力さと安心感