純利益 101 — Beancountでの追跡方法
ビジネスを表す数値の中で、ひとつだけは他を圧倒します:純利益です。これは収益性の究極の指標であり、いわゆる「最終利益」です。しかしそれは実際に何を意味し、プレーンテキスト会計システムであるBeancountを使ってどのように正確に追跡できるのでしょうか?
では、分解してみましょう。
純利益の本当の意味
本質的に、純利益とはビジネスを運営するために必要なすべての支出(売上原価(COGS)、すべての営業費用、負債の利息、税金)を支払った後に残る金額です。
これは企業の財務健全性を示す最も明確な単一指標です。すべての関係者にとって重要な数値です:
- 貸し手 は、返済能力を測るために純利益を見る。
- 投資家 は、配当の源泉や成長に回せる資本として純利益を見る。
- 創業者 は、財務的なランウェイを把握し、戦略的な再投資計画を立てるために純利益に依存する。
純利益がプラスであれば利益が出ていること、マイナスであれば損失が出ていることを意味します。シンプルです。
基本式(必要な詳細レベルを選択)
純利益は粒度の異なる計算式で求められます。どの程度詳細に分析したいかで選びます。
- フル式:
Revenue – COGS – Operating Expenses – Interest – Taxes = Net Income
- 標準式:
Revenue – COGS – Expenses = Net Income
- 簡易式:
Total Revenues – Total Expenses = Net Income
コストに関するちょっとしたコツ: COGS と営業費用の違いは何か? COGS(売上原価) は製品やサービスの直接的なコスト(例:原材料、直接労務)を指します。 営業費用 はそれ以外の、事業を継続させるために必要な費用—給与、家賃、ソフトウェアサブスクリプション、保険など—を指します。
ミニ例
具体的にイメージしてみましょう。小さなコーヒーロースティング事業が先月以下の結果を出したとします。
項目 | 金額 | 例示元帳勘定 |
---|---|---|
売上収益 | $60,000 | Income:Sales |
COGS(グリーンコーヒー豆) | $20,000 | Expenses:COGS |
営業費用 | $18,000 | Expenses:Ops:* |
設備ローンの利息 | $1,000 | Expenses:Interest |
税金 | $1,000 | Expenses:Taxes |
フル式を使うと計算はシンプルです:
60,000 - 18,000 - 1,000 =
この事業は月間で実質的に $20,000 の利益を上げました。
Beancountでの記録方法
Beancount の構造はこの目的に最適です。アカウントを論理的に整理すれば、純利益は優れた簿記の副産物として自動的に算出されます。
- すべての収益 を親アカウント
Income
の下にタグ付けします(例:Income:Sales
、Income:Services
)。 - 費用を 分割 して直接費と間接費を区別します。直接費は
Expenses:COGS
、それ以外はExpenses:Ops:Salaries
やExpenses:Ops:Software
などのサブアカウントに振り分けます。 - 利息と税金はそれぞれ専用アカウント(
Expenses:Interest
、Expenses:Taxes
)に記録します。これにより、特に税務処理時の分析が格段に楽になります。 - 定期的に残高を確認 します。基本的な会計等式
Assets = Liabilities + Equity
が常に成り立つことを確認してください。
期間末(例:月末)には balance
アサーションを使って各アカウントの状態を確認できます。これらのエントリは実際に資金を移動させるものではなく、残高が あるべき 状態であることを宣言し、bean-check
が不一致をエラーとして報告します。
; 2025-07-31 Coffee Roaster Enterprises — July close
2025-07-31 balance Assets:Bank:Operating 42000.00 USD
2025-07-31 balance Expenses:COGS 20000.00 USD
2025-07-31 balance Expenses:Ops 18000.00 USD
2025-07-31 balance Expenses:Interest 1000.00 USD
2025-07-31 balance Expenses:Taxes 1000.00 USD
2025-07-31 balance Income:Sales -60000.00 USD
ワンライン純利益クエリ
ここが魔法の部分です。構造化された元帳があれば、単一コマンドで任意の期間の純利益を算出できます。
bean-query books.beancount \
"SELECT period, sum(number) WHERE account = '^(Income|Expenses)' \
AND year = 2025 GROUP BY month"
このクエリは 2025 年の Income
と Expenses
アカウントのすべての金額を合計し、月単位でグループ化します。Beancount では収益は負数、費用は正数で表されるため、結果は純利益の 負数 となります。
さらに便利なのは、手動でクエリを実行しなくてもよいことです。Beancount のウェブインターフェースである Fava は、Reports → Income Statement ビューで自動的にグラフ化してくれます。
自動化できる高速インサイト
元帳がテキストファイルだけなので、強力な自動化ワークフローを構築できます。
- 月次メールダイジェスト:
bean-report books.beancount income_statement > net-income.txt
を cron ジョブで実行し、毎月 1 日に生成されたテキストファイルを自分宛にメール送信します。 - 収益性アラート: Git の pre‑commit フックでクエリを走らせ、月初からの純利益がマイナスの場合はコミットを拒否 させ、赤字月を認識させます。
- シナリオモデリング: ビジネスのストレステストをしたいですか?
books.beancount
をscenarios/recession.bean
にコピーし、Income
エントリを 20% 減らして再度純利益クエリを実行すれば、影響を即座に確認できます。
主なポイント
- 純利益は真の最終利益です。プラスを保ち、時間経過でのトレンドを把握することが目標です。
- Beancount は計算式を明示的にし、検索可能でバージョン管理が可能です。隠れた計算式はありません。
- 整然としたアカウント構造と単一クエリさえあれば、ビジネスが本当に利益を上げているか常に把握できます。