メインコンテンツへスキップ

知っておくべきBeancount標準プラグイン

公開日 最終更新 約4分Mike ThriftMike Thrift
知っておくべきBeancount標準プラグイン
このページの見出し

2026-09-15時点の情報です。

Beancountの強みは、プレーンテキスト形式だけでなく、プラグインによる拡張性にもあります。標準プラグインは、Beancountの機能を強化し、面倒なタスクを自動化し、会計のベストプラクティスを強制する組み込みモジュールです。この包括的なガイドでは、Beancountで利用可能なすべての標準プラグインと、それらを効果的に使用する方法を説明します。

これらのプラグインが操作するディレクティブ構文については、Beancount構文リファレンスを参照してください。プラグインをインポーターやFavaと組み合わせた実際のコミュニティワークフローについては、コミュニティショーケースを参照してください。プラグインと連携するLedgerオプションは、オプション設定にあります。

Beancountプラグインとは?

Beancountプラグインは、台帳エントリを処理して自動化、検証、変換機能を追加するPythonモジュールです。これらは台帳ファイルの読み込みフェーズ中に実行され、次のことが可能です。

  • 自動化: 反復タスク(例:勘定科目宣言の作成)
  • 検証: データの整合性(例:重複取引のチェック)
  • 変換: エントリ(例:取引からの価格エントリ生成)
  • 強制: 会計ルール(例:勘定科目ごとに単一の商品)

プラグインの使用方法

Beancountファイルでプラグインを有効にするには、台帳の先頭にpluginディレクティブを追加します。

plugin "beancount.plugins.auto_accounts"
plugin "beancount.plugins.implicit_prices"

一部のプラグインは設定オプションを受け付けます。

; @m49-fragment dateless
plugin "beancount.plugins.check_commodity" "{'Assets:Trading': '.*'}"

標準プラグインのカテゴリ

Beancountの標準プラグインは、主に4つのカテゴリに分類されます。

1. 自動化プラグイン

2. 検証プラグイン

3. 変換プラグイン

4. メタプラグイン


1. 自動化プラグイン

これらのプラグインは、反復的な記帳タスクを自動化し、時間を節約し、手動ミスを減らします。

auto_accounts - 自動勘定科目宣言

機能: 取引に出現するが明示的に宣言されていない勘定科目に対して、Openディレクティブを自動的に挿入します。

使用理由: 使用前にすべての勘定科目を手動で宣言する必要がなくなります。すぐに使い始めたい方や、最小限のボイラープレートを好む方に最適です。

例:

plugin "beancount.plugins.auto_accounts"
 
2026-01-01 * "コーヒーショップ"
  Expenses:Food:Coffee        4.50 USD
  Assets:Cash                -4.50 USD

このプラグインがない場合、手動で追加する必要があります。

2025-12-01 open Expenses:Food:Coffee
2025-12-01 open Assets:Cash

使用時期: 初心者や、より簡潔な台帳を希望する方に最適です。ただし、明示的な勘定科目宣言は誤字の検出に役立ちます。


close_tree - 自動勘定科目階層クローズ

機能: 親勘定科目をクローズすると、このプラグインはそのすべての子勘定科目を自動的にクローズします。

使用理由: 勘定科目階層の整合性を維持します。Assets:Investmentsをクローズすると、Assets:Investments:StocksAssets:Investments:Bondsなどのすべてのサブアカウントが自動的にクローズされます。

例:

plugin "beancount.plugins.close_tree"
 
2025-06-30 close Assets:Investments
 
; 以下は自動的にクローズされます:
; Assets:Investments:Stocks
; Assets:Investments:Bonds
; Assets:Investments:RealEstate

使用時期: 勘定科目階層を再編成する場合や、勘定科目のカテゴリ全体をクローズする場合。


implicit_prices - 自動価格エントリ生成

機能: コスト(@)または価格(@@)を含む取引転記からPriceディレクティブを合成します。

使用理由: 取引から価格データベースを自動的に構築し、手動での価格入力なしに正確な市場価値レポートを可能にします。

例:

plugin "beancount.plugins.implicit_prices"
 
2026-01-02 * "AAPL株を購入"
  Assets:Investments:Stocks    10 AAPL @ 150.00 USD
  Assets:Cash                 -1500.00 USD

これにより、以下が自動的に生成されます。

2026-01-02 price AAPL  150.00 USD

使用時期: 投資追跡や複数通貨会計で、自動的な価格履歴が必要な場合に必須です。


2. 検証プラグイン

