Seeing inside the black box: ALM, deposit and CECL models brought in-house at a mid-size US bank
A nationally chartered bank in the Midwest with roughly $7 billion in assets and a treasury team of five.
- Scale
- ~$7B in assets, ~1,150 staff, 2 parallel-run quarter-ends, 40+ rate scenarios, 14 years of deposit history
- Engagement
- Roughly 40 weeks from discovery to handover, then a quarterly support retainer
The challenge
The bank outsourced interest-rate-risk, deposit and CECL analytics. Each quarter it sent data out and got PDF reports back about three weeks later, with assumptions it could not inspect. After the regional-bank failures of March 2023 the asset-liability committee could not quickly answer what would happen to economic value of equity (EVE) and net interest income if deposit betas came in well above the vendor's default. CECL came from a second vendor with different prepayment assumptions, so the same loans had two expected lives.
For a bank of this size the asset-liability model is one of the most consequential pieces of software it uses, and many banks rent it. This one sent data tapes to a specialist vendor each quarter and received PDF reports about three weeks later. Treasury could not see the assumptions behind the numbers, could not run its own scenarios between quarter-ends, and paid for every custom analysis. After the March 2023 failures, the committee wanted to know what a deposit beta fifteen points above the default would do to EVE, and nobody could answer quickly.
The supervisory side added pressure. Under SR 11-7 and OCC Bulletin 2011-12, a model has to be developed, validated and governed with documentation an examiner can follow, including sensitivity testing of the assumptions that matter. Vendor defaults for deposit decay and beta were industry averages, not the bank's own behavior, and CECL used a second vendor's prepayment speeds. Our team rebuilt the analytical stack on published methods and open-source libraries and fed it the bank's own instrument-level data, without using any vendor's proprietary code or report layouts.
The engine is a Ho-Lee term-structure model calibrated to today's Treasury and SOFR curves, with a Hull-White volatility fit for option-sensitive instruments, on QuantLib and the Open Source Risk Engine. Behavioral models sit on top: prepayment and default hazards fitted on public GSE loan-level data and recalibrated to the bank's portfolio, and non-maturity deposit decay and asymmetric betas fitted on fourteen years of account-level history. Peer data from FFIEC call reports steadies the thin products. EVE, net interest income, key rate durations, liquidity runoff and CECL all run on one cash-flow engine.
Deposit behavior was the finding that changed the answer. The bank's money-market beta in the 2022 to 2023 cycle ran well above the vendor default, and its savings balances decayed more slowly. Together these changed the answer. For a 200‑basis-point rise, EVE fell about 9.4 percent in the in-house model against 4.3 percent in the vendor report, and the 12‑month NII gain from the same rise shrank from 3.2 percent to 0.9 percent. In a 200‑basis-point fall the gap was smaller: EVE rose 2.6 percent against 1.1. The bank took it to its examiners on its own initiative. The numbers in this illustrative case are modeled, not measured, but the lesson is general: pricing math is published and takes weeks, while behavior takes months and decides the result.
Trust came from a parallel run. For two quarter-ends the new models ran beside the vendor, and base-case EVE agreed within 1.9 percent, every difference above one percent of EVE got a written explanation, and an independent validator reviewed the lot. Only then did the bank's staff run a close unaided and let the vendor contract lapse. Everything runs inside the bank's own tenancy with role-based access, version control and reproducible outputs, so any past committee number can be recreated for an auditor. Public data supplies nearly everything except option volatility, which needs one modest market-data license.
What our team delivered
- A data layer fed by instrument-level extracts from the core, loan and deposit systems, reconciled to the general ledger and call report
- A term-structure engine (Ho-Lee, with a Hull-White volatility calibration), built on QuantLib and the Open Source Risk Engine and priced off the Treasury and SOFR curves
- Behavioral models fitted on the bank's own history: mortgage prepayment and default hazards, non-maturity deposit decay, and asymmetric rising and falling deposit betas
- EVE and net interest income simulation: parallel shocks, the Basel interest-rate-risk-in-the-banking-book shocks, historical replays and deposit-beta stress tests
- CECL lifetime loss on the same cash-flow engine, conditioned on published Federal Reserve scenarios and professional-forecaster paths
- Public inputs wherever they exist: Treasury, Federal Reserve, New York Fed, FRED, FHFA, FDIC, FFIEC and NCUA call reports and the GSE loan-level datasets
- A parallel run beside the vendor for two quarter-ends, with a written explanation for every difference above one percent of EVE
- Independent validation under model-risk guidance, version-controlled models with two-person approval, and everything inside the bank's own cloud tenancy
Result
The committee package is ready 6 business days after quarter-end instead of 19, scenarios grew from 9 to more than 40 a quarter, ad-hoc scenarios run the same day, and every parameter and its data lineage are visible to treasury and examiners. The bank's own deposit behavior moved its rate sensitivity noticeably, which it presented to examiners itself. Figures are modeled; the pattern holds: the hard part is behavior, not mathematics, and a parallel run builds trust.
From public data to the ALCO package
Public market and regulatory data is combined with the bank's own instrument-level extracts in a private data store, reconciled to the general ledger, run through a QuantLib and ORE cash-flow engine, and delivered to the Asset Liability Committee as EVE, NII and CECL results with every assumption visible.
The same rate shock, two answers
Sensitivity of a bank's economic value of equity (EVE) and net interest income (NII) to a 200 basis-point rate move, from the vendor model and from an in-house model with deposit betas fitted to the bank's own account history. EVE is the present value of assets minus liabilities; NII is the interest earned minus interest paid over the next 12 months. The in-house model shows more value at risk when rates rise, because the bank's deposits reprice faster than the vendor default assumed. Illustrative parallel-run figures.
Separate by region and by business unit
Each business unit lives in its own VRF and VLAN in every region, so a problem in retail cannot reach finance. Traffic between units has to pass a firewall that denies by default and allows only what is written down.
Facing something similar?
Tell us about your environment. We will tell you plainly what we would do and what it would take.