Reiad's Library
Case study · Credit risk · Stress testing

What a recession does to a loan book, from the macro path to the capital ratio.

Unemployment, growth, rates, the exchange rate and collateral prices go in. Default rates, provisions and the capital ratio come out, through a Merton model and a vintage hazard model running side by side on the same book. The gap between the two is on the page, because that gap is the model risk, and a stress test that reports one number has not measured less uncertainty, it has just stopped showing it.

CET1 ratio at the trough

Scenario severityStandard deviations from normal, at the worst quarter
Peak default rateWhole book, annualised, against today
Three-year credit lossCumulative, as a share of exposure
Peak provision chargeIn one quarter, BDT crore
Peak stage 2Of the performing book, on lifetime allowance
Headroom at the troughAgainst the 7.0% requirement
The capital ratio through the scenarioCET1, against the 7.0% requirement

The scenariodotted is where it started

The book being tested

Seven segments, because the whole exercise turns on them behaving differently. A mortgage and a credit card do not default for the same reason, do not recover the same way afterwards, and do not attract the same capital, and a stress test run on a single portfolio-average borrower gets all three of those wrong at once.

Correlation is Basel's, by exposure class: fixed at 0.15 for mortgages and 0.04 for revolving retail, and a function of the default rate for everything else. It is the share of a borrower's fortunes that is the economy's rather than its own, and it is what decides whether a bad year is a bad year for one borrower or for all of them at once.

From a macro path to a default rate

A borrower defaults when what it owns is worth less than what it owes. Write the change in what it owns as one piece everybody shares and one piece that is its own:

Ai = √ρ · Z + √(1 − ρ) · εi

Z is the economy, in standard deviations. Default is Ai falling below a threshold, and the threshold that reproduces a long-run default rate PD is Φ⁻¹(PD). Hold Z fixed and ask what fraction defaults, and the whole model is one line:

PD(Z) = Φ[ (Φ⁻¹(PD) − √ρ · Z) / √(1 − ρ) ]

So the entire macro half of a stress test is the job of turning six economic series into one number, Z. Here each variable's distance from where it started is divided by its own standard deviation and weighted by what that variable does to that segment. The weights sum to one, which fixes the scale: a scenario where everything is two standard deviations bad is a shock of exactly two, in every segment. Segments differ in which variables hurt them, not in how loudly a shock speaks.

The starting point is not zero

The long-run average default rate is not the rate of a typical year. Default rates are right-skewed: a few terrible years pull the average above the median, so the year that actually produces the average rate is already a mildly bad one, at on this scale. Starting a stress test from Z = 0 quietly assumes the book is currently running better than its own long-run experience, and the base case then shows provision releases in a year where nothing has happened. That was the first version of this model, and the base case printing a profit is what gave it away.

Default rate by segmentannualised, point in time

The same question, asked from the book instead

The second engine never mentions asset values. It says a loan's default rate depends on how old it is, which cohort wrote it, and what the economy is doing now:

hazard(age, vintage, t) = lifecycle(age) · quality(vintage) · eγ·s

Loans default on a hump: quiet in the first months, worst somewhere between one and three years depending on the product, tailing off after. A book written in a boom is a worse book and stays worse for its whole life. Both of those come off the book itself and neither is a forecast; only the last term is.

Cumulative default rate by months on book

Solid to today, dashed after: the dashed half is this scenario, not a record of anything. The lines separate before the scenario starts, which is the cohort effect and not the macro one: the 2022 book was written into a boom at looser standards and it is still paying for it.

Where the two engines disagree, and why that is the finding

The two links are tied together at two points: no shock at all, and a one-standard-deviation shock. Everything they do after that comes from the shape of the link and nothing else, a probit against a log. The log has no ceiling and the probit does, so past two standard deviations the hazard model is the more pessimistic of the pair.

Portfolio default rate, both enginesMertonVintage hazard

Two different disagreements

Loss given default is not a constant, and neither is exposure

