10年間の個人財務をプレーンテキストファイルで
105日前原文(sgoel.dev)
概要
- 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でのバージョン管理により変更履歴も明確
- 必要な時にエディタで即時閲覧・分析可能
- クラウドサービス依存なし、長期的な可用性確保
- プレーンテキスト会計の強力さと安心感