実践的なBeancountセットアップ
はじめに
Beancountは汎用性の高いプレーンテキスト会計システムであり、そのユーザーたちは幅広い実務ニーズに合わせてこれを形作ってきました。このコミュニティ事例集では、フリーランサーや中小企業のオーナーから個人財務の愛好家まで、さまざまな人々がどのようにBeancountの会計ワークフローを構築し活用しているかを、匿名化した例として紹介します。これらの例は、トランザクションにメタデータでタグ付けする、カスタムスクリプトで帳簿の更新を自動化する、複数通貨を扱う、予算編成と予測を行う、プラグインや統合(例えばFavaウェブインターフェースなど)でBeancountを拡張するといった創造的な実践を浮き彫りにします。目的は、会計士、開発者、財務に精通したユーザーに対して、Beancountの柔軟なシステムで何が可能かを示し、インスピレーションと情報を提供することです。
同じツール群の最新の概観については、Beancount v3: What's New?、Essential Beancount Native Plugins You Should Know、The Beancount Ecosystem、Beancount's Technical Edgeをご覧ください。

インターフェースの例: 多くのBeancountユーザーは、自分の財務を可視化するためにFava(オープンソースのウェブダッシュボード)やbeancount.io上のホスト版相当のものに頼っています。これらのツールはBeancountの帳簿をインタラクティブなレポートやチャートに変換します。例えば、この損益計算書ビューは、収益と費用をカテゴリ別に時系列で分解し、お金がどこから入ってどこへ出ていくかを素早く概観できます。ユーザーはこのビューを時間、勘定、タグで絞り込み、特定のプロジェクトや期間に掘り下げることができます。こうした可視化は、プレーンテキストのデータをよりアクセスしやすくし、トレンドや異常を一目で見つけられるようにします。
各Beancountセットアップは独自ですが、共通のテーマが浮かび上がります。以下では、フリーランサー、中小企業のオーナー、個人財務のパワーユーザーという3つのシナリオを掘り下げ、彼らがどのように勘定を整理し、Beancountの機能を活用しているかを見ていきます。個人を特定できる情報はすべて削除または一般化し、手法と設定のみに焦点を当てています。
フリーランサー:プロジェクトタグ付けと請求書管理
最初の例は、自身のビジネス財務の基盤としてBeancountを使っているフリーランスのコンサルタントです。このフリーランサーの帳簿は、プロジェクトごとに収益と費用を追跡し、複数のクライアントの請求書を管理するように構成されています。彼らは、誰がいくら負っているかを分離するために、クライアントごとに資産の下に売掛金(A/R)専用の勘定を設けています。プロジェクトを完了してクライアントに請求すると、クライアントの売掛金勘定を借方に、収益勘定を貸方に記録するトランザクションを計上します。例えば、新しい請求書は次のように記録されるかもしれません:
2025-08-01 * "Project X Completed" ^INV-0001
Assets:AccountsReceivable:ClientA 5,000 USD
Income:Consulting -5,000 USDここで ^INV-0001 という表記は、このトランザクションに請求書番号をタグ付けするために使われる_リンク_(Beancountの組み込みメタデータ機能)です。クライアントがその請求書の一部または全部を支払うと、支払トランザクションにも同じ ^INV-0001 リンクが含まれ、2つのエントリが結びつけられます。このリンクにより、支払を特定の請求書に割り当て、未回収残高を確認するのが容易になります。あるコミュニティメンバーが説明したように、こうしたタグやリンクを使って部分的な支払(例えば30ドルの請求書に対する20ドルの支払)を、請求エントリと支払エントリの両方でマークできます。その請求書リンクで帳簿を照会すれば、フリーランサーは請求書のうちいくら支払われ、いくら未回収かを即座に把握できます。
リンクに加えて、このフリーランサーは分類のためにタグを多用しています。Beancountのタグは # を接頭辞とするラベルで、後で絞り込むためにトランザクションをマークできます。このユーザーは、クライアントに請求可能な各費用にプロジェクトのコード(例えば #ProjectX)をタグ付けし、立替可能な費用には #Reimbursable をタグ付けします。例えば、クライアントプロジェクトのために航空券を購入した場合、その費用エントリには #ProjectX #Reimbursable が含まれるかもしれません。この習慣により、タグで絞り込んでプロジェクト別やクライアント別のレポートを生成できます。プロジェクトの後、フリーランサーはそのプロジェクトのすべての #Reimbursable 費用をリストアップするクエリを実行し、それぞれをクライアントに請求することを確認できます。あるBeancountユーザーは、出張費用にタグを付けることで、払い戻されなかった費用を発見できたと述べています。理想的には、クライアントからの払い戻しがすべて受け取られると、出張の費用は差し引きゼロになります。これは、タグ付けとBeancountのクエリ機能を組み合わせることで、請求可能な費用を管理するフリーランサーに追加の監視レイヤーを提供することを示しています。
未回収の支払の状況を管理するために、このフリーランサーは未処理の売掛金に対して特別な慣習を用いています。まだ全額支払われていない請求トランザクションには #UNRESOLVED タグを付けます。Beancount(およびFava)はこのタグを強制しませんが、決済待ちのトランザクションを示すコミュニティで確立されたパターンです。例えば、クライアントAが5,000ドル全額を支払うまで、上記の請求トランザクションには #UNRESOLVED が含まれます。このタグで絞り込むことで、フリーランサーはいつでも未処理の請求書をすべてリストアップできます。支払が受け取られ適用されると(対応する売掛金トランザクションが入力される)、彼らは #UNRESOLVED タグを削除するか無視し、そのクライアントの売掛金勘定はゼロに一致します。この仕組みにより、どの請求書も「見落とされる」ことがなくなります。これは本質的にプレーンテキストで行うエイジングレポートであり、売掛金がゼロでなく未解決タグが付いたままなら、注意が必要です。
フリーランサーはしばしば複数の支払方法を扱い、時には複数の通貨も扱うため、Beancountのセットアップはそれをシームレスに吸収します。この例では、コンサルタントは一部のクライアントにはUSDで、他にはEURで請求するかもしれません。複数通貨の扱いはBeancountでは簡単です。どの勘定も複数のコモディティを保持できます(通貨はコモディティとして扱われます)。フリーランサーは、各通貨ごとに別々のサブ勘定を保持する(例えば Assets:AccountsReceivable:ClientA:EUR と ...:USD)ことも、単に同じ勘定の下で適切な通貨でトランザクションを記帳することもできます。Beancountは通貨ごとの残高を自動的に追跡します。あるユーザーは、「BeancountはUSDであれティッカーシンボルであれ、あらゆる通貨で数量を追跡できる」ことが、すべて1つの帳簿で完結する素晴らしさだと強調しました。このフリーランサーは、レポートのために通貨換算が必要なときはいつでも price ディレクティブで為替レートを記録することでこれを活用しています。定期的な為替レートや市場価格を入力すれば、自国通貨に換算した収益レポートを生成できます。
最後に、このフリーランサーはBeancountの帳簿を実用的なツールと統合してワークフローを効率化しています。例えば、ドキュメントメタデータを使って各請求書のPDFコピーを帳簿に添付しています。典型的な請求書支払エントリは次のようになります:
2025-08-30 * "ClientA" "Payment for INV-0001" ^INV-0001
Assets:Bank:Checking 5,000 USD
Assets:AccountsReceivable:ClientA -5,000 USD
document: "Invoices/ClientA/INV-0001.pdf"Beancountの document ディレクティブやメタデータを使うと、ファイルをエントリに関連付けることができ、Favaはこれらの添付ファイルへのハイパーリンクを表示します。つまり、フリーランサー(またはその会計士)は帳簿レポートから直接クリックして元の請求書PDFを閲覧でき、バックアップ文書に簡単にアクセスできます。このフリーランサーはまた、Favaのレポートを使ってビジネスを監視しています。損益計算書や貸借対照表をクライアントで絞り込むことで、クライアントごとの収益性を確認し、すべてのプロジェクトが支払われているかをチェックできます。まとめると、このフリーランサーのBeancountシステムは、プロジェクトベースの会計を管理するためにタグ付けとリンクを多用していることを示しています。これはプレーンテキストの帳簿を、プロジェクト費用、複数通貨の収益、請求書の状況を明確に可視化する、堅牢なフリーランス会計ツールに変えています。
フリーランサーのセットアップにおける主要な実践: タグを使ってトランザクションをプロジェクトや目的別にグループ化する、請求書と支払を一意のIDでリンクする、未回収の売掛金に #UNRESOLVED タグを付ける、参照用に請求書ドキュメントを帳簿エントリに添付する、Beancountの複数通貨サポートを活用して国際的なクライアントに手間なく請求する。これらはすべて、プレーンテキストのエントリと少数の補助ツールで実現されており、Beancountにおけるメタデータの力を示しています。
小規模事業:自動化と多通貨会計
次に、会社の帳簿を運営するためにBeancountを採用した中小企業のオーナー、具体的にはスタートアップの創業者を見ていきます。中小企業はフリーランサーと似たニーズ(請求書、費用、複数通貨)を持ちますが、多くの場合より大規模で、自動化、一貫性、コラボレーションをより重視します。このケースでは、創業者は技術に精通しており、手作業の簿記を最小限に抑える高度に自動化されたBeancountワークフローを構築しました。QuickBooksのような従来の会計ソフトを評価した後、データを完全にコントロールするためにBeancountのプレーンテキストアプローチを選びました。数年にわたり、彼らは95%自動化された簿記プロセスを実現するためにカスタムツールを反復的に開発しました。
自動インポートと照合: 最初の課題の1つは、さまざまなソース(銀行口座、クレジットカード、決済処理業者)からトランザクションを帳簿にインポートすることでした。各トランザクションを手入力する代わりに、このユーザーはデータを取得してBeancount形式に変換するインポートスクリプトを設定しました。各金融機関のCSVやAPI形式用にカスタムのPythonインポーターを書き、1つのコマンドで新しいトランザクションを取得して帳簿に追記できるようにしました。例えば、beangulpのインポーターを使うと、創業者はダウンロードフォルダをスキャンして新しい明細を探し、それらをBeancountエントリとして出力するスクリプトを実行できます。別のユーザー、Rhyd Lewisは、銀行ごとに別々のインポータースクリプトを持ち、簡単なコマンド(Justfileを使う)でそれらを呼び出して帳簿を更新する、似たセットアップを説明しています。この中小企業のオーナーも同じことをしています。すべての銀行トランザクション、クレジットカードの利用、さらにはPayPalやStripeのトランザクションまでもが自動的に取得されて帳簿に追加され、適切な勘定で分類されます。
これらのエントリが自動的に追加されてもデータの完全性を確保するために、彼らは毎回のコミット前に帳簿を検証し、Beancountのプラグインを使用しています。例えば、同じトランザクションを誤って二重にインポートするのを防ぐために beancount.plugins.noduplicates プラグインが有効化され、エントリのない勘定(古い勘定の整理に役立つ)を指摘するために beancount.plugins.nounused が使われています。この検証ステップには bea check を推奨します。創業者はまた、帳簿ファイルのスタイルを一貫させるためにコミュニティのフォーマッタ(例えば beancount-black)を使用しています。これは重要です。多くの自動編集があると、統一されたスタイルがdiffや監査を容易にするからです。実際、創業者は帳簿をGitリポジトリで管理し、帳簿の更新をコード変更のように扱っています。インポートされたトランザクションの新しいバッチはそれぞれGitコミットになり、diffを確認して何が変わったかを見ることができます。あるスクリーンショットでは、「Costco」のクレジットカードトランザクションが手作業なしで保留状態から確定状態へと帳簿上で変化するGit履歴を示しています。バージョン管理は監査証跡を提供します。トランザクションがいつ追加または変更されたかを正確に確認でき、何かが誤ってインポートされた場合は変更を元に戻すことさえできます。これはソフトウェア開発のベストプラクティス(ソース管理など)を会計記録に持ち込む素晴らしい例です。
複数通貨と国際取引: 中小企業はしばしば複数の通貨で取引します。例えば、スタートアップはUSDの費用を持ちながらEURでの支払いを受け取ったり、GBPの銀行口座を保有したりするかもしれません。この事例企業は、Beancountの複数通貨機能を使ってこれらすべてを1つの帳簿に統合しています。彼らは各通貨ごとに別々の勘定を開設しました(例えば Assets:Bank:Checking:USD と Assets:Bank:Checking:EUR)。これは一般的なアプローチの1つです。しかし、異なる通貨が同じ勘定を共有していても、Beancountは各通貨の残高を別々に追跡し、トランザクションが通貨ごとにバランスすることを要求します。創業者は、会社の総残高を基軸通貨に換算して確認するために、頻繁に評価レポートを実行しています。Beancountは価格参照をサポートしているため、彼はスケジュールされたクォート取得スクリプトを使って、為替レート(および投資の株価)の日次価格フィードを設定しました。その結果、いつでも、例えばUSDでの貸借対照表を生成でき、EURの勘定が最新のレートで換算されて含まれます。コミュニティメンバーは、帳簿スタイルの会計で複数通貨を扱うのは簡単だと指摘しています。与えられた通貨でトランザクションを追加し、必要に応じて為替レートを記録するだけです。例えば、あるユーザーは、Beancountで通貨換算を管理する方法として、中間勘定を通じてUSDからEUR、CADへ換算する例を共有しました。このケースでは、中小企業は必ずしもトランザクションで通貨を換算するわけではありません(自国通貨で保持します)が、レポートを使って統合しています。この柔軟性は、スタートアップがグローバルに拡大するにつれて極めて重要でした。
カスタムスクリプトと拡張: 創業者が必要としたすべてが標準で提供されていたわけではなかったので、彼らはカスタムプラグインでBeancountを拡張しました。時間をかけて、彼らはパーサライブラリ、フォーマットツール、ルールベースのトランザクションインポーターを書き、これらの多くをオープンソースパッケージとして公開しました。例えば、彼らはYAML設定を使ってトランザクションを自動的に分類するルールベースのインポートエンジンを構築しました。この設定のスニペットは、特定の支払先や説明(「Comcast」や「PG&E」など)が特定の費用勘定とナレーションにマッピングされ、それらが銀行フィードに現れたときに、手作業の編集なしで正しいBeancountエントリが生成される仕組みを示しています。これは本質的に、簿記のルール(公共料金、サブスクリプションなど)をその場で適用するカスタム自動化です。別のプラグインは、帳簿が常にバランスしフォーマットされていることを保証します。これらのツールはすべて、新しいデータが取り込まれるたびに創業者のワークフローの一部として実行されます。その結果、最小限の介入で「自己更新する」帳簿ができ、創業者は自動化に取り憑かれた開発者としてこれが「純粋な喜び」をもたらすと述べています。
セキュリティとアクセス性も懸念事項でした。創業者は、財務チーム(さらには監督役を務める配偶者)が帳簿を簡単に閲覧できることを望んでいました。そのために、彼はFavaのプライベートなクラウド展開を設定しました。新しい帳簿コミットをプライベートGitリポジトリにプッシュするたびに、CIパイプライン(GitHub ActionsとAWS Elastic Beanstalkを使用)が更新されたFavaインスタンスをデプロイします。ウェブインターフェースはパスワードの背後にあり(basic認証付きのNginxプロキシを使用)、許可された人だけが閲覧できます。これにより、最新の財務諸表が常にブラウザのダッシュボードから利用でき、ローカルに何もインストールする必要がありません。以下のアーキテクチャ図はこのセットアップを示しています。Beancountファイルと必要な設定がFavaとともにDockerイメージにバンドルされ、AWSで提供され、セキュリティのためにCloudflareが前に配置されています。
flowchart LR
A[Edit ledger locally] --> B[Push to private Git repo]
B --> C[CI builds Docker image<br/>Fava + Nginx basic auth]
C --> D[Deploy to AWS<br/>Elastic Beanstalk]
D --> E[Cloudflare proxy]
E --> F[Owner & team view<br/>reports in browser]クラウドでのBeancountの自動化: ユーザーはローカルで帳簿ファイルを更新してGitにプッシュします。Dockerコンテナ(認証用のFavaとNginxを含む)がビルドされてAWS Beanstalkサーバーにデプロイされ、Cloudflareがプロキシとして機能します。その結果、中小企業の財務データをどこからでも(オーナーやチームが)リアルタイムでアクセスできる安全なウェブポータルが実現します。この高度なセットアップは、中小企業がデータの所有権を手放すことなく利便性を実現するために、Beancountを現代的なクラウドツールと統合できることを示しています。
日常的な使用では、中小企業のオーナーの焦点はデータ入力ではなく例外処理にあります。毎月、彼は自動インポートされたトランザクションを簡単に見直し(Git diffやFavaのジャーナルビューを使って)、未分類または誤ったエントリを発見します。彼はまた、Beancountの残高アサーションを使って勘定を照合しています。例えば、6月のすべてのトランザクションを入力した後、銀行口座の期末残高が明細と一致することを確認する残高チェックを追加するかもしれません。一致しない場合、Beancountがエラーを出し、何かが欠けているか誤って入力されていることを示します。これにより、帳簿が正確に保たれます。
中小企業のセットアップにおける主要な実践: カスタムインポーターとスクリプトによる徹底的な自動化(帳簿を「95%自動」にする)、監査証跡とコラボレーションのためのバージョン管理の使用、評価のための価格フィードを伴う複数通貨会計、財務レポートへの簡単で共有可能なアクセスのためのFavaの展開。中小企業のシナリオは、エンジニアリングの努力によってBeancountをどこまで活用できるかを示しています。会計を、透明性と柔軟性を保ちながら、大部分が自動化されたパイプラインに変えるのです。プログラマーでなくても、コミュニティプラグイン(フォーマット、重複検出など)を使い、頻繁なレビューとバックアップを促すプレーンテキストのワークフローを採用することで、これらの利点の多くを実現できます。
個人財務愛好家:予算管理とカスタム分析
最後の事例は、家計と投資を高い詳細度で管理するためにBeancountを使っている個人財務の愛好家です。このユーザーは、自分の個人財務を会計士のような厳密さと、データアナリストのような好奇心で扱っています。その結果、すべての1円を追跡するだけでなく、予算編成、予測、分析実験の基盤としても機能するBeancountの帳簿ができあがっています。
個人帳簿の整理: 多くの個人はすべての勘定を1つのBeancountファイルで始め、この愛好家も同じです。彼らはすべての勘定(銀行口座、クレジットカード、ローン、投資ポートフォリオなど)とトランザクションを含む1つのマスター帳簿(例えば main.beancount)を維持しています。時間をかけて、彼らはいくつかの構造を導入しセクションを分割しました。例えば、口座開設・閉鎖用のファイルと年次トランザクション用の別ファイルを持ち、それらをメインファイルにインクルードしています。このモジュール式の整理により、何年ものデータをナビゲートしやすくなり(古い年を別ファイルにアーカイブできる)、それでも論理的には1つの帳簿であり続けます。コミュニティフォーラムの別の個人ユーザーは、似たレイアウトを説明しました。カテゴリ別に他のファイル(例えば Income.beancount、Expenses.beancount、Investments.beancount)をインクルードするメインファイルです。この愛好家は今のところシンプルに保っています。デバイス間で同期された1つのファイルです。
同期と言えば、個人財務であるため、このユーザーはどこにいてもトランザクションを記録したいと考えています。彼らはBeancount Mobileというモバイルアプリを使って外出先で素早くエントリを追加します(例えば、店で現金費用をすぐに記録する)。帳簿ファイルはクラウド同期(この場合はSyncthing)で共有され、スマートフォン、ラップトップ、VPS(サーバー)すべてが最新のコピーを持ちます。コンピュータでは、シンタックスハイライト付きで快適に編集するために、Emacsと_beancount-mode_を使うことを好みます。このセットアップにより、デスクにいても外出中でも、すぐにトランザクションを記録し、何かを忘れることを避けられます。これは、商業的な予算管理アプリに対するセルフホストの代替を事実上構築する、個人の利便性のために技術ツールを適応させる素晴らしい例です。
きめ細かな追跡のためのタグ付けとメタデータ: このユーザーは、勘定科目表を超えた第2の次元をデータに加えるためにタグを活用しています。通常の予算カテゴリには勘定で十分ですが(Expenses:Groceries、Expenses:Rent などの勘定を持っています)、_イベント_や_目標_のような横断的なテーマにはタグを使います。例えば、彼らは住宅リフォームプロジェクトに関連するすべてのトランザクションに #HomeReno をタグ付けします。それがホームセンターで木材を買う(費用)でも、メーカーからキャッシュバックを受け取る(収益)でも同じです。これにより、それらの費用が異なる勘定の下にサイロ化されることなく、プロジェクト総費用のレポートを簡単に生成できます。あるRedditユーザーは、住宅プロジェクトのために #garage-improvement や #lighting-improvement のような費用にタグを付けるこのアプローチを示し、Beancountのクエリでそれらを絞り込んで合計するのを容易にしました。この愛好家も、休暇(#ItalyTrip2025)、大きな買い物、一度限りのイベントに対して同じことをしています。
メタデータ(トランザクションのキーと値のペア)もいくつかの特定の目的で使われています。例えば、大きな費用に location: ... メタデータを追加してどこでお金を使ったかを追跡したり、支払先とナレーションを超えた追加の文脈のために note: ... を追加したりしています。いくつかのケースでは、予測を支援するためにカスタムメタデータフィールドさえ作成しました。1つの例は、特定の定期費用に budget: X と frequency: monthly を追加することです。これは、ユーザーが各費用の予算予測をメタデータに保存していたBeancountメーリングリストでの議論に触発されたアイデアです。これらのメタデータフィールドはBeancountの核心には影響しませんが、この愛好家はそれらを読み取り、実際の支出を予測予算と比較する小さなPythonスクリプトを書きました。これはFavaの組み込み予算(後述)を使う代替であり、メタデータがいかにユーザーの意のままに曲げられるかを示しています。Beancountの作者が指摘したように、メタデータは「カスタムスクリプトで使うためだけにそこにあり、Beancountはそれをパースしますが無視します」。要するに、このユーザーは個人の分析を支援するために追加情報で帳簿を拡張することを恐れていません。
Beancountでの予算編成: このユーザーの主な目標の1つは、月次予算を守ることです。彼らは以前に予算管理アプリ(YNAB)を使っていて、その封筒型予算の概念の一部を再現したいと考えました。Beancountで予算編成を行う方法はいくつかありますが、最も簡単なのはFavaの**予算ディレクティブ**を使うことです。この愛好家は次のように帳簿に budget エントリを追加します:
2025-01-01 custom "budget" Expenses:Groceries "monthly" 500 USD
2025-01-01 custom "budget" Expenses:DiningOut "monthly" 200 USD
2025-01-01 custom "budget" Expenses:Travel "yearly" 3000 USD各行は、ある期間にわたって勘定(カテゴリ)の予算を設定します。Favaはウェブインターフェースで予算対実績のバーを表示し、ユーザーは例えば、予算500ドルのうち今月食料品に480ドルを使い、外食に220ドル(予算超過)を使ったことを確認できます。この愛好家は、Favaの損益計算書と費用レポートを定期的にチェックし、月次の合計と予算目標の両方を表示します。Favaは便利に日次・週次の予算を適切な期間に集約します。このためにFava UIを使うことで、ユーザーは予算編成用の別のスプレッドシートを必要とせず、すべてが統合されています。(彼らはまた、フォーラムで提案されたように、毎月初めにダミー勘定へ資金を移動する、より自動化された「封筒」システムも実験しましたが、カスタム予算ディレクティブの方が維持が簡単だとわかりました。)
予測については、予算を超えて、彼らは今後の請求書に注意を払っています。一部のコミュニティメンバーは、サブスクリプションやローンの償却スケジュールのために将来のトランザクションを生成するプラグインを構築しましたが、このユーザーはよりシンプルなアプローチを選びました。彼らは、既知の項目(来月の家賃や今後の年次保険料など)のために将来の日付のトランザクションを帳簿の別セクションに維持しています。これらは帳簿に残りますが今日の残高には影響せず、日付が来てトランザクションが現在になるとリマインダーとして機能します(必要に応じて実際の請求に合わせて金額を調整します)。少しハック的ですが、複雑なツールなしでキャッシュフローを予測するのに機能します。
投資の追跡と複数コモディティ会計: 財務の愛好家として、このユーザーはまた、投資口座(株式、投資信託、暗号資産)を現金口座と並べて統合するためにBeancountを使っています。彼らは証券口座を持ち、その保有資産(例えばAAPL、GOOGなどの株式)はBeancountにコモディティとして記録されます。例えば、Apple株を10株買うと、証券口座の現金を貸方に、資産勘定を借方に 10 AAPL というコモディティ数量で記録するエントリになります。あらゆるコモディティを扱えるBeancountの能力はここで非常に有用です。通貨と株式を自由に混在させることができます。あるユーザーが指摘したように、「BeancountはUSDであれティッカーシンボルであれ、あらゆる通貨で数量を追跡できる」ことは、しばしば株式ポジションをうまくサポートしない個人財務アプリに対する大きな改善でした。この愛好家は、すべての証券と外国通貨の最新市場価格を取得するために夜間のcronジョブを使っています。毎晩午前4時に、スクリプトが価格(Yahoo Financeまたは別のソースから)を取得し、その日の価格レコードを帳簿に追記します。これにより、次にFavaを開くかレポートを実行するとき、最新のポートフォリオ価値と、時間の経過に伴う投資パフォーマンスさえ確認できます。銀行口座、退職金、暗号資産ウォレット全体にわたる純資産全体が、1つの統合ビューで利用できます。これはデータ駆動型の投資家にとって夢のようなものです。全体像を見るために複数のプラットフォームにログインする必要がありません。彼らは本質的に、Beancountを動力源とする個人財務ダッシュボードを構築したのです。
分析と統合: この個人財務のパワーユーザーを真に際立たせているのは、データがBeancountに入った後の_分析方法_です。すべてのトランザクションがSQLiteデータベースにあるため(BeancountはSQLに似た組み込みクエリ言語でデータを照会できます)、ユーザーはカスタム分析を行えます。彼らは「食料品支出の3ヶ月移動平均は?」とか「今年の公共料金支出は昨年と比べてどうか?」といった質問に答えるPythonスクリプトを書きました。1つのスクリプトは特定のタグについて帳簿を照会し、結果をPandasデータフレームに出力してさらなる数値計算を行います。帳簿はプレーンテキストなので、彼らはまたJupyterノートブックを使って(Favaが提供するものを超えた)さまざまな可視化を実験しました。例えば、PythonでBeancountデータを集計してMatplotlibで月次貯蓄率のカスタム棒グラフを作成しました。この種のアドホックな分析は、Beancountがデータをアクセス可能かつ機械可読に保つからこそ可能です。あるユーザーが言ったように、_データの抽出は些細なこと_です。「Beancountからクエリ言語でデータを引き出すPythonスクリプトが1つあり、それをPandasデータフレームでレポートに整えます」。この愛好家は、年次の財務レビューのために実行するこうした小さなスクリプトのリポジトリを持っています。
もちろん、すべてがコーディングを必要とするわけではありません。多くの場合、彼らはFavaの組み込みチャートに頼っています。Favaは純資産の折れ線グラフ、収益対費用のトレンド、さらにはツリーマップの内訳(先ほど示したように)を提供し、どれもクリック一つで利用できます。ユーザーは、2018年以降の財務の全履歴が照会可能で監査可能であることを高く評価しています。例えば、「過去5年間で車の修理にいくら使ったか」と疑問に思ったら、レシートを掘り返す代わりに、Favaで簡単なクエリやフィルタを書いて答えを得られます。この empowerment こそが彼らをBeancountに引き付けたものです。データの完全な所有権と分析における無限の柔軟性です。おまけに、プレーンテキストの帳簿は将来にわたって通用します。必要ならバージョン管理、移行、さらには他のツールによる解析も可能です。クローズドソースのアプリとは異なり、財務履歴へのアクセスを失うリスクがありません。
個人セットアップにおける主要な実践: 便利なデータ入力のためのモバイル・デスクトップツールの活用、ライフイベントや横断的グループを追跡するためのタグとカスタムメタデータの使用、継続的な支出目標のためのFavaの budget ディレクティブを通じた予算の実装、同じ帳簿で投資と複数通貨を追跡(自動価格更新を伴う)、帳簿データを直接照会することによるカスタム分析の実行。このケースは、少しのセットアップで、個人財務の愛好家でさえ、通常は企業に限定されるレベルの洞察とコントロールを実現できることを示しています。しかも、技術に精通したユーザーにとって楽しく魅力的であり続けながらです。
これらの例の価格取得スクリプトのホスト版相当については、Live Pricesをご利用ください。サポートされている資産と評価通貨を選び、生成されたインクルードをホスト帳簿に追加します。ローカルのFavaセットアップには、依然としてローカルの価格ファイルが必要です。自動価格は評価データを更新しますが、これらのセットアップのトランザクションやロットコストは変更しません。
結論
これらのコミュニティの例を通じて、明確なテーマは、Beancountの柔軟性が高度にパーソナライズされた会計システムを可能にするということです。コミュニティのパワーユーザーたちは、シンプルなテキストファイルを活用して、能力において商用ソフトに匹敵しながら、自分たちのワークフローに仕立て上げられたソリューションを構築しました。フリーランサーはエントリにタグを付けリンクして、クライアントのプロジェクトと請求書を容易に管理します。中小企業のオーナーは面倒な簿記作業をスクリプト化し、Beancountを現代的なインフラと統合して常に更新される財務を実現します。個人財務の愛好家は帳簿を予算編成、投資、意思決定のための単一の真実の源として使い、タグとツールで補強して自分のお金に関するほぼあらゆる質問に答えます。これらはすべて、プレーンテキスト会計の核心的な利点を維持しながら達成されます。透明性、監査可能性、そして自分のデータに対するコントロールです。
Beancountのコミュニティはまた、プラグインと統合の豊かなエコシステムを生み出しました。入力用のエディタモードやモバイルアプリから、可視化のためのFavaウェブインターフェース、GitHub上の無数のインポーターやユーティリティまで、ほぼすべてのニーズに対応するリソースがあります。ユーザーはフォーラムやブログで自分の帳簿セットアップを頻繁に共有し、他の人が学びベストプラクティスを採用できるようにしています。重要なことに、人間が読める形式のおかげで、機密情報は非公開に保つことができ(または共有用に容易に伏せることができ)ます。この事例集で私たちが行ったように。上記の例は、あなたがフリーランスの開発者であれ、スタートアップの創業者であれ、個人財務オタクであれ、Beancountを自分の意のままに曲げられることを示しています。タグ付けとメタデータを創造的に使い、可能な限り自動化し、複数通貨のトランザクションを扱い、予算で計画し、プラグインで拡張することで、コミュニティはプレーンテキストで可能なことの限界を押し続けています。その結果は、維持するのも楽しいプロフェッショナルグレードの会計帳簿であり、ユーザーに自分の財務に対する明確さとコントロールの両方をもたらします。