売掛金の理解(Beancount ガイド)
顧客に請求書を発行するビジネスを運営している なら、誰がいくら支払うべきかを確実に把握できる仕組みが必要です。ここで登場するのが売掛金(AR)です。単なるレポート上の数字ではなく、キャッシュフローの命脈です。
本ガイドでは、売掛金とは何か、なぜ重要なのか、そしてプレーンテキスト会計システムである Beancount を使って正確かつ明快に管理する方法を解説します。
TL;DR
売掛金(AR) は、すでに商品やサービスを提供したにもかかわらず、顧客がまだ支払っていない金額です。これは貸借対照表上の 流動資産 であり、発生主義会計の中心であり、ビジネスのキャッシュフローを左右する重要指標です。Beancount では顧客サブアカウントを使い、^links
で請求書と支払いを紐付け、シンプルなクエリで管理できます。回収速度を測る指標として AR 回転率 と 売上債権回転日数(DSO) を算出し、リスク管理には 貸倒引当金 を利用します。
売掛金とは?
定義
売掛金は、商品やサービスを提供したが顧客からまだ支払われていない金額の残高を 表します。発生主義会計 では、現金の受領時ではなく、収益が発生した時点で認識します。その結果、売掛金は企業の貸借対照表上の 流動資産 として計上されます。
重要性
売掛金を効果的に管理することは、健全な流動性を保つ上で不可欠です。請求書の回収が早いほど、キャッシュコンバージョンサイクル(在庫やその他リソースへの投資が現金に変わるまでの期間)が短くなります。AR 回転率や DSO といった指標をモニタリングすれば、回収効率を可視化し、改善策を講じることができます。
売掛金と買掛金の一行比較
- AR = あなたに対して 支払われるべき 金額(資産)。
- AP = あなたが 支払うべき 金額(負債)。
ダブルエントリー会計における売掛金の流れ
概念的には、売掛金のライフサイクルは次のステップで構成されます。
- 請求書発行(クレジット販売):請求書を送付すると、資産(具体的には売掛金)が増加し、同時に
Income
(収益)を認識します。 - 現金回収:顧客が支払うと、
Assets:Bank
が増加し、Assets:AR
が減少します。総資産への影響はゼロですが、現金ポジションが改善します。 - 割引またはクレジット:早期支払い割引やクレジットメモを発行した場合、顧客の売掛金残高を減らし、割引費用または収益の減少(contra‑revenue)で相殺します。
- 貸倒:すべての請求書が回収できるわけではありません。そこで 貸倒引当金(売掛金の価値を減少させる contra‑asset)と対応する 貸倒費用 を計上します。その後、特定の回収不能請求書を引当金から償却します。
Beancount での AR モデリング
Beancount はプレーンテキストのダブルエントリー会計システムで、売掛金の追跡に最適です。#
で始まる タグ、^
で始まる リンク、そして SQL ライクなクエリ言語 bean‑query
により、AR プロセス全体を透明・監査可能・スクリプト化できます。
推奨アカウント構造
整然とした勘定科目表が基盤です。以下は一例です。
Assets:AR
Assets:AR:Clients:<Name>
Assets:AR:Allowance ; 貸倒引当金(contra‑asset)
Income:Sales
Income:Contra:SalesDiscounts ; 費用科目の代わりに使用できる
Expenses:SalesDiscounts
Expenses:BadDebt
1. クレジット販売(請求書発行)の記録
顧客に請求書を送付したら、以下のように記帳します。
2025-07-01 * "Acme Co." "Invoice 2025-045 · Web design" ^INV-2025-045 #ar #client:acme
invoice: "2025-045"
due: "2025-07-31"
document: "/invoices/2025/INV-2025-045.pdf"
Assets:AR:Clients:Acme-Co 1200.00 USD
Income:Sales -1200.00 USD
^INV-2025-045
リンク は、将来の支払いとこの請求書を結びつける一意の識別子です。document:
メタデータ により、Fava(Beancount のウェブインターフェース)で PDF へ直接リンクでき ます。
2. 全額支払いの記録
Acme Co. が全額支払ったら、売掛金残高を消去します。
2025-07-25 * "Acme Co." "Payment for INV-2025-045" ^INV-2025-045 #ar
Assets:Bank:Checking 1200.00 USD
Assets:AR:Clients:Acme-Co -1200.00 USD
同じ ^INV-2025-045
リンクを使うことで、請求書と支払いを明確に結びつけた監査証跡が残ります。
3. 部分支払いの処理
部分支払いの場合も手順は同じです。リンクがすべてを結びつけます。
2025-07-20 * "Acme Co." "Partial payment INV-2025-045" ^INV-2025-045 #ar
Assets:Bank:Checking 400.00 USD
Assets:AR:Clients:Acme-Co -400.00 USD
^INV-2025-045
に対するクエリを実行すれば、元の 1200 USD の請求書と 400 USD の支払いが表示され、残高は 800 USD となります。
4. 早期支払い割引の処理
例として、1000 USD の請求書に対し 2% の早期支払い割引を提供した場合です。
2025-07-10 * "Acme Co." "2% early-payment discount on INV-2025-046" ^INV-2025-046 #ar
Assets:Bank:Checking 980.00 USD
Expenses:SalesDiscounts 20.00 USD
Assets:AR:Clients:Acme-Co -1000.00 USD
ここでは 1000 USD の売掛金を全額消し、980 USD の現金受領と 20 USD の割引費用を計上しています。注:多くの帳簿では割引を contra‑revenue として扱いますが、規模が小さい帳簿では費用科目で処理する方がシンプルです。手法は一貫して使用してください。
5. 請求書への消費税(売上税)付加
消費税を徴収する場合、請求時に負債として記録します。
2025-07-01 * "Acme Co." "INV-2025-047 · Hardware + tax" ^INV-2025-047 #ar
invoice: "2025-047"
due: "2025-07-31"
Assets:AR:Clients:Acme-Co 1100.00 USD
Income:Sales -1000.00 USD
Liabilities:Tax:Sales -100.00 USD
1100 USD を請求し、1000 USD を収益、100 USD を税務当局への負債として認識しています。
6. 貸倒処理(引当金法)
GAAP では、引当金法が推奨されます。これは費用と収益を適切にマッチさせる手法です。
ステップ 1:引当金の設定(例:期末)
過去データに基づき、一定割合を貸倒引当金として見積もります。
2025-12-31 * "Allowance for doubtful accounts (2% of AR)"
Expenses:BadDebt 300.00 USD
Assets:AR:Allowance -300.00 USD
これにより、総売掛金の帳簿価額が 300 USD 分だけ減額されます。
ステップ 2:個別の回収不能請求書を償却
回収不能が確定したら、引当金と相殺します。
2026-03-05 * "Write-off INV-2025-049 for Insolvent Client" ^INV-2025-049 #ar
Assets:AR:Allowance 1200.00 USD
Assets:AR:Clients:Insolvent-Client -1200.00 USD
この取引は費用に影響しません。費用は引当金設定時にすでに計上済みです。
最小限のレポートとクエリ
Fava や bean‑query
を使えば、売掛金のスナップショットをすぐに取得できます。
顧客別未回収残高
SELECT account, SUM(position)
WHERE account '^Assets:AR'
GROUP BY account
ORDER BY account;
特定期間の AR アクティビティジャーナル
JOURNAL
WHERE account '^Assets:AR'
AND date >= 2025-07-01 AND date < 2025-08-01;
コア AR 指標(簡易計算式)
bean‑query
で必要な数値(期間売上、期首・期末 AR 残高)を抽出し、スプレッドシートやスクリプトで計算すると、帳簿はシンプルに保てます。
AR 回転率
期間中に平均売掛金を何回回収したかを示します。数値が大きいほど好ましい。
DSO(売上債権回転日数)
売上が現金化するまでの平均日数です。数値が小さいほど好ましい。
これらの指標で、請求書から現金への変換効率を把握できます。
シンプルな Beancount スターターファイル(コピー&ペースト)
; --- Accounts ---------------------------------------------------------------
1970-01-01 open Assets:Bank:Checking USD
1970-01-01 open Assets:AR
1970-01-01 open Assets:AR:Clients:Acme-Co
1970-01-01 open Assets:AR:Allowance
1970-01-01 open Income:Sales
1970-01-01 open Expenses:SalesDiscounts
1970-01-01 open Expenses:BadDebt
1970-01-01 open Liabilities:Tax:Sales USD
; ---------------------------------------------------------------------------
2025-07-01 * "Acme Co." "Invoice 2025-045 · Web design" ^INV-2025-045 #ar #client:acme
invoice: "2025-045"
due: "2025-07-31"
document: "/invoices/2025/INV-2025-045.pdf"
Assets:AR:Clients:Acme-Co 1200.00 USD
Income:Sales -1200.00 USD
2025-07-25 * "Acme Co." "Payment for INV-2025-045" ^INV-2025-045 #ar
Assets:Bank:Checking 1200.00 USD
Assets:AR:Clients:Acme-Co -1200.00 USD
運用上のベストプラクティス
- 一貫したリンク付け:請求書と支払いは必ず
^
リンクで結びつけ、Fava で簡単に追跡できるようにします。 - メタデータ活用:
document:
やinvoice:
、due:
などのメタ情報は、レポート作成や期日管理に非常に有用です。 - 定期的なレビュー:月次または四半期ごとに
bean‑query
で AR 残高を抽出し、回転率・DSO を計算してキャッシュフローリスクを早期に検出します。 - 引当金の適切な設定:過去の回収実績に基づき、合理的な貸倒引当金を設定し、予期せぬ貸倒損失を平準化します。
- 自動化:スクリプトや CI パイプラインに
bean‑query
を組み込み、定期レポートを自動生成すると、手作業ミスを防げます。