銀行エンジニアリング 42:entity ごとの予測・連結・リスク・実績との差
複数の法人があるとき、予測は entity ごとに作り、連結は報告上の差し引きにとどめます。予測の期末の状態を v18 のリスクの式に渡し、いまの実績との差は別の欄で示します。
v8以降に実装した台帳・記帳エンジンなどを実際に動かし、正常時と異常時の両方から銀行システムの構造を学ぶ。
Prerequisite: BANKING SYSTEMLEARNING GOALS
このページで学ぶこと
- entity 別の予測と連結後の予測
- リスクへの接続
- 実績との差の読み方
PLAIN LANGUAGE
まず、ここだけつかむ
予測は entity ごとに作り、連結は報告上の差し引きにとどめます。
予測の期末の状態を、v18のリスクの式にそのまま渡します。
実績と予測の差は別の欄に出し、予測を実績に寄せて直しません。
DIFFICULT PARTS, STEP BY STEP
難しいポイントを、順番にほどく
専門用語を覚えることより、「なぜ必要か」「このシステムのどこで使うか」を理解することが目標です。
集計レベルの元帳
顧客口座や契約を持たず、科目の残高だけを持つ元帳です。
追加の entity は模型が動かせる範囲が限られることを表すためです。
現金だけが政策金利で利息を稼ぐ。
リスクへの接続
予測の状態を、リスクの式に渡すことです。
予測とリスクで別々の式を持たず、数字を食い違わせないためです。
risk.credit_calc、risk.alm_calc をそのまま使う。
感応度
パラメータを少し動かしたときの結果の変化です。
結果がどの仮定に頼っているかを知るためです。
各パラメータを20%動かして再計算する。
Level 1 基礎:法人ごとの予測を、合算して見る
グループ全体の予測は、法人ごとの予測を足し合わせ、グループ内の貸し借りを差し引いて作ります。法人ごとの予測を先に作るのは、どの法人の数字が全体を動かしているかを見るためです。
Level 2 銀行業務:MiniBankの範囲
- 基準の銀行(MINIBANK)は、9段階の全体を模型で動かす
- 追加の entity(v19)は集計レベルの元帳なので、模型が動かせるのは現金だけ。現金は政策金利で利息を稼ぐ。ほかの科目は動かさない
- 連結は、v19と同じく、双方が一致するグループ内の債権・債務、受取手数料・支払手数料の小さい方だけを差し引く。差し引く金額は、予測の間、実績のまま変わらない
Level 3 システム:MiniBankでの実装
- ベースラインには全 entity の試算表と、bankgroup.reconcile の相互勘定の組(pairs)を凍結する
- 予測の entity ごとの試算表は、実績の行に模型の動きを足して作る。実績に無い科目(短い勘定表の entity の4100など)は、コードから区分を決めて足す
- リスクへの接続(段階9):予測の期末の貸出のうち既存分は区分ごとの比率のまま返済で縮め、新規貸出はすべて CURRENT として risk.credit_calc に、期末の状態を risk.alm_calc に渡す。パラメータはベースラインに凍結した v18 の承認済みの版。v18の式を twin が自分で持たないので、二つの数字は食い違わない
- twin.vs_actual は、実績(凍結時)・実績(いま)・予測(1か月目と期末)を別の欄で返し、差は『いまの実績 − 1か月目の予測』として示す。予測を実績に合わせて直すことはしない
異常時:予測と実績がずれた
| 段階 | 内容 |
|---|---|
| 症状 | 『いまの実績 − 1か月目の予測』の差が大きい |
| 確認1 | ベースラインの営業日と、いまの営業日の間に何日あるか(差は時間の経過も含む) |
| 確認2 | その間に大口の取引・障害・営業日の締めがなかったか(実績側の理由) |
| 確認3 | 感応度の表:どのパラメータに結果が敏感か(模型側の理由)。仮定を見直すなら、新しい版を提案して別の管理責任者が承認する |
Level 4 アーキテクチャ:差を隠さない
予測は外れるものです。外れたときに、予測をあとから実績に寄せて直すと、模型の精度が測れなくなります。MiniBankは、予測を追記専用で残し、差を別の欄に出すことで、模型の仮定を見直す根拠を残します。
どこを確認すればよいか
- 管理画面『Digital Twin』の『実績と予測』『いまの実績との差』『リスクへの接続』『模型の感応度』
- テスト:entity と連結、v18の式との一致、実績と予測の分離
CHECK YOUR UNDERSTANDING
3問で理解チェック
答えを頭の中で考えてから、各項目を開いて確認してください。
Q1連結で差し引くのは?
双方が一致するグループ内の貸し借り・手数料の小さい方だけです。
Q2予測が外れたら、予測を直しますか?
直しません。差を別の欄に出し、仮定の見直しは新しいモデルの版として提案します。
Q3リスクの式は、twin が持っていますか?
いいえ。v18の式を呼びます。
完全に暗記する必要はありません。大切な考え方を説明できそうなら押してください。
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/be-group-consolidation連結(v19)
- RELATED LESSON/docs/be-risk-stress-decisionsリスクの比較と決定(v18)
- CURRENT IMPLEMENTATION
supabase/migrations/20260930160000_v20_twin.sqltwin.vs_actual予測と、いまの実績を別の欄で並べる(予測は書き換えない) - CURRENT IMPLEMENTATION
supabase/migrations/20260930160000_v20_twin.sqltwin.sensitivity各パラメータを20%動かしたときの結果の変化 - CURRENT IMPLEMENTATION
supabase/migrations/20260930160000_v20_twin.sqltwin.propose_model / twin.decide_modelモデルのパラメータの版は、提案者とは別の管理責任者が決裁する - CURRENT IMPLEMENTATION
scripts/banking/v20-twin.test.mjs手計算の1か月・因果・シード値の再現・恒等式・entity と連結・元帳の不変・決裁のDBテスト