これらのプラグインは、データの整合性と会計のベストプラクティスを強制し、問題になる前にエラーを検出します。

noduplicates - 重複取引検出

機能: 取引データのハッシュを計算して比較することで、2つの取引が同一でないことをチェックします。

使用理由: 特に複数のソースから取引をインポートする場合に、誤った重複エントリを防ぎます。

例:

; @m49-fragment expected-failure
plugin "beancount.plugins.noduplicates"
 
2026-01-02 * "家賃支払い"
  Expenses:Rent              1200.00 USD
  Assets:Checking           -1200.00 USD
 
; これはエラーを引き起こします:
2026-01-02 * "家賃支払い"
  Expenses:Rent              1200.00 USD
  Assets:Checking           -1200.00 USD

使用時期: 常に推奨されます。特に銀行明細書からのインポートや複数のデータソースを使用している場合。


check_commodity - 商品宣言の検証

機能: 台帳で使用されるすべての商品に対応するCommodityディレクティブがあることを保証します。

使用理由: 明示的な商品宣言を強制し、資産と通貨のリストをクリーンに保つのに役立ちます。

例:

; @m49-fragment expected-failure
plugin "beancount.plugins.check_commodity"
 
2015-01-01 commodity USD
2020-01-01 commodity AAPL
 
; 商品宣言がない場合、これはエラーを引き起こします:
2026-01-02 * "ビットコインを購入"
  Assets:Crypto              0.5 BTC @ 45000 USD
  Assets:Cash             -22500.00 USD

使用時期: 厳密な商品追跡を維持し、ティッカーシンボルの誤字を防ぐために推奨されます。


check_average_cost - コスト基準の検証

機能: 特に平均原価法の記帳を使用する場合に、取引でコスト基準が適切に保持されていることを検証します。

使用理由: 税務申告やキャピタルゲイン計算のための正確なコスト会計を保証します。

使用時期: 投資ポートフォリオや、正確なコスト追跡が重要なあらゆるシナリオで重要です。


check_closing - 残高クローズの検証

機能: closingメタデータを残高チェックに展開し、クローズ取引後のポジションがゼロであることを保証します。

使用理由: ポジション全体を売却した際に、残高が本当にゼロ(端数株式が残っていない)であることを確認します。

例:

plugin "beancount.plugins.check_closing"
 
2026-01-02 * "AAPLポジション全体をクローズ" #closing
  Assets:Investments:Stocks   -100 AAPL {150.00 USD}
  Assets:Cash                15500.00 USD
  Income:Investments:Gains    -500.00 USD

#closingタグは、この取引後にAAPLポジションがゼロであることを検証するようにプラグインに指示します。

使用時期: ポジション全体を売却する際に、何も残っていないことを確認するため。


coherent_cost - 通貨/コストの整合性チェック

機能: 通貨が一貫性なく使用されていないか検証します - コスト注釈付きとコスト注釈なしの両方(例:100 USD100 USD {1.2 CAD})が混在していないか。

使用理由: 裸の通貨とコスト付きの通貨を混在させると会計エラーが発生する可能性があるため、これを防ぎます。

使用時期: 複数通貨の台帳で一貫性を維持するために推奨されます。


leafonly - リーフ勘定科目の強制

機能: リーフ勘定科目(子を持たない勘定科目)のみが転記を受け取ることを保証します。

使用理由: Expenses:Foodのような集約勘定科目に直接転記がなく、Expenses:Food:GroceriesExpenses:Food:Restaurantsのような子勘定科目のみに転記される、クリーンな勘定科目階層を強制します。

例:

; @m49-fragment expected-failure
plugin "beancount.plugins.leafonly"
 
; これはエラーを引き起こします:
2026-01-02 * "食料品の買い物"
  Expenses:Food              50.00 USD  ; エラー: リーフ勘定科目に転記する必要があります
  Assets:Cash               -50.00 USD
 
; 正しい方法:
2026-01-02 * "食料品の買い物"
  Expenses:Food:Groceries    50.00 USD  ; 正しい: リーフ勘定科目への転記
  Assets:Cash               -50.00 USD

使用時期: 明確な分類を備えた厳密な階層的会計を維持したい場合。


nounused - 未使用勘定科目の検出

機能: 開設されたが、実際にはどの取引でも使用されていない勘定科目を特定します。

使用理由: 勘定科目の宣言を整理し、潜在的な誤字や放棄された勘定科目を特定するのに役立ちます。

使用時期: 定期的に、勘定科目構造を監査して整理するため。


onecommodity - 勘定科目ごとに単一の商品

機能: 各勘定科目が1種類の商品のみを保持することを強制します。

使用理由: 同じ勘定科目に異なる資産を混在させることを防ぎます。これは一般的に会計のベストプラクティスです。

例:

; @m49-fragment expected-failure
plugin "beancount.plugins.onecommodity"
 
2026-01-02 * "株式を購入"
  Assets:Investments         10 AAPL @ 150 USD
  Assets:Cash             -1500.00 USD
 
; これはエラーを引き起こします:
2026-01-03 * "株式を追加購入"
  Assets:Investments         5 GOOGL @ 140 USD  ; エラー: 異なる商品
  Assets:Cash              -700.00 USD

使用時期: 厳密な勘定科目分離(1つの勘定科目に1つの株式/資産)を好む場合。


sellgains - キャピタルゲインの検証

機能: 宣言されたキャピタルゲインを、ロット売却から計算されたゲインと照合し、損益計算が正確であることを保証します。

使用理由: 手動でのキャピタルゲイン計算のエラーを検出します。正確な税務申告に重要です。

例:

plugin "beancount.plugins.sellgains"
 
2026-01-02 * "AAPL株を売却"
  Assets:Investments:Stocks   -10 AAPL {140.00 USD}
  Assets:Cash                1500.00 USD
  Income:Investments:Gains   -100.00 USD  ; プラグインがこれが正しいことを検証します

プラグインは以下を検証します: 売却代金(1500)- コスト基準(1400)= ゲイン(100)

使用時期: 株式、暗号通貨、その他キャピタルゲインが重要な資産を取引するすべての人に必須です。


unique_prices - 価格の一意性チェック

機能: 商品ごとに日付ごとに価格エントリが1つだけであることを保証します。

使用理由: 誤った評価につながる可能性のある競合する価格データを防ぎます。

使用時期: 価格を手動で入力する場合や、複数の価格ソースからインポートする場合に推奨されます。


check_drained - ドレイン済み勘定科目の検証

機能: 転送やクローズ後に空になるはずの勘定科目に、まだ残高(未評価の通貨や残りのロットを含む)が残っている場合にフラグを立てます。

使用理由: balanceアサーションや#closingタグが見逃す可能性のある残高を検出します。特に複数商品の移動後には特に有効です。

ステータス(2026-09-15確認済み): 現在のPyPIライン(3.2.3)のbeancount/plugins/check_drained.pyとしてBeancount 3.xツリーに存在します。

使用時期: 大規模なポートフォリオ再編成後や、証券会社の口座をクローズするとき。


3. 変換プラグイン

これらのプラグインは、台帳データを有用な方法で変更または強化します。

currency_accounts - 通貨取引勘定科目

機能: 為替換算を明示的に追跡するための通貨取引勘定科目を実装します。

使用理由: 通貨換算取引の詳細な追跡を提供します。これを必要とする会計基準に役立ちます。

使用時期: 為替損益を別途追跡する必要がある場合や、特定の会計要件を満たす必要がある場合。


commodity_attr - 商品属性の検証

機能: 商品ディレクティブが必要な属性(exportnameなど)を持つことを検証します。

使用理由: 商品メタデータが完全で一貫していることを保証します。

使用時期: レポートやエクスポートのために詳細な商品メタデータを維持する場合。


4. メタプラグイン

これらのプラグインは、利便性のために他のプラグインを集めたものです。

auto - すべての自動プラグイン

機能: 1つのディレクティブで「寛容な」または自動的なプラグインのコレクションを有効にします。

使用時期: 最小限の設定で最大限の自動化を希望するユーザー向けのクイックセットアップ。


pedantic - すべての検証プラグイン

機能: すべての厳格な検証プラグインを一度に有効にします。

使用理由: 最大限のデータ整合性と会計の厳密さを強制します。本番運用の台帳や、精度が最重要視される場合に最適です。

例:

plugin "beancount.plugins.pedantic"
 
; これは以下を有効にすることと同等です:
; - check_commodity
; - check_average_cost
; - coherent_cost
; - leafonly
; - noduplicates
; - nounused
; - onecommodity
; - sellgains
; - unique_prices

使用時期: 最大限の検証が必要で、より厳格な会計慣行を維持する意思がある本番運用の台帳の場合。


推奨プラグイン設定

初心者向け

plugin "beancount.plugins.auto_accounts"
plugin "beancount.plugins.noduplicates"
plugin "beancount.plugins.implicit_prices"

この最小セットは、一般的なエラーを防ぎながら自動化を提供します。

投資家向け

plugin "beancount.plugins.auto_accounts"
plugin "beancount.plugins.implicit_prices"
plugin "beancount.plugins.sellgains"
plugin "beancount.plugins.check_average_cost"
plugin "beancount.plugins.unique_prices"

投資追跡とキャピタルゲインの正確性に焦点を当てています。

厳格な会計向け

plugin "beancount.plugins.pedantic"
plugin "beancount.plugins.sellgains"
plugin "beancount.plugins.check_closing"

本番環境向けの最大限の検証。

Beancount.ioのデフォルト設定

Beancount.ioでは、すべての新しい台帳ファイルにauto_accountsプラグインをデフォルトで含めています。

plugin "beancount.plugins.auto_accounts"

これは、すぐに使い始めるための使いやすさと機能性のバランスに優れています。


2026-09-15時点でのプラグインステータス

Beancount 3.2.3(PyPI、2026-09-15)のライブなbeancount/pluginsツリーに対して確認済みです。

プラグインモジュール存在備考
auto_accountsclose_treeimplicit_pricesはい自動化セットは変更なし
noduplicatescheck_commoditycheck_average_costcheck_closingcoherent_costleafonlynounusedonecommoditysellgainsunique_pricesはい検証セットは変更なし
currency_accountscommodity_attrはい変換セットは変更なし
autopedanticはいメタプラグインは変更なし
check_drainedはい上記で説明。古いガイドでは見落とされがちでした。

このガイドの元のドラフトから上記の日付までの間に、標準セットから削除されたものはありません。コミュニティ(非標準)プラグインは引き続きAwesome Beancountプラグインリストコミュニティショーケースに属します。サードパーティのリポジトリは独立してバージョン管理されているものとして扱い、本番運用の台帳で有効にする前に各リポジトリの最終リリースを確認してください。


ベストプラクティス

  1. 最小限から始め、必要に応じて追加: auto_accountsnoduplicatesから始め、台帳が成熟するにつれて検証プラグインを追加します。

  2. プラグインを個別にテスト: 複数のプラグインを追加する場合、その影響を理解するために一度に1つずつ有効にします。

  3. エラーメッセージを注意深く読む: プラグインのエラーは、修正が必要な実際の会計上の問題を指摘していることがよくあります。

  4. 本番運用にはpedanticを使用: ワークフローが確立されたら、厳格な検証の有効化を検討します。

  5. カスタムプラグインと組み合わせる: 標準プラグインは、予測プラグインのようなカスタムプラグインと連携して最大限の機能を発揮します。


標準プラグインを超えて

標準プラグインが中核的な機能を提供する一方で、Beancountエコシステムには専門的なニーズに対応する多くのコミュニティ開発プラグインがあります。

  • fava.plugins.forecast - 繰り返し取引の予測用
  • fava.plugins.link_documents - 取引と領収書ファイルのリンク用
  • 銀行固有のCSV形式用のカスタムインポーター
  • 税務固有の計算機とレポート

その他のオプションについてはBeancountエコシステムを、標準プラグインとインポーターやFavaを組み合わせた人々の方法についてはコミュニティショーケースを探索してください。


結論

Beancountの標準プラグインは、プレーンテキスト会計を手動プロセスから、自動化され、検証され、堅牢な財務管理システムへと変革します。これらの組み込みツールを理解して活用することで、次のことが可能になります。

  • ✅ 面倒な記帳タスクを自動化
  • ✅ 問題になる前にエラーを検出
  • ✅ 厳格なデータ整合性を維持
  • ✅ 正確な財務レポートを生成
  • ✅ データ入力ではなく財務分析に集中

今日から台帳でこれらのプラグインの実験を始めましょう。auto_accountsimplicit_pricesから始め、会計慣行が成熟するにつれて検証プラグインを徐々に追加してください。

これらのプラグインを試してみませんか? Beancount.ioにアクセスして、今日から台帳ファイルで使用を開始しましょう!


出典


Beancountプラグインについて質問がありますか?コミュニティフォーラムで議論に参加するか、ドキュメントをご確認ください。

ライブの暗号通貨の例の台帳を探索する:

新しいタブで 暗号通貨の例台帳 を開く

この記事を共有

出典: https://beancount.io/ja/blog/2026/01/02/beancount-plugin-you-should-know

公開日: 2026年1月2日

最終更新: 2026年9月15日