A lender that can seize collateral worth C against an exposure of 1 loses max(0, 1 − C net of selling costs). That is a put option struck at the exposure, so the loss given default of a secured segment is the expected value of a put across borrowers whose coverage varies:

LGD = Φ(−d₂) − F · Φ(−d₁), d₁ = (ln F + σ²/2) / σ, d₂ = d₁ − σ

The level is not the interesting part, since σ is solved so that the formula reproduces each segment's stated loss given default when prices have not moved. The shape is. A well-secured book has a low delta: the first few per cent off collateral cost almost nothing, because the cushion absorbs them. Keep going and the loss accelerates, into exactly the quarter the default rate is peaking. Holding loss given default constant through a stress test is holding an option's value fixed while its underlying moves.

Loss given default against collateral pricesthe option, and where this scenario sits on it
Default rate and loss given default, togetherboth rise in the same quarter

Exposure moves too. A borrower heading for default draws what is still available on a revolving line first, so the exposure at default on cards, working capital and corporate limits is above the balance showing today. That is what the credit conversion factor is for, and it is the one input in a stress test that is reliably underestimated because it cannot be seen on the balance sheet at all.

IFRS 9, and the cliff nobody put there on purpose

Under IFRS 9 a performing loan carries twelve months of expected loss until its credit risk has increased significantly, at which point it carries the loss expected over its whole remaining life. For a five-year mortgage that is a step change of several times, applied to a loan that has not missed a payment.

The share of a book that has crossed the line is not assumed here, it is derived. Individual loans deteriorate by different amounts around the segment average; take the spread as lognormal and the share past a trigger is one evaluation of Φ:

stage 2 share = Φ[ (ln R − ln k) / σ ]

R is how far the average loan's default rate has risen and k is the trigger. When R reaches k, half the book moves at once. That is the cliff, and it falls out of the arithmetic rather than being put in by hand.

The book by stage, and what it costsStage 1Stage 2Stage 3

Two conventions worth stating, because they move the answer more than most of the sliders. Lifetime probability of default follows the scenario for as long as the scenario runs and then reverts to the long-run rate, rather than holding today's stressed rate flat for five years: assuming a recession lasts forever is not prudence, it is a different forecast, and it roughly doubled the peak charge when this model did it. And the allowance is undiscounted, which overstates it by a few per cent.

Capital: losses, and the same loans measured as riskier

The capital requirement is not a different model. It is this one, read at a fixed severity:

K = LGD · Φ[(Φ⁻¹(PD) + √ρ · Φ⁻¹(0.999)) / √(1 − ρ)] − PD · LGD

which is the conditional default rate at Z = −3.09, the economy a one-in-a-thousand year would produce, less the expected loss that provisions are already meant to cover. Capital is for the difference. So the capital rule and the stress test are the same equation read at two severities, and this scenario can be placed on the same axis as the rule.

This scenario against the capital rulethe same severity axis

Why the ratio movedbasis points, at the trough

Which PD belongs in a risk weight

Basel's probabilities of default are meant to be long-run averages, so on a strict reading a risk weight should not move with the cycle at all: only the downturn loss given default should. In practice ratings migrate, so measured default rates do rise in a downturn and risk weights rise with them, and the same loans, unchanged, consume half as much capital again. That is the procyclicality argument, and it is a switch above rather than a buried assumption because the gap between the three settings is a result.

The question a supervisor actually asks

Not "what happens in this scenario". That one has an answer above. The harder question is which scenario breaks the bank, and it is answered by inverting the model rather than running it: bisect on the severity of the whole macro path until the capital ratio lands exactly on the requirement.

Breaks at

Stated in unemployment because that is the variable people have an intuition about, but the multiple applies to the whole path: growth, rates, inflation, the exchange rate and collateral prices all move with it. A reverse stress test that moves one variable alone finds a much larger number and a much less useful one.

What is actually driving the answer

One variable at a timethree-year loss, BDT crore

Trough capital ratiounemployment against transmission

Green passes the 7.0% requirement, amber fails it. Every cell is a complete twelve-quarter run over all seven segments, not an interpolation between the corners. Click one to adopt it.

Run this on a real book

Five columns: a segment name, exposure, probability of default, loss given default, and which of the four Basel treatments it takes. Percentages or decimals, either way. Everything else, the macro sensitivities, the seasoning curve, the vintage mix, comes from the shipped segment of the same kind. Nothing is uploaded: the parsing and the model run in your browser, and the file never leaves your machine.

or drag one here, or paste below

What this is not, ranked by how much it matters

1 · The transmission is the weak point

Six weights, and no regression behind them

In a real engagement the macro weights come from a regression of segment default rates on macro series, with the diagnostics attached and the out-of-sample record shown. Here they are set by hand to sensible values. That is the honest weak point of the whole page, and it is why the transmission dial is the first slider rather than a hidden constant.

2 · One factor, not many

Everything correlated through a single Z

A one-factor model cannot express a shock that hits construction and spares textiles. Segments differ in their sensitivity here but not in what they are sensitive to, so a genuinely sectoral scenario needs a multi-factor version of the same arithmetic.

3 · The balance sheet is static

The bank does not react

It does not shrink the book, sell a portfolio, cut costs, raise equity or stop lending. That is the supervisory convention, and it makes this a test of the book rather than a forecast of the business. Management actions are what the second half of a real exercise is about, and they belong in a separate layer rather than mixed into this one.

4 · The book is synthetic

Composite in shape, nobody's filed accounts

The segment mix, default rates, collateral coverage and capital position are in the region a mid-sized private commercial bank occupies. They are not any bank's numbers, which is why the CSV panel exists: the method is the part that transfers.

5 · Credit only

No market, operational or liquidity risk

A real exercise adds trading losses, operational risk events and a funding squeeze, and in an emerging market the funding squeeze is often the part that actually arrives first. This page stops at the loan book.

6 · The capital walk is simplified

Deferred tax, minorities and Tier 2 left out

Only common equity and the credit charge move. A real capital plan carries deferred tax assets whose recognition changes exactly when it hurts, and an add-back for provisions above expected loss that softens the fall.

Two engines, kept honest by each other

A structural model and a hazard model, calibrated to agree at two points and left to diverge everywhere else. Where they part company is where the answer stops being a fact and starts being a modelling choice, and that number is printed rather than picked between.

The capital rule is the same equation

The IRB formula is this model read at a one-in-a-thousand year economy. Building both out of one function means the scenario can be placed on the same severity axis as the rule that sets the requirement, instead of being described as "severe" and left there.

Loss given default is an option

Recovering out of collateral is a put struck at the exposure, so a price fall bites slowly and then quickly. The dispersion is solved to reproduce each segment's stated loss given default at today's prices, so the level is preserved and only the response to the scenario is modelled.

The provision cliff is derived

The share of the book on lifetime allowance comes out of a distribution of loan-level deterioration against a trigger, which is one evaluation of Φ. Nothing about the cliff is asserted, which is why it moves properly when the trigger or the spread moves.

Reversible, not just runnable

Bisecting the whole model to find the scenario that lands exactly on the requirement is the question a supervisor asks and a board understands. It costs forty full runs of the model and returns in under a tenth of a second, which is the argument for a DOM-free engine.

168 checks on the engine

Basel's own published risk weights, the normal distribution against printed quantiles, the conditional default rate integrated over the cycle to see whether it gives the long-run rate back, exposure conservation, the provision identity, and the reverse stress test put back through the model to see whether it lands where it said it would.

A synthetic loan book, composite in shape rather than copied from any bank's accounts, and not a forecast of, or advice about, any institution or security. The scenarios are illustrative and are not anyone's published projections. What is on display is the method: the same structure I build for a real book, with a client's own segments, their own macro history and their own capital position.
Working together

Need a stress test that survives a supervisor?

Scenario design, PD and LGD modelling, IFRS 9 staging, capital projection and reverse stress testing, in Excel or Python, with the assumptions in one place and every convention stated on the page rather than in a footnote.