プレーンテキスト会計は、複式簿記から用語を借り、Beancount独自の言葉をいくつか付け加えています。この用語集では、ドキュメントや自分の台帳ファイルを読むときに出会う用語を定義し、役立つ場所には短い例も添えています。すべての項目には独自のリンクがあり、同僚を定義へ直接案内できます。
勘定科目 (Account)
勘定科目とは、ある価値の流れを追跡するための名前付きの入れ物で、コロン区切りの階層として記述され、その最上位はAssets、Liabilities、Equity、Income、Expensesの5つのいずれかです。この階層が帳簿全体の構造を成し、Assets:US:BofA:CheckingやExpenses:Food:Restaurantなどは自動的に並べ替えられ、集計されます。すべての勘定科目は、使用する前に開設しておかなければなりません。命名規則については、Beancount言語構文を参照してください。
発生主義 (Accrual basis)
発生主義会計では、収益はそれが得られた時点で、費用はそれが発生した時点で記録し、実際に現金が動いた時点ではありません。現金主義会計はその逆で、現金が動いた時のみ認識します。発生主義の方が期間の業績をより正確に表すため、たとえば5月に発行した請求書は、たとえ6月に支払われたとしても5月のものとして計上されます。
償却 (Amortization)
償却とは、大きな一度の支払いを、それが実際にカバーする期間にわたって分散させることです。たとえば、1月に支払った年間保険料は、1月だけの費用ではなく、12か月すべての費用として計上されます。Beancountでは、分割仕訳を手動で書くか、プラグインを使って生成します — 償却を参照してください。
残高照合 (Balance assertion)
残高照合は、balance指令で、特定の日付における勘定科目の残高がいくらであるべきかを宣言するものです。これにより、銀行取引明細書があなたの帳簿に対する自動チェックになります。照合時の残高が許容誤差を超えて異なる場合、Beancountは期待値と実際の値とともにエラーを出します。その許容誤差は、最後に書いた小数位の1単位です — 4.27 RGAGXは4.26から4.28までを受け入れます — ~を通貨の前に置くと、独自の許容誤差を設定できます。取引明細書ごとに1回残高照合を入れるだけで、帳簿の信頼性を確保する最も簡単な方法になります。
2026-01-01 balance Assets:US:BofA:Checking 4,321.00 USDBeancount
Beancountは、オープンソースの複式簿記システムで、その帳簿はプレーンテキストファイルとして編集し、コマンドラインツールで検証します。厳密で解析可能な構文、クエリ言語、ウェブインターフェースを備え、データベースや独自形式のファイルを必要としません。帳簿がテキストであるため、Gitなどのバージョン管理システムでコードと同じように扱えます。まずはBeancount入門から始めてください。
Beancountクエリ言語 (BQL)
Beancountクエリ言語 (BQL) は、SQLに似た言語で、台帳ファイルに対して質問をするために使います。データベースではなく解析済みの指令を操作するため、SELECT account, sum(position) WHERE year = 2026 のようなクエリは、即座にファイルから答えを返します。詳細はクエリ言語ガイドを参照してください。
計上方法 (Booking method)
計上方法は、保有量の削減時にどのロットを選ぶかのルールです。Beancount 3.2.3では7つの方法が使えます:STRICT (デフォルト、自分でロットを指定)、STRICT_WITH_SIZE、NONE、FIFO、LIFO、HIFO、AVERAGE。これは各勘定科目のopen指令で設定するか、ファイル全体ではoption "booking_method"で設定します。7つのうち6つは実装済みですが、AVERAGEは構文解析はされるものの、実際に削減を計上する時点でAVERAGE method is not supportedというエラーを出します。選択した方法は実現キャピタルゲインの計算方法を変えるため、税法などに合わせて慎重に選び、安定させてください。在庫管理を参照してください。
勘定科目一覧 (Chart of accounts)
勘定科目一覧は、帳簿で使用するすべての勘定科目の完全なリストであり、その構造を定義します。Beancountには別個のチャートファイルはなく、open指令の集合そのものが勘定科目一覧です。この設計を最初にしっかり行うことで、後々の大規模な名前変更を防げます。業界別の設定を参照してください。
解約指令 (Close directive)
close指令は、ある日付以降、その勘定科目を使用不可にするものです。銀行口座を閉じたり、ローンを完済したときに、その履歴を消すことなく使用を終了するために使います。過去の取引は有効なままですが、新しい転記は拒否されます。使用していない勘定科目を閉じておくことで、レポートが読みやすくなります。
2026-03-31 close Assets:US:OldBank:Checking商品・通貨 (Commodity)
商品とは、帳簿で追跡する価値の単位です。USDのような通貨、AAPLのような株式ティッカー、あるいはBTCのような独自の単位も含みます。Beancountは商品間の変換を黙って行うことはありません。金額は常に、それが表す商品と対で記述されます。オプションのcommodity指令を使うと、名前や資産クラスなどのメタデータを追加できます。
原価基準 (Cost basis)
原価基準とは、保有資産に対して実際に支払った金額で、支払った通貨で記録され、保有している間ずっとその資産に付随します。Beancountでは中括弧で記述します — 10 AAPL {150.00 USD}は、1株150ドルで10株を取得したことを意味します。二重中括弧10 AAPL {{1,500.00 USD}}は合計金額を記録します。原価基準が各ロットに付随するため、売却時のキャピタルゲインは正確に計算できます。在庫管理を参照してください。
指令 (Directive)
指令とは、Beancountファイル内の1つの命令であり、通常は日付を伴います。日付を持つ指令は12種類あります:open、close、balance、price、note、document、pad、event、commodity、custom、query、そして取引自体です。日付を持たないものも少数あります:option、include、plugin、pushtag/poptagなどです。Beancountは日付付き指令を日付順に並べて処理するため、ファイル内の順序は自由ですが、日付を持たない指令は記述された場所で効果を発揮します。
複式簿記 (Double-entry bookkeeping)
複式簿記とは、すべての経済事象を少なくとも2つの仕訳で記録する方法で、それらのウェイトの合計が常にゼロになるようにします。お金は無から生まれず、消えもしない — それは単に勘定科目間を移動するだけであり、この原則が単式簿記では見逃されるような記録漏れや誤りを機械的に検出します。取引のウェイトは、単なる金額ではなく、原価や価格を含めた計算値です。たとえば10 FUND @ 38.46 USDのウェイトは384.60 USDであり、10 FUND {384.61 USD}のウェイトは3,846.10 USDです(中括弧は1単位あたりの原価を示すため)。Beancountはこの原則を厳格に適用し、ウェイトの合計がゼロにならない取引は警告ではなくエラーとして扱います。
2026-03-02 * "Bank" "Buy euros"
Assets:US:BofA:EUR 100.00 EUR @ 1.08 USD
Assets:US:BofA:Checking -108.00 USD封筒予算 (Envelope budgeting)
封筒予算は、使う前にお金を目的別に分けておく方法で、各カテゴリがプールされた残高を奪い合うのではなく、それぞれ独自の上限を持つようにします。名前は、かつて人々が給料日に現金を詰めていた紙の封筒に由来します。プレーンテキストの台帳では、専用の勘定科目や予算指令を使って封筒をモデル化します — 予算を参照してください。
Fava
FavaはBeancountのウェブインターフェースで、チャート、貸借対照表、損益計算書、クエリエディタ、入力フォームを提供し、すべて台帳ファイルから生成されます。読み取り主体でローカルで動作するため、記録方法を変えることなく帳簿の見え方を変えます。beancount.ioは独自のツールとともにマネージド版をホストしています。UI機能ガイドで詳しく説明されています。
在庫 (Inventory)
在庫とは、ある勘定科目が現在保有しているポジションの集合で、それぞれが独自の商品、関連する原価基準、取得日を持ちます。同じ株を3回購入した証券口座は、1つの在庫に3つの別々のロットを持ち、1つの混合された数字ではありません。ロットを区別することが、正確な利益計算を可能にする鍵です。
仕訳帳 (Journal)
仕訳帳は、帳簿で発生したすべての出来事を時系列で並べたものです — 日付順の生の取引の流れであり、グループ化や集計が行われる前の状態です。「3月に実際に何をしたか?」という質問に答えるときに閲覧するものです。Favaの仕訳ページは、通常、誤って分類された項目を最も早く見つけられる場所です。
台帳 (Ledger)
台帳は、ある事業体のすべての会計記録の完全なセットであり、Beancountではプレーンテキストファイル (インクルードされたものを含む) を意味します。この言葉は、帳簿全体の名前としても、ファイル自体の名前としても使われます。テキストであるため、台帳はソースコードと同じように差分、レビュー、ブランチ、マージが可能です。
ロット (Lot)
ロットとは、特定の商品の1回の取得を指し、その原価基準と取得日によって識別されます。同じETFを1月と6月に購入すると2つのロットが作成され、後で売却する際にはどのロットを売るかを選択します。ロットこそが、Beancountが実現利益を正確に計算できる理由です。
2026-06-15 * "Broker" "Buy VTI"
Assets:US:Broker:VTI 5 VTI {260.00 USD, 2026-06-15}
Assets:US:Broker:Cash -1,300.00 USD摘要 (Narration)
摘要は、取引が何のためだったのかを説明する自由文で、取引行の2番目の引用符付き文字列として記述されます。人間のためのものです:「毎月の家賃」、「食料品と日用品」。Beancountはこれを解析しませんが、6か月後にエントリが意味をなさなくなったときに読むものはこれです。
開設指令 (Open directive)
open指令は、勘定科目を宣言し、使用開始日、オプションで保有可能な商品と計上方法を指定します。Beancountはすべての勘定科目が最初の転記の前に開設されていることを要求するため、タイプミスが黙って新しい勘定科目を作成することを防ぎます。許可された商品を制限することで、さらに別の種類の誤りをエラーに変えることができます。
2026-01-01 open Assets:US:Broker:VTI VTI "FIFO"パッド (Pad)
pad指令は、指定された勘定科目の次の残高照合を成功させるために必要な金額を自動的に挿入し、その差額を別の勘定科目に計上するようにBeancountに指示します。これは、帳簿を途中から開始する場合に、何年もの履歴を再構築することなく開設するという、まさにそのための機能です。この初期設定以外でパッドを使用することは、通常、実際のエラーを隠していることを意味します。
支払先 (Payee)
支払先は、取引の相手先であり、取引行の最初の引用符付き文字列として記述されます。支払先の名前を一貫させておくこと — 常に"Whole Foods"とし、時々"WholeFoods"としない — ことが、支払先ベースのレポートや自動インポーターを機能させる鍵です。Beancountは支払先をオプションとして扱います。取引には摘要のみが含まれる場合もあります。
プレーンテキスト会計 (Plain-text accounting)
プレーンテキスト会計は、バージョン管理下にある人間が読めるテキストファイルで帳簿を管理し、オープンソースのコマンドラインツールで処理する実践です。グラフィカルなインターフェースと引き換えに、耐久性、監査可能性、自動化を手に入れます:データはベンダーよりも長生きし、すべての変更はレビュー可能な差分となり、あらゆるスクリプトがそれを読むことができます。Beancount、Ledger、hledgerが最もよく知られた実装です。
プラグイン (Plugin)
プラグインは、Beancountがファイルを処理する際にロードするPythonモジュールで、レポートが構築される前に指令を追加、変換、検証することができます。予測、償却スケジュール、カスタムチェックは、コア言語を変更することなくプラグインによって実装されます。プラグインは、台帳の先頭に独立したplugin行を置くことで有効になります。optionでは決してありません — option "plugin" "…"はOption 'plugin' may not be setというエラーで拒否されます。予測プラグインガイドで実際の例を説明します。
転記 (Posting)
転記は、取引の1つの足であり、勘定科目、金額、そしてオプションで原価または価格を含みます。取引全体でゼロに合計されるのは、単なる金額ではなく、ウェイトです。単なる金額はそれ自体がウェイトであり、10 FUND @ 38.46 USDは384.60 USDのウェイトを持ち、10 FUND {384.61 USD}は3,846.10 USDのウェイトを持ちます。これは、単一の中括弧が1単位の原価を保持するためです。最大で1つの転記は金額を空白にすることができ、その場合Beancountが差額を自動計算します。完全なウェイト規則については、精度と許容誤差を参照してください。
価格指令 (Price directive)
price指令は、ある日付における2つの商品間の為替レートを記録し、これによりBeancountはレポート内で保有資産を時価評価に変換できます。price指令は純粋な参照データであり、お金を動かすことも、どの取引にも属しません。転記内に記述される@価格と混同しないでください。これは算術です — 10 FUND @ 38.46 USDに384.60 USDのウェイトを与え、取引が釣り合うかどうかを決定します。価格指令がない場合、ポートフォリオは原価ではバランスしますが、時価では評価できません。
2026-06-30 price VTI 271.40 USD照合 (Reconciliation)
照合とは、自分の帳簿が銀行や証券会社の明細書などの外部記録と一致することを証明する行為です。プレーンテキスト会計では、これはほぼ機械的です:各明細書の日付に残高照合を追加し、ツールに数字が一致するかどうかを判断させます。毎月きれいに照合できる台帳は、税金申告を恐れずに行えるものです。
タグとリンク (Tags and links)
タグとリンクは、勘定科目階層の外で取引をグループ化するために取引に付ける2つのラベルです:#で始まるタグは#trip-japanのようなテーマを示し、^で始まるリンクは^invoice-2026-014のような関連エントリを結び付けます。タグは「このカテゴリのすべてを表示」という質問に答え、リンクは「この1つのイベントに属するエントリを表示」という質問に答えます。どちらもFavaでフィルタリングでき、BQLでクエリできます — フィルタリングと検索を参照してください。
取引 (Transaction)
取引とは、日付を持つ経済事象とそれを記録する転記のセットであり、最も頻繁に書く指令です。フラグ(*は確定、!は要確認)、オプションの支払先、摘要、そしてウェイトの合計がゼロになる2つ以上の転記を持ちます。Beancountファイル内の他のすべては、取引を宣言、チェック、注釈するために存在します。
2026-02-14 * "Blue Bottle" "Coffee with Dana"
Expenses:Food:Coffee 9.50 USD
Assets:US:BofA:Checking -9.50 USDまだ言葉で行き詰まっていますか? ヘルプセンターにはこのサイトのすべてのガイドが索引化されており、チートシートには各指令の構文が並べて掲載されています。