Double-entry bookkeepingを有向グラフで表現
(matheusportela.com)以下は、会計をグラフの観点から説明した記事の要約です。
基本概念の紹介
- 会計(Accounting)の核心は、数えて測定できるものを時間に沿って追跡することです。現代の会計は主にお金を追跡することに関心があります。
- 台帳(Ledger)は仕訳(Entry)の集まりです。
- 仕訳は、勘定(Account)で発生した取引を記録したものです。
- 勘定の残高(Balance)は、特定時点の勘定にある金額です。
単式簿記(Single-Entry Bookkeeping)
- 単式簿記は、各勘定ごとに個別の台帳を持ち、一度に1つの勘定に影響する取引を記録するシンプルな仕組みです。
- 単式簿記では残高だけを更新するため、勘定の残高変動の履歴を追跡しにくくなります。
複式簿記(Double-Entry Bookkeeping)
- 複式簿記は、取引を複数の仕訳として記録する会計システムです。
- 仕訳は借方(Debit)と貸方(Credit)で構成されます。
- 借方は勘定に入ってくるお金を表します。
- 貸方は勘定から出ていくお金を表します。
- 取引(Transaction)は、複数の勘定に影響する関連仕訳をグループ化したものです。
- 複式簿記の基本原則は、すべての取引で借方と貸方の合計が等しくなければならないということです。これにより、システム全体の総額は取引後も一定に保たれます。
グラフで複式簿記を理解する
- 複式簿記は有向グラフ(Directed Graph)としてモデル化できます。
- 勘定はグラフのノード(Node)です。
- 貸方仕訳は、金額を伴ってこのノードから出ていく outgoing edge です。
- 借方仕訳は、他のノードへ流れる金額を伴う incoming edge です。
- 取引は、エッジ集合に対する条件(outgoing edge の合計 = incoming edge の合計)を適用したものです。
- 勘定の残高は、incoming edge の金額合計から outgoing edge の金額を引いた値です。
GN⁺の意見
- グラフの観点から複式簿記を理解するのは、会計の概念を直感的にする良いアプローチです。貸借対照表、損益計算書、キャッシュフロー計算書などが、このグラフの可視化にすぎないことに気づかされます。
- 資産、負債、資本、収益、費用といったカテゴリは単なるグラフ上のノード群であり、貸方や借方が残高を増やすのかを理解しやすくなります。
- このようなアプローチは、会計を開発者にとってより怖くなく、より理解しやすいものにする良い方法になり得ます。
- この文章の著者と同じく、私も視覚的に考えるのが好きなので、この説明はとても腑に落ちます。特に、複式簿記を学ぶときに混乱しがちな貸方/借方の概念をグラフで理解すると明快になります。
- Beancount、hledger などの plain text accounting ツールを使って、こうした概念を実際に適用してみることもできそうです。
1件のコメント
Hacker Newsのコメント
要約:
Double-entry bookkeeping について「Alice に1行、Bob に1行」といった説明は単純化しすぎで、肝心な点を見落としている。重要なのは、1つの取引について各当事者ごとに2つの記入が必要だということ。
会計は美しく、影響力が大きい。少数の公式と財務諸表だけで、あらゆる組織の状況を比較可能な形で表現できる。数学と言語の起源でもある。
「借方(Debit)」と「貸方(Credit)」という用語を捨てれば、複式簿記は理解しやすくなる。会計等式(資産=負債+資本)が常に成り立たなければならないことが核心だ。
取引履歴を保存し、勘定はそこから計算するほうが単純だ。銀行明細に慣れた勘定中心の発想から離れ、キャッシュフロー中心で考える必要がある。
David P. Ellerman は、「Pacioli group」と呼ぶものに基づく数学的な会計アプローチを提示している。
Double-entry bookkeeping を有向グラフとして見るのは興味深い視点だが、実務で役立つかは疑問だ。何百年も有用だった用語を変えるのは、混乱を増やすだけかもしれない.