銀行エンジニアリング 09:顧客の100万円預金は、銀行にとって何か
一般の会社にとって預金は「自分の資産」ですが、銀行にとって顧客の預金は「返す義務(負債)」です。1件の預金が仕訳から貸借対照表まで届く流れを、MiniBank v10の銀行会計で追います。
v8以降に実装した台帳・記帳エンジンなどを実際に動かし、正常時と異常時の両方から銀行システムの構造を学ぶ。
Prerequisite: BANKING SYSTEMLEARNING GOALS
このページで学ぶこと
- 一般企業の経理と銀行会計の見え方の違い
- 預金が資産と負債の両方に表れる理由
- Customer Transaction → Ledger → GL → 試算表 → BS / PL の流れ
PLAIN LANGUAGE
まず、ここだけつかむ
顧客の預金は、銀行にとって返す義務のある負債です。
預金を受け入れると、資産(現金など)と負債(普通預金)が同じ額だけ増え、利益は生まれません。
MiniBankのGLは、v7/v8の仕訳を勘定科目で集計したもので、別の帳簿ではありません。
DIFFICULT PARTS, STEP BY STEP
難しいポイントを、順番にほどく
専門用語を覚えることより、「なぜ必要か」「このシステムのどこで使うか」を理解することが目標です。
Chart of Accounts(勘定科目表)
決算書に使う科目の一覧です。
細かい勘定を報告用の単位にまとめるためです。
gl.accounts(11科目)と gl.account_map。
負債としての預金
顧客に返す義務です。
預金は銀行のお金ではなく預かり物だからです。
2100 普通預金・2200 定期預金。
GL(総勘定元帳)
科目ごとに仕訳を集計した帳簿です。
銀行全体の状態を少ない科目で把握するためです。
gl.trial_balance() が仕訳から集計します。
Level 1 基礎:同じ100万円、立場で意味が変わる
銀行の貸借対照表(BS)では、預金を受け入れると「現金(資産)」と「普通預金(負債)」が同じ額だけ増えます。預金が増えても銀行がそのぶん儲かったわけではありません。
| 立場 | 100万円の預金は | 帳簿の側 |
|---|---|---|
| 預けた会社・個人 | 銀行に預けてある自分のお金=資産 | 借方(資産) |
| 預かった銀行 | いつでも返さなければならないお金=負債 | 貸方(負債) |
| 銀行が受け取った現金 | 銀行が持っている資産 | 借方(資産) |
Level 2 銀行業務:1件の預金を決算書まで追う
- 01Customer Transaction(100万円の入金)
- 02Posting(会計ルール CASH_DEPOSIT_STANDARD)
- 03Ledger(SYSTEM_FUNDING と顧客の預金勘定)
- 04General Ledger(1000 現金 / 2100 普通預金)
- 05Trial Balance(借方合計=貸方合計)
- 06Balance Sheet(資産=負債+純資産)
| 段階 | 借方 | 貸方 |
|---|---|---|
| 仕訳(Ledger) | SYSTEM_FUNDING 1,000,000 | 顧客の預金勘定 1,000,000 |
| 勘定科目(GL) | 1000 現金 1,000,000 | 2100 普通預金 1,000,000 |
| BS | 資産 +1,000,000 | 負債 +1,000,000 |
Level 3 システム:MiniBankでの実装
- v10は別の会計システムを作らず、v7/v8の仕訳(ledger.journal_lines)を勘定科目(gl.accounts)へ集計する
- 顧客ごとの預金勘定はすべて 2100 普通預金にまとまり、SYSTEM_FUNDING は 1000 現金、CENTRAL_BANK_SETTLEMENT は 1100 中央銀行預け金になる(gl.account_map)
- DBテストで、100万円の入金により 1000 と 2100 がそれぞれ1,000,000増え、BSの資産=負債+純資産が保たれることを確認している
異常時:勘定科目に対応しない勘定がある
| 段階 | 内容 |
|---|---|
| 症状 | 試算表の借方合計と貸方合計がずれる/締めが ALL_LEDGER_ACCOUNTS_MAPPED で止まる |
| 原因 | 新しい勘定を追加したのに gl.account_map へ対応を登録していない |
| 対応 | 対応を登録する。仕訳は正しいので、仕訳側を直す必要はない |
| 再発防止 | 補助元帳照合の unmapped_ledger_accounts を監視し、締めのブロック条件にしている |
Level 4 アーキテクチャ:会計は「もう1つの帳簿」ではなく「見方」
仕訳を二重に持つと、どちらが正しいかという新しい問題が生まれます。MiniBankは記録(仕訳)を1つに保ち、勘定科目への対応表で見方を変えることで、業務システムと会計の数字が構造的に一致するようにしています。
どこを確認すればよいか
- 管理画面「銀行会計・締め」:BS・PL・試算表
- 勘定科目のリンク:その科目に集計される勘定と最近の仕訳
CHECK YOUR UNDERSTANDING
3問で理解チェック
答えを頭の中で考えてから、各項目を開いて確認してください。
Q1100万円の預金を受け入れると、銀行の利益はいくら増えますか?
増えません。資産と負債が同額増えるだけです。
Q2MiniBankの 2100 普通預金の中身は何ですか?
顧客ごとの預金勘定の合計です。
Q3v10は仕訳を別に持っていますか?
持っていません。v7/v8の仕訳を集計しています。
完全に暗記する必要はありません。大切な考え方を説明できそうなら押してください。
SOURCE TRAIL
根拠と関連教材
CURRENT IMPLEMENTATIONは確認したrepository内の実装です。HISTORICAL IMPLEMENTATIONは導入・修正の履歴で、後続migrationによる再定義があり得ます。RELATED LESSONは教材への案内で、実装の一次Sourceではありません。ASSUMPTIONは仮定、UNKNOWNは未確認を表します。
確認基点: d02eae8914f39cbf06bfe422dc39c71886f82b3e / 2026-09-11。稼働環境への適用確認: UNKNOWN。パス実在の自動検査と、記述した技術的事実の確認は別です。
Implementation Status: IMPLEMENTED IN MINIBANK(この教材が扱うコードの範囲)
- RELATED LESSON/docs/accounting銀行取引と会計(v7)
- RELATED LESSON/docs/be-ledger-foundation借方と貸方
- CURRENT IMPLEMENTATION
supabase/migrations/20260924120000_v10_bank_accounting.sqlgl.gl_code_for / gl.movementsLedger勘定から勘定科目への対応 - CURRENT IMPLEMENTATION
supabase/migrations/20260924120000_v10_bank_accounting.sqlgl.trial_balance / gl.balance_sheet / gl.profit_and_loss試算表・BS・PL(仕訳を勘定科目で集計) - CURRENT IMPLEMENTATION
scripts/banking/v10-accounting.test.mjsBS/PL、補助元帳差異の検出、仮受金、締めのDBテスト