コミュニティショーケース : 実世界の Beancount セットアップ
実世界の Beancount セットアップ
イントロダクション
Beancount は汎用性の高いプレーンテキスト会計システムであり、ユーザーはそれをさまざまな実世界のニーズに合わせて形成してきました。このコミュニティショーケースでは、フリーランサーや中小企業の経営者から、個人のファイナンス愛好家まで、さまざまな人々が Beancount の会計ワークフローをどのように構築し、使用しているかを示す匿名化された例を紹介します。これらの例では、メタデータによるトランザクションのタグ付け、カスタムスクリプトによる台帳更新の自動化、複数通貨の処理、予算編成と予測、およびプラグインまたは統合(Fava Webインターフェイスなど)による Beancount の拡張などの創造的なプラクティスに焦点を当てています。目標は、Beancount の柔軟なシステムで何が可能かについて、会計士、開発者、および金融に精通したユーザーにインスピレーションを与え、情報を提供することです。
Fava インターフェイスの例 : 多くの Beancount ユーザーは、財務を可視化するために、オープンソースの Web ダッシュボードである Fava を利用しています。Fava は、Beancount の台帳をインタラクティブなレポートやチャートに変換できます。たとえば、上記のスクリーンショットは、カテゴリ別の収入と支出の内訳を示す 損益計算書 のツリーマップを示しており、お金がどこから来てどこに行くのかを簡単に把握できます。ユーザーは、時間、勘定科目、またはタグでこのビューをフィルタリングして、特定のプロジェクトまたは期間を掘り下げることができます。このような視覚化により、プレーンテキストデータへのアクセスが容易になり、ユーザーは傾向と異常を一目で把握できます。
各 Beancount セットアップは一意ですが、共通のテーマが浮かび上がってきます。以下では、フリーランサー、中小企業の経営者、個人のファイナンスパワーユーザーの 3 つのシナリオを掘り下げて、彼らがどのように勘定科目を整理し、Beancount の機能を活用しているかを見ていきます。個人的な詳細はすべて削除または一般化されており、テクニックと構成のみに焦点を当てています。
フリーランサー : プロジェクトのタグ付けと請求書追跡
最初の例は、フリーランスのコンサルタントで、Beancount をビジネスファイナンスのバックボーンとして使用しています。このフリーランサーの台帳は、プロジェクトごとの収入と支出を追跡し、複数のクライアントの請求書を管理するように構成されています。彼らは、クライアントごとに資産の売掛金 (A/R) のための専用の勘定科目を設定しており、誰が何をいくら借りているかを区別するのに役立っています。プロジェクトを完了してクライアントに請求書を発行すると、クライアントの A/R 勘定科目を借方記入し、収入勘定科目を貸方記入するトランザクションを記録します。たとえば、新しい請求書は次のように記録されます。
2025-08-01 * "プロジェクト X 完了" ^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 ユーザーは、出張経費にタグを付けると、払い戻しされなかった経費を把握するのに役立ったと指摘しました。理想的には、クライアントからのすべての払い戻しを受け取ると、出張の経費は 0 ドルになります。これは、タグ付けが Beancount のクエリ機能と組み合わさることで、請求可能な経費を管理するフリーランサーに特別な監視レイヤーを提供する方法を示しています。
未払い残高の状態を管理するために、フリーランサーは 保留中の売掛金 の特別な規則を使用しています。まだ全額支払われていない請求書トランザクションには、#UNRESOLVED タグを適用します。Beancount (および Fava) はこのタグを強制しませんが、決済を待機しているトランザクションをマークするコミュニティによって確立されたパターンです 。たとえば、クライアント A が 5,000 ドル全額を支払うまで、上記の請求書トランザクションには #UNRESOLVED が含まれます。そのタグでフィルタリングすることにより、フリーランサーはいつでもすべての未払い請求書を一覧表示できます。支払いを受領して適用すると (対応する A/R トランザクションが入力されます)、#UNRESOLVED タグを削除または無視すると、そのクライアントの売掛金勘定科目の残高はゼロになります。このシステムにより、請求書が「見過ごされる」ことがなくなります。これは基本的に、プレーンテキストで実行されるエージングレポートです。A/R がゼロ以外のままで、未解決のタグが付いている場合は、注意が必要です。
フリーランサーは複数の支払い方法や複数の通貨を扱うことが多いため、Beancount のセットアップはそれらをシームレスに対応しています。この例では、コンサルタントは一部のクライアントに USD で請求し、他のクライアントに EUR で請求する場合があります。複数通貨の処理 は Beancount では簡単です。どの勘定科目も複数のコモディティ (通貨はコモディティとして扱われます) を保持できます。フリーランサーは、通貨ごとに個別の補助勘定科目を保持するか (たとえば、Assets:AccountsReceivable:ClientA:EUR 対 ...:USD)、または同じ勘定科目で適切な通貨でトランザクションを転記することができます。Beancount は、通貨ごとの残高を自動的に追跡します。あるユーザーは、「Beancount は、USD であろうとティッカーシンボルであろうと、任意の通貨で数量を追跡できるのが素晴らしい」と強調しました。フリーランサーは、レポート用に通貨を換算する必要がある場合は常に、price ディレクティブで為替レートを記録することにより、これを利用しています。定期的な為替レートまたは市場価格を入力すると、自国通貨に換算された収入レポートを生成できます。
最後に、このフリーランサーは Beancount の台帳を実用的なツールと統合して、ワークフローを効率化しています。たとえば、各請求書の PDF コピーを ドキュメントメタデータ を使用して台帳に添付します。一般的な請求書支払いエントリは次のようになります。
2025-08-30 * "ClientA" "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 システムは、プロジェクトベースの会計を管理するためのタグ付けとリンクの多用を示しています。プレーンテキスト台帳を堅牢なフリーランス会計ツールに変え、プロジェクトの経費、複数通貨の収入、請求書のステータスを明確に可視化します。