Lesson 11.4: Stress tests, tail risk and liquidity
Stress tests, reverse stress tests, fat tails, crisis correlations, liquidity and jump risk: how to measure and limit the losses that value at risk cannot see.
By the end of this lesson you will be able to design historical, hypothetical and reverse stress tests, compute the loss of a portfolio under a scenario from its sensitivities, explain why fat tails and rising correlations make crises more damaging than a normal model says, describe how liquidity and funding turn a market loss into a survival problem, recognise the payoff profile of a strategy that hides jump risk, and set limits that act before a loss becomes fatal. You will show that a 230 million portfolio loses 66 million, or 28.9 per cent, in a 2008-style scenario, that a daily loss of 5 standard deviations should occur once in 13,800 years under a normal distribution and once in 3.8 years under a fat-tailed one, that in a strategy that earns a Sharpe ratio of 1.9 a one-day loss of 7 per cent is 16 times its 99 per cent VaR, and that a manager with no losses for two years is not evidence of safety. You should have read Lessons 2.2, 11.1 and 11.2. The mathematics is sensitivities and probabilities. This course is education about how markets and research work, not investment advice.
Lesson 11.2 ended with a warning: value at risk describes the edge of the tail, not what lies beyond it, and it relies on a model that may not survive a crisis. This lesson covers the tools that fill the gap. The first is stress testing, which asks "what happens to us if X occurs?" without assigning a probability. The second is a set of habits of thought about the tail: fat tails, correlations that move, liquidity that disappears, and strategies whose profits come from selling insurance. Together they are how risk teams prepare for days that no sample has contained.
Stress testing
A stress test revalues the portfolio under a specified scenario of market moves and reports the loss. It differs from VaR in three ways: the scenario is chosen, not drawn from a distribution; it can be as extreme as you like; and it forces you to look at specific positions. There are three families.
1. Historical scenarios. Replay the market moves of a past crisis on today's portfolio: October 1987 (the US stock market fell about 20 per cent in a day), the 1998 Russian default and LTCM collapse, the 2008 financial crisis, the March 2020 pandemic panic (US stocks fell about a third in five weeks, and the VIX volatility index closed above 80). The advantage is that the scenario really happened and everybody understands it. The weakness is that the next crisis will not be a repeat.
2. Hypothetical scenarios. Design a plausible shock that has not occurred: a sudden 200 basis-point rise in rates, a 40 per cent fall in oil, a default of a large counterparty, a currency devaluation, a cyber outage at an exchange. Risk teams build these from the portfolio's weak spots and from macro views. Because they can be tailored, they can reach risks that history has not yet produced.
3. Reverse stress tests. Start from an outcome that would be unacceptable, such as a loss that would breach a covenant or wipe out a quarter of the capital, and work backwards to find the scenarios that cause it. The question changes from "how much do we lose in a crisis?" to "what would it take to lose that much?", which can expose concentrations that a forward test, by taking the risk factors one at a time, misses. Regulators in many jurisdictions require reverse stress tests in banks and insurers.
Computing a scenario loss
The calculation is a revaluation, using the sensitivities of each position to the risk factors. For small moves, a first-order approximation is adequate: change in value ≈ exposure × shock. For large moves, positions with convexity, such as options, need a full revaluation or a second-order term.
Worked example. A portfolio worth 230 million holds 100 million in equities, 50 million in high-yield bonds with a spread duration of 4, 80 million in Treasuries with a duration of 7, and a short position in volatility that loses 0.5 million for each one-point rise in the volatility index. The scenario shocks are:
Scenario · Equities · Credit spreads · Treasury yields · Volatility · Loss (millions) · Loss as % of 2302008-style crisis · −40% · +600 bp · −100 bp · +40 pts · 66.4 · 28.9%
March 2020-style panic · −30% · +500 bp · −60 bp · +35 pts · 54.1 · 23.5%
1987-style crash · −20% · +100 bp · −30 bp · +30 pts · 35.3 · 15.4%
Rates shock · −15% · +150 bp · +200 bp · +10 pts · 34.2 · 14.9%
Take the 2008-style row. Equities lose 100 × 40% = 40 million. High-yield bonds lose 50 × 4 × 6% = 12 million. The Treasuries gain, as yields fall: 80 × 7 × 1% = +5.6 million. The short-volatility position loses 0.5 × 40 = 20 million. The total is −40 − 12 + 5.6 − 20 = −66.4 million.
Two features deserve attention. First, the short-volatility position is small (a notional of 0.5 million per point) but contributes 20 of the 66 million, 30 per cent of the loss in the crisis scenarios: a risk that is hard to see in a table of positions, and a typical result of a stress test. Second, the Treasuries are a hedge in three of the four scenarios (falling yields offset the other losses) and a source of loss in the rates scenario, where they lose 11.2 of the 34.2 million. A hedge works for one scenario and not another, and stress testing is how you find which.
Making stress tests useful
Choose scenarios that bite. A test the portfolio passes easily teaches nothing. Include scenarios built from its biggest positions.
Include second-round effects. In a real crisis, losses trigger margin calls, forced selling and wider spreads (see below). A stress test that stops at the first-round price move understates the loss.
Combine factors that move together. Shocking equities down and bonds up independently misses the cases where both fall (2022).
Report the result against capital and limits. A loss figure means little unless it is compared with what the fund can bear.
Act on it. The point is to change something: cut a position, buy a hedge, or accept the risk explicitly and in writing.
Review regularly. Scenarios age as the portfolio and the world change.
A reverse stress test for the same portfolio is simple. If the fund's tolerance is a loss of 50 million, the 2008-style scenario would have to be about 75 per cent as severe (50 ÷ 66.4) to reach it. A more severe move in only equities, by 50 per cent, would cost 50 million on its own. The relevant management question is whether those outcomes are acceptable, and what hedges or reductions would move the break-even further away.
Why the tail is fatter than a normal model says
Fat tails. Lesson 2.2 showed that daily returns are not normal. The consequence for extreme moves is large. Take a day with a loss of k standard deviations, with 252 trading days a year. Compare the normal distribution with a Student t distribution with 4 degrees of freedom, scaled to the same standard deviation:
Size of the daily loss · Normal: expected once in · Student t(4): expected once in3 standard deviations · 2.9 years · 0.6 years
4 standard deviations · 125 years · 1.6 years
5 standard deviations · 13,800 years · 3.8 years
6 standard deviations · 4 million years · 7.5 years
8 standard deviations · 6.4 trillion years · 22.8 years
A 5-standard-deviation day is "impossible" under a normal model and a routine event under a fat-tailed one. In October 1987 the US market fell by about 20 standard deviations on its recent volatility, a number that no normal model could assign a meaningful probability to. The lesson is not that a particular t distribution is the truth. It is that tail probabilities from a normal distribution are not conservative approximations; they can be wrong by a factor of billions, and the further out you go the worse it gets.
Correlations rise in a crisis. Diversification estimated in calm times shrinks when it is needed. Take two assets, each with 20 per cent volatility, held 50/50:
Correlation · Volatility of the 50/50 portfolio · Diversification benefit (points below 20%)0.3 · 16.1% · 3.9
0.6 · 17.9% · 2.1
0.9 · 19.5% · 0.5
When the correlation moves from 0.3 to 0.9, nearly all the benefit goes. In the crises of 2008, March 2020 and 2022, assets that had been uncorrelated fell together as investors sold whatever was liquid to raise cash, and as common factors, such as risk appetite and funding, dominated. A standard practice is to stress the correlation matrix itself: set all correlations to 0.8 or 0.9 and recompute the risk.
Volatility clusters and jumps. Risk is not constant. Quiet periods end in discontinuous moves: a central bank surprise, a default, a weekend news event with markets closed. Gap risk is the risk that a price jumps past your stop-loss, so that the exit price is far worse than the level at which the stop was set.
Liquidity and funding risk
A market loss can be survived. A forced sale at the bottom often cannot. Three channels link them.
1. Market liquidity. The bid-ask spread widens and depth falls in stress, so selling costs more (Lesson 4.4). A position that could be exited in a day in calm markets may take a week, and the price moves against you while you wait. This is why VaR needs a liquidation horizon, and why a risk number computed at mid prices flatters illiquid books.
2. Funding liquidity. Leveraged positions are financed with borrowed money, and lenders can raise margin requirements, shorten terms or withdraw. A margin call forces the fund to deliver cash immediately, often by selling the best assets because the worst cannot be sold. This was the mechanism in LTCM (Lesson 9.4).
3. Redemptions. Investors in hedge funds, and clients of asset managers, withdraw when performance is poor, which forces sales into a falling market. Lock-ups, gates and notice periods are partial protections.
These channels interact in a liquidity spiral: losses lead to margin calls, which lead to forced sales, which lower prices, which cause more losses and more margin calls. Lesson 9.4 simulated such a spiral. A stress test that includes a shock to spreads, haircuts and redemption together gives a better estimate of the damage than a price shock alone. Practical defences are low leverage, long-term financing, diversified lenders, cash buffers sized to stress margin calls, and position limits scaled to the days it takes to liquidate.
Strategies that hide the tail
Some strategies make small, steady profits and occasionally lose a lot. Selling options far from the money, carry trades, writing insurance, and merger arbitrage have this shape. Their track records look excellent until the rare event, and standard measures like the Sharpe ratio and VaR rate them well. We simulated such a strategy: each day it earns 0.05 per cent with a daily noise of 0.2 per cent, but with a 0.2 per cent probability (about once every two years) it suffers a loss of about 6 per cent. Its expected return is about 9.6 per cent a year. Over 2,000 simulated ten-year histories:
Measure · ResultAverage Sharpe ratio over ten years · 1.87 (5th to 95th percentile: 1.01 to 2.92)
Average number of jump days in ten years · 5.1
Typical daily volatility · 0.34%
99% one-day VaR (historical, average) · 0.43%
99% VaR under a normal model · 0.78%
99% expected shortfall (average) · 1.57%
Typical worst day in ten years · 7.1%, or 16 times the 99% VaR
Median maximum drawdown · 8.9%
A Sharpe ratio near 2 is excellent by any standard. The 99 per cent VaR of 0.43 per cent says that on the worst 1 day in 100 the loss is about that, because the jump days are rarer than 1 in 100 and lie beyond the quantile. The worst day is 16 times larger, a loss of about 18 standard deviations of the daily volatility. Expected shortfall catches some of it (1.57 per cent), and a stress test that asks "what if the market gaps?" catches the rest.
The track-record problem. Because jumps are rare, a track record can be clean for a long time. With a daily jump probability of 0.2 per cent, the chance of no jump in a two-year window is 36 per cent, and the Sharpe ratio measured over those clean windows averages 3.98. A manager with two years of steady profits could be skilled, or could be short the tail and fortunate. The tools for telling the difference are not in the return series: look at what the positions are (are they short options, short volatility, or short liquidity?), run the stress tests above, and ask what happens in the scenario that has not occurred yet. Compare the Sharpe ratio with the skewness and the worst day, and be suspicious when a track record is too smooth.
Hedging and limiting the tail
Tail hedges. Buying out-of-the-money put options, VIX calls or other convex instruments pays off in a crash. They have a cost: a steady premium that drags returns in the calm years. The question is not whether insurance is useful but whether its price is fair and how much to buy.
Trend-following and diversifiers. Some strategies, notably trend following (Lesson 5.1), have tended to profit from prolonged sell-offs, although not from sudden ones.
Position and concentration limits. Maximum size by name, sector and factor, scaled to liquidity.
Loss limits and drawdown rules. A rule that cuts risk by half when a strategy has lost 5 per cent of its capital, and stops it at 8 per cent, takes the decision out of the heat of the moment. Multi-manager platforms use such rules (Lesson 9.3).
Leverage limits at the fund and counterparty level, and limits on the share of the book that cannot be exited within a week.
Kill switches and circuit breakers for trading systems: automatic halts on abnormal losses, order rates or position size (Lesson 12.2). The 2012 Knight Capital incident, in which a software error cost about 440 million dollars in under an hour, is the standard warning.
Pre-agreed responses. Decide before the crisis what you will do: which positions you will cut first, who has the authority, and whom you will call.
A risk framework in layers
1. Statistical measures (volatility, VaR, ES) for day-to-day monitoring and backtesting.
2. Stress tests, historical, hypothetical and reverse, run at least weekly and whenever the book changes materially.
3. Exposure limits that do not depend on a model: notional, concentration, leverage and liquidity.
4. Loss limits and escalation with clear authority.
5. Governance: independent risk reporting to senior management and the board, so that the people who take the risk are not the only ones who measure it.
6. Culture: a place where bad news travels fast and a risk manager can say no.
The code below reproduces the stress test, the tail probabilities, the correlation table and the jump-strategy experiment.
python
import numpy as np
from math import sqrt
from scipy import stats
1. stress test of a 230 million portfolio
equities, highyield, treasuries, vega = 100, 50, 80, -0.5
def scenariopnl(eqmove, spreadbp, yieldbp, volpts):
return (equities eqmove + highyield (-4 spreadbp / 1e4)
+ treasuries (-7 yieldbp / 1e4) + vega volpts)
scenarios = {"2008-style crisis": (-0.40, 600, -100, 40), "2020-style panic": (-0.30, 500, -60, 35),
"1987-style crash": (-0.20, 100, -30, 30), "rates shock": (-0.15, 150, 200, 10)}
for name, shocks in scenarios.items():
loss = scenariopnl(shocks)
print(f"{name:18s} P&L {loss:6.1f} million = {loss / 230:.1%} of the portfolio")
print("share of the 2008-style scenario that reaches a 50 million loss:", round(50 / 66.4, 2))
2. how often a k-sigma daily loss occurs: normal against a t distribution with 4 degrees of freedom
nu = 4
for k in (3, 4, 5, 6, 8):
pnormal = stats.norm.sf(k)
pt = stats.t.sf(k sqrt(nu / (nu - 2)), nu)
print(f"{k} sigma: normal once in {1 / pnormal / 252:,.1f} years | t(4) once in {1 / pt / 252:,.1f} years")
3. diversification when correlations rise
for rho in (0.3, 0.6, 0.9):
vol = sqrt(0.25 0.04 + 0.25 0.04 + 2 0.25 rho 0.04)
print(f"correlation {rho}: volatility of a 50/50 mix of two 20% assets {vol:.3f}")
4. a strategy with small steady gains and rare jumps
pjump, gain = 0.002, 0.0005
def simulate(rng, n):
jump = rng.random(n) < pjump
return np.where(jump, -0.06 + 0.01 rng.standardnormal(n), gain + 0.002 rng.standardnormal(n)), jump
sharpe, var99, es99, normalvar, worst, jumps, drawdown, vol = [], [], [], [], [], [], [], []
for k in range(2000):
x, j = simulate(np.random.defaultrng(2000 + k), 2520)
q = np.quantile(x, 0.01)
sharpe.append(x.mean() / x.std() sqrt(252))
var99.append(-q); es99.append(-x[x <= q].mean()); normalvar.append(2.326 x.std())
worst.append(x.min()); jumps.append(j.sum()); vol.append(x.std())
curve = np.cumprod(1 + x)
drawdown.append((curve / np.maximum.accumulate(curve) - 1).min())
print(f"Sharpe mean {np.mean(sharpe):.2f}, 5th to 95th percentile {np.percentile(sharpe, 5):.2f} to {np.percentile(sharpe, 95):.2f} | jumps in ten years {np.mean(jumps):.1f} | daily volatility {np.mean(vol):.4f}")
print(f"99% VaR {np.mean(var99):.4f} | normal VaR {np.mean(normalvar):.4f} | 99% ES {np.mean(es99):.4f} | median worst day {-np.median(worst):.4f} | median max drawdown {np.median(drawdown):.3f}")
clean = []
for s in range(5000):
x, j = simulate(np.random.defaultrng(1000 + s), 504)
if not j.any():
clean.append(x.mean() / x.std() sqrt(252))
print(f"chance of no jump in two years {(1 - pjump) 504:.3f} | share of simulated two-year windows with none {len(clean) / 5000:.3f} | their average Sharpe ratio {np.mean(clean):.2f}")
Common mistakes
Treating the stress test as a forecast. It says what would happen if, not what will.
Only replaying the last crisis. The next one will differ. Add hypothetical and reverse scenarios.
Stressing one factor at a time. Real crises move many factors together, and hedges can fail together.
Using a normal distribution for tail probabilities. The error is not small, it is astronomical.
Assuming calm-period correlations. In stress they move toward 1.
Ignoring liquidity and funding. A paper loss becomes a real one when you must sell.
Judging a strategy by its smooth track record. The Sharpe ratio of a short-tail strategy is highest just before the loss.
Having limits that are not enforced. A limit that is waived when it binds is not a limit.
Running stress tests that never change decisions. If no scenario ever leads to action, it is a reporting exercise.
Key takeaways
Stress tests revalue the portfolio under chosen scenarios: historical (replay a crisis), hypothetical (design a shock) and reverse (find what causes an unacceptable loss).
A 230 million portfolio lost 66.4 million (28.9 per cent) in a 2008-style scenario, of which a small short-volatility position supplied 20 million. Hedges that work in one scenario can fail in another.
A normal model says a 5-standard-deviation day occurs once in 13,800 years. A fat-tailed model says once in 3.8. Tail probabilities from the normal can be wrong by factors of billions.
Correlations rise in crises: a two-asset diversification benefit of 3.9 points at a correlation of 0.3 falls to 0.5 points at 0.9.
Liquidity and funding risk convert market losses into forced sales and spirals. Defences are low leverage, long financing, cash buffers and liquidity-scaled limits.
Strategies that sell insurance earn smooth returns with rare large losses. In the simulation, a Sharpe ratio of 1.9 and a 99 per cent VaR of 0.43 per cent coexisted with a typical worst day of 7.1 per cent, 16 times the VaR.
A clean two-year record is common even for a risky strategy (36 per cent of windows). Examine positions and stress outcomes, not only returns.
Layer the defences: statistical measures, stress tests, model-free limits, loss escalation, independent governance, and a culture that listens.
Check yourself
1. A portfolio holds 40 million of bonds with a duration of 6, and yields rise 150 basis points. What is the approximate loss?
40 × 6 × 1.5% = 3.6 million.
2. A fund's two-year record shows a Sharpe ratio of 3 and no losing month. What would you ask before concluding it is skilled?
What the positions are (short options, volatility, liquidity), the worst-case scenario loss under a stress test, the skewness and tail of the returns, how long the track record is relative to the frequency of the rare event, and whether the returns are consistent with selling insurance.
3. Why does a reverse stress test help even when the forward stress tests look comfortable?
It starts from the outcome you cannot accept and searches for the combinations of events that cause it, which can reveal concentrations and interactions that single-factor scenarios do not.
4. In a crisis, two assets with a historical correlation of 0.3 move with a correlation of 0.9. What happens to the benefit of holding both?
It almost disappears: for two 20 per cent volatility assets, the diversification benefit falls from about 3.9 percentage points of volatility to about 0.5.
5. Why is a margin call more dangerous than a mark-to-market loss of the same size?
A mark-to-market loss reduces capital but does not force a trade. A margin call demands cash immediately, forcing sales at depressed prices, which cause further losses and calls.
Try this
Set aside an hour. You need Python and the code in this lesson.
1. Run the code and check the tables.
2. Add a fifth scenario of your own to the stress test: a gap in the portfolio's biggest position. What is the loss?
3. Change the jump probability to 0.5 per cent and to 0.1 per cent. How do the Sharpe ratio, VaR and worst day move?
4. Compute the chance of no jump in three years for each probability.
5. Take a portfolio you know (even a few funds). List its positions, their sensitivities and three scenarios, one historical, one hypothetical and one reverse. Compute the losses.
6. Write the limit structure for a small fund: exposure limits, a loss limit with escalation, and who can override.
A good result is a stress table that you could present to an investor, a clear view of which position drives the loss, and a limit that would have cut the risk before the stress outcome. That completes the module. The final module turns to the roles, the production systems and the careers where all of this work is done.
Read more
Nassim Taleb's The Black Swan and Fooled by Randomness are the popular treatments of tail risk and of unlucky and lucky track records. Philippe Jorion's Financial Risk Manager Handbook covers stress testing and risk governance. The Basel Committee's "Stress testing principles" (2018) sets out supervisory expectations. Markus Brunnermeier and Lasse Pedersen's 2009 paper "Market Liquidity and Funding Liquidity" explains the liquidity spiral. Andrew Lo's work on hedge fund risk, including "Risk Management for Hedge Funds", discusses strategies with hidden tails. For the 1987 crash, see the Brady Commission report, and for 2020 the Bank for International Settlements' March 2020 market review.
Tags: Quant Trader Stress testing Tail risk Liquidity risk Risk limits