---
title: "Credit Indices and Tranches"
book: "Markets II: Rates, FX and Credit"
subject: quant
language: en
chapter: 24
exercises: 8
source: https://one-course.com/books/quant/2/en/chapter/24-credit-indices-and-tranches
---

# Chapter 24 — Credit Indices and Tranches

In the first quarter of 2012 the Chief Investment Office of JPMorgan Chase tripled the net notional of a portfolio of credit indices and [tranches](#def-m2-credit-indices-and-tranches-tranche), created in 2007 as a hedge against credit losses, to about USD 157 billion. A large part was protection sold on the ten-year contract of one series of the North American investment-grade index, issued in 2007; at one point the net position in that series was USD 82 billion, 10 to 15 days of the whole market’s trading volume. Its traders came to believe that the market knew their positions and was pricing against them. The bank disclosed a loss of about USD 2 billion in May; by the end of the year the losses stood at USD 6.2 billion, and it later admitted the facts in a settlement with the SEC. This chapter explains the instruments: credit indices and how they roll, the gap between an index and its constituents, the [tranches](#def-m2-credit-indices-and-tranches-tranche) that slice an index’s losses, and options on indices.

## 24.1 The index families and their rolls

**Definition 24.1 (Credit index, index series).**

A *credit index* is a standardised [credit default swap](https://one-course.com/books/quant/2/en/chapter/23-credit-default-swaps#def-m2-credit-default-swaps-cds) on an equally weighted basket of reference entities, with one coupon and one maturity; a credit event of a constituent is settled on that constituent’s share of the notional, and the index continues on the others. An *index series* is one fixed list of constituents, published on a roll date; a new series, with an updated list, is published every six months, and the most recent is the on-the-run series.

Two families dominate: CDX, North American and emerging-market indices, and iTraxx, European and Asian ones, each with investment-grade and high-yield members. The North American investment-grade index holds 125 of the most liquid investment-grade names, with equal weights, and rolls on 20 March and 20 September; a name that has been downgraded, stopped trading or been taken over is replaced in the new series, while the old series keeps its list and trades on, less and less, off the run. The index pays a fixed coupon of 100 basis points quarterly and is quoted as a spread, with the upfront settled as for a single name (chapter 23). The 2007 series the bank’s office traded in 2012 was the ninth; the series issued in September 2012 was the nineteenth.

An index lets an investor trade credit as a whole: one trade in one liquid instrument buys or sells protection on a whole market, far more cheaply than 125 single names. It can hedge a book of single names or a bond portfolio, or express a view on the economy.

**As of September 2026 — Index contract facts.**

CDX North American investment grade: 125 names, equal weights, rolls on 20 March and 20 September, tenors 1 to 10 years, 100 basis point coupon, cleared at ICE Clear Credit. Index options: European-style, physically settled, on the five-year CDX investment-grade and high-yield, iTraxx Europe and iTraxx Crossover indices, up to nine months to expiry, cleared at ICE.

## 24.2 Index versus constituents

An index is a basket of CDS, so it has a value implied by the prices of those CDS. The index’s own quote, set by trading in the index, need not agree.

**Definition 24.2 (Intrinsic spread, index skew).**

The *intrinsic spread* of an index is the spread that, converted with the index’s coupon and conventions, gives the weighted average of its constituents’ upfronts at that coupon. The *index skew* is the index’s quoted spread minus its intrinsic spread.

**Proposition 24.3 (Intrinsic spread as a weighted average).**

If constituent $i$ has weight $w_i$, spread $s_i$ and risky annuity $A_i$, the index with coupon $c$ has intrinsic upfront $\sum_i w_i (s_i - c) A_i$, and, to first order, [intrinsic spread](#def-m2-credit-indices-and-tranches-intrinsic)

$$
s^{\text{int}} \approx \frac{\sum_i w_i A_i s_i}{\sum_i w_i A_i},
$$

which is below the simple average of the spreads, since names with higher spreads have smaller annuities.

**Proof.** The upfront of each constituent is $(s_i - c)A_i$ by chapter 23, and the index’s protection and premium legs are the weighted sums of the constituents’, so its upfront is their weighted sum. Writing it as $(s^{\text{int}} - c)A$ with $A \approx
\sum_i w_i A_i$ gives the formula. A higher spread means a higher hazard rate and so a shorter expected life, hence a smaller annuity and a smaller weight. ∎

**Example 24.4 (A stylised index).**

Take 125 names whose five-year spreads are spread log-normally around a median of 55 basis points, from 6.6 to 459, with a simple average of 75.3. With a flat rate of 4% and a recovery of 40%, their average upfront at the 100 basis point coupon is $-1.157\%$, which converts to an [intrinsic spread](#def-m2-credit-indices-and-tranches-intrinsic) of 73.6 basis points; the annuity-weighted average of the spreads is also 73.6. If the index trades at 65.6, its skew is $-8$ basis points ([Figure 24.1](#fig-m2-credit-indices-and-tranches-constituents)).

![The constituents of a stylised 125-name investment-grade index, sorted by five-year spread (the two widest, at 335 and 459 basis points, are off the chart). The intrinsic spread is below the simple average because wide names carry smaller annuities; an index quoted at 65.6 trades 8 basis points through its intrinsic value. Illustrative; data: the chapter’s tutorial.](https://one-course.com/images/onecourse/chapters/quant-2/m2-credit-indices-and-tranches/fig-ddb36a242f1a.svg)

***Figure 24.1.** The constituents of a stylised 125-name investment-grade index, sorted by five-year spread (the two widest, at 335 and 459 basis points, are off the chart). The [intrinsic spread](#def-m2-credit-indices-and-tranches-intrinsic) is below the simple average because wide names carry smaller annuities; an index quoted at 65.6 trades 8 basis points through its intrinsic value. Illustrative; data: the chapter’s tutorial.*

The skew is an arbitrage in principle: buy protection on the index and sell it on the 125 names, and the position pays nothing on a default, since each default is settled on both sides, and gains the skew when it closes. In practice the skew persists and can widen. Trading 125 single names costs far more than one index trade; single names are much less liquid than the index; the trade ties up margin and capital for as long as the skew stays open; and a large, persistent buyer or seller of the index can push it further away before it comes back. A skew is where arbitrage capital and one side’s demand meet. A very large seller of index protection pushes the index below its constituents, and the investors who trade the skew are its natural counterparties; in 2012 the bank’s traders came to believe that those counterparties knew their positions.

![P&L of a USD 1 billion skew trade entered at a skew of -8 basis points (buy index protection, sell protection on the constituents) against the skew at exit, constituents unchanged. The trade gains USD 3.55 million if the skew closes and loses USD 5.37 million if it widens to -20 first; the dashed line is the cost of entering and leaving both legs. Illustrative; data: the chapter’s weekend problem.](https://one-course.com/images/onecourse/chapters/quant-2/m2-credit-indices-and-tranches/fig-14c52b1ca016.svg)

***Figure 24.2.** P&L of a USD 1 billion skew trade entered at a skew of $-8$ basis points (buy index protection, sell protection on the constituents) against the skew at exit, constituents unchanged. The trade gains USD 3.55 million if the skew closes and loses USD 5.37 million if it widens to $-20$ first; the dashed line is the cost of entering and leaving both legs. Illustrative; data: the chapter’s weekend problem.*

## 24.3 Tranches

**Definition 24.5 (Tranche, attachment and detachment points).**

A *tranche* of an index is a contract that covers only the portfolio losses between two levels, expressed as fractions of the index notional: losses start to reduce it at the *attachment point* $a$ and have wiped it out at the *detachment point* $d$. For a portfolio loss $L$, the tranche loses $\min\bigl(\max(L - a, 0),\, d - a\bigr)$, a fraction $\min(\max(L-a,0), d-a)/(d-a)$ of its own notional.

The [tranches](#def-m2-credit-indices-and-tranches-tranche) of an index share its losses in order ([Figure 24.3](#fig-m2-credit-indices-and-tranches-stack)): on the North American investment-grade index the equity [tranche](#def-m2-credit-indices-and-tranches-tranche), from 0 to 3%, takes the first losses and earns the highest premium; the mezzanine, from 3 to 7%, is hit only after the equity is gone; senior and super-senior [tranches](#def-m2-credit-indices-and-tranches-tranche) above them lose only in a catastrophe (in this chapter’s example, from 7 to 15% and from 15 to 100%). With a recovery of 40%, each default of a 125-name index costs 0.48% of the notional, so the equity [tranche](#def-m2-credit-indices-and-tranches-tranche) is wiped out by seven defaults. The expected losses of all the [tranches](#def-m2-credit-indices-and-tranches-tranche), weighted by their widths, add up to the expected loss of the whole portfolio, since together they cover it once. What a [tranche](#def-m2-credit-indices-and-tranches-tranche) does not share with the index is its dependence on how defaults cluster.

![The tranches of this chapter’s example (heights not to scale). Portfolio losses fill the stack from the bottom: the equity tranche takes the first 3% of losses, the mezzanine the next 4%, and so on; with a 40% recovery each of 125 defaults costs 0.48% of the notional. Schematic.](https://one-course.com/images/onecourse/chapters/quant-2/m2-credit-indices-and-tranches/fig-3388c092376f.svg)

***Figure 24.3.** The [tranches](#def-m2-credit-indices-and-tranches-tranche) of this chapter’s example (heights not to scale). Portfolio losses fill the stack from the bottom: the equity [tranche](#def-m2-credit-indices-and-tranches-tranche) takes the first 3% of losses, the mezzanine the next 4%, and so on; with a 40% recovery each of 125 defaults costs 0.48% of the notional. Schematic.*

The standard model of that dependence is the one-factor Gaussian model. Each name defaults before the horizon if $\sqrt\rho\,Z + \sqrt{1-\rho}\,\varepsilon_i <
N^{-1}(p)$, with $Z$ a common factor, $\varepsilon_i$ independent standard normals, $p$ the probability of default to the horizon and $\rho$ the correlation between names. Given $Z$, defaults are independent, and in a large pool the fraction that default is their conditional probability, so the portfolio loses

$$
L(Z) = (1 - R)\, N\!\left(\frac{N^{-1}(p) - \sqrt{\rho}\,Z}{\sqrt{1 - \rho}}\right),
$$

and a [tranche](#def-m2-credit-indices-and-tranches-tranche)’s expected loss is the average of its loss over $Z$.

**Definition 24.6 (Base correlation).**

The *base correlation* for a [detachment point](#def-m2-credit-indices-and-tranches-tranche) $d$ is the correlation $\rho$ at which the one-factor model prices the [tranche](#def-m2-credit-indices-and-tranches-tranche) from 0 to $d$ at its market value; a [tranche](#def-m2-credit-indices-and-tranches-tranche) from $a$ to $d$ is then valued as the difference of the base [tranches](#def-m2-credit-indices-and-tranches-tranche) $[0,d]$ and $[0,a]$, each at its own correlation.

Correlation moves risk between [tranches](#def-m2-credit-indices-and-tranches-tranche) ([Figure 24.4](#fig-m2-credit-indices-and-tranches-tranches)). Low correlation makes defaults independent: a few always happen, which hurts the equity, and many almost never, which spares the senior. High correlation makes defaults come together or not at all, which often spares the equity and sometimes hits the senior. So the equity is long correlation and the senior short. The mezzanine sits between, and its expected loss first rises and then falls with correlation, so one mezzanine price can fit two correlations; [base correlation](#def-m2-credit-indices-and-tranches-basecorr), defined on [tranches](#def-m2-credit-indices-and-tranches-tranche) that all start at zero, avoids that ambiguity, since a base [tranche](#def-m2-credit-indices-and-tranches-tranche)’s expected loss always falls with correlation.

**Example 24.7 (Tranche losses).**

For the stylised index, the five-year default probability implied by the [intrinsic spread](#def-m2-credit-indices-and-tranches-intrinsic) is 5.95%, and the portfolio’s expected loss 3.57%. With $\rho = 0.3$ the expected losses are 59.6% of the equity [tranche](#def-m2-credit-indices-and-tranches-tranche), 24.1% of the mezzanine, 7.83% of the senior and 0.22% of the super senior; weighted by their widths, 3, 4, 8 and 85%, they add up to 3.57%. The equity’s expected loss is 64.0% at $\rho = 0.25$, and inverting the model at that value returns a [base correlation](#def-m2-credit-indices-and-tranches-basecorr) of 25%. The mezzanine’s is 24.3% at $\rho = 0.10$, 25.0% at 0.20 and 21.9% at 0.45: it is 24.3% again at 0.28.

![Five-year expected loss of each tranche, in per cent of its notional and on a log scale, against the correlation of the one-factor Gaussian model (default probability 5.95%, recovery 40%). The equity’s expected loss falls with correlation and the super senior’s rises; the mezzanine’s rises and then falls, and so, at high correlations, does the 7–15% tranche’s. Illustrative; data: the chapter’s tutorial.](https://one-course.com/images/onecourse/chapters/quant-2/m2-credit-indices-and-tranches/fig-7ca33d99d849.svg)

***Figure 24.4.** Five-year expected loss of each [tranche](#def-m2-credit-indices-and-tranches-tranche), in per cent of its notional and on a log scale, against the correlation of the one-factor Gaussian model (default probability 5.95%, recovery 40%). The equity’s expected loss falls with correlation and the super senior’s rises; the mezzanine’s rises and then falls, and so, at high correlations, does the 7–15% [tranche](#def-m2-credit-indices-and-tranches-tranche)’s. Illustrative; data: the chapter’s tutorial.*

![Simulated distribution of the five-year loss of the 125-name portfolio, one point per number of defaults (0.48% each), for correlations of 0.1 and 0.4; the last point collects 40 defaults or more. Dashed lines mark the 3, 7 and 15% attachment points. Higher correlation puts more weight on no defaults and on many. Illustrative; data: the chapter’s tutorial, 20 000 seeded draws.](https://one-course.com/images/onecourse/chapters/quant-2/m2-credit-indices-and-tranches/fig-38e9914b1af4.svg)

***Figure 24.5.** Simulated distribution of the five-year loss of the 125-name portfolio, one point per number of defaults (0.48% each), for correlations of 0.1 and 0.4; the last point collects 40 defaults or more. Dashed lines mark the 3, 7 and 15% [attachment points](#def-m2-credit-indices-and-tranches-tranche). Higher correlation puts more weight on no defaults and on many. Illustrative; data: the chapter’s tutorial, 20 000 seeded draws.*

The one-factor model is a convention for quoting, like the Black formula for swaptions (chapter 13), not a description of how defaults happen; its failure to fit all [tranches](#def-m2-credit-indices-and-tranches-tranche) with one correlation is the correlation skew: one number cannot describe how defaults cluster.

## 24.4 Index options

**Definition 24.8 (Credit index option).**

A *credit index option* is an option to enter an index contract at a fixed strike spread on an expiry date: a payer option gives the right to buy protection, a receiver option the right to sell it.

Index options trade on the five-year investment-grade and high-yield indices, European style and settled by delivering the index position, with expiries of up to nine months. A payer is worth exercising if the index spread at expiry is above the strike: the holder buys protection at the strike’s terms and receives the upfront difference, roughly (spread minus strike) times the annuity. Payers are how investors buy protection against a widening of [credit spreads](https://one-course.com/books/quant/2/en/chapter/21-corporate-bonds#def-m2-corporate-bonds-spreads) without paying the running premium, and they are priced, in first approximation, with the Black formula on the spread, the annuity playing the role that it plays for swaptions. The details, including how defaults before expiry are treated and why the forward spread must allow for them, are for One Quant Book 6.

## 24.5 Tutorial: an index against its constituents, and its tranches

**Goal.** Compute a stylised index’s [intrinsic spread](#def-m2-credit-indices-and-tranches-intrinsic) and skew from its 125 constituents, the P&L of a skew trade, and [tranche](#def-m2-credit-indices-and-tranches-tranche) expected losses in the one-factor Gaussian model, with a [base correlation](#def-m2-credit-indices-and-tranches-basecorr). **End state:** Figures [24.1](#fig-m2-credit-indices-and-tranches-constituents), [24.2](#fig-m2-credit-indices-and-tranches-skewpnl), [24.4](#fig-m2-credit-indices-and-tranches-tranches) and [24.5](#fig-m2-credit-indices-and-tranches-losses), Examples [24.4](#ex-m2-credit-indices-and-tranches-intrinsic) and [24.7](#ex-m2-credit-indices-and-tranches-tranches) and the numbers of the weekend problem.

1. **The index**: intrinsic upfront, annuity-weighted spread, skew P&L. `def intrinsic_upfront (upfronts: list [float ], weights: list [float ] | None = None ) -> float : """Upfront of the index implied by its constituents' upfronts at the index coupon.""" w = weights or [1.0 / len (upfronts)] * len (upfronts) return sum (wi * u for wi, u in zip (w, upfronts, strict=True )) def annuity_weighted_spread (spreads: list [float ], annuities: list [float ]) -> float : """First-order intrinsic spread: names that are likelier to default carry smaller annuities.""" return sum (s * a for s, a in zip (spreads, annuities, strict=True )) / sum (annuities) def skew_pnl (notional: float , upfront_entry: float , upfront_exit: float ) -> float : """P&L of buying index protection (upfront paid at entry, received back at exit) when the constituents' side of the trade does not move.""" return notional * (upfront_exit - upfront_entry)` **Listing 24.1.** Intrinsic upfront, annuity-weighted spread and the P&L of a skew position. code/firm/tranche/firm_tranche.py
2. **The [tranches](#def-m2-credit-indices-and-tranches-tranche)**: [tranche](#def-m2-credit-indices-and-tranches-tranche) loss, large-pool expected loss, [base correlation](#def-m2-credit-indices-and-tranches-basecorr) and a finite-pool simulation. `def tranche_loss (pool_loss: float , attach: float , detach: float ) -> float : """Loss of a tranche as a fraction of its own notional, for a pool loss fraction.""" return min (max (pool_loss - attach, 0.0 ), detach - attach) / (detach - attach) def pool_loss_given_z (z: float , p: float , rho: float , recovery: float ) -> float : return (1.0 - recovery) * N.cdf((N.inv_cdf(p) - math.sqrt(rho) * z) / math.sqrt(1.0 - rho)) def expected_tranche_loss (attach: float , detach: float , p: float , rho: float , recovery: float = 0.40 , n: int = 2001 ) -> float : """E[tranche loss] / tranche notional in the large pool, by the trapezoid rule over z in [-8, 8].""" h, total = 16.0 / (n - 1 ), 0.0 for k in range (n): z = -8.0 + k * h f = tranche_loss(pool_loss_given_z(z, p, rho, recovery), attach, detach) * N.pdf(z) total += f * (0.5 if k in (0 , n - 1 ) else 1.0 ) return total * h def base_correlation (detach: float , target: float , p: float , recovery: float = 0.40 ) -> float : """Correlation at which the base tranche [0, detach] has expected loss `target` (decreasing in rho).""" lo, hi = 1e-4 , 0.999 for _ in range (60 ): mid = 0.5 * (lo + hi) lo, hi = (mid, hi) if expected_tranche_loss(0.0 , detach, p, mid, recovery) > target else (lo, mid) return 0.5 * (lo + hi) def simulate_pool (names: int , p: float , rho: float , recovery: float , trials: int , seed: int ) -> list [float ]: """Pool loss fractions of a finite pool of equal names in the same one-factor model.""" rng, c, out = random.Random(seed), N.inv_cdf(p), [] a, b = math.sqrt(rho), math.sqrt(1.0 - rho) for _ in range (trials): z = rng.gauss(0.0 , 1.0 ) defaults = sum (1 for _ in range (names) if a * z + b * rng.gauss(0.0 , 1.0 ) < c) out.append((1.0 - recovery) * defaults / names) return out` **Listing 24.2.** Tranche expected losses in the one-factor Gaussian model. code/firm/tranche/firm_tranche.py
3. **Run** `index_demo.tutorial()` , `index_demo.skew_trade()` and `fig_index.py` ; the conversion between spreads and upfronts is chapter 23’s `firm.cds` .

**What to change next.** Make one constituent jump from 100 to 1 000 basis points and see how the [intrinsic spread](#def-m2-credit-indices-and-tranches-intrinsic) and the [tranches](#def-m2-credit-indices-and-tranches-tranche) move; then replace the large pool by the finite 125-name simulation and measure the error in the equity [tranche](#def-m2-credit-indices-and-tranches-tranche).

## 24.6 Build: index and tranche analytics

**Purpose.** The miniature firm marks its index positions against their constituents, watches the skew, and prices [tranche](#def-m2-credit-indices-and-tranches-tranche) risk for its credit models.

**Interface.** `intrinsic_upfront(upfronts, weights)`; `annuity_weighted_spread(spreads, annuities)`; `skew_pnl(notional, upfront_entry, upfront_exit)`; `tranche_loss(pool_loss, attach, detach)`; `expected_tranche_loss(attach, detach, p, rho, recovery)`; `base_correlation(detach, target, p, recovery)`; `simulate_pool(names, p, rho, recovery, trials, seed)`.

**Rules.** Equal weights unless given; upfronts per unit notional from `firm.cds`; large homogeneous pool with one default probability and one recovery; expected losses by the trapezoid rule over the factor in $[-8, 8]$.

**Acceptance tests.** `code/firm/tranche/tests/`: [tranche](#def-m2-credit-indices-and-tranches-tranche) losses clipped to $[0, 1]$; [tranche](#def-m2-credit-indices-and-tranches-tranche) expected losses add up to the pool’s; equity falls and senior rises with correlation; [base correlation](#def-m2-credit-indices-and-tranches-basecorr) round-trips; a finite 125-name pool agrees with the large pool.

**Stretch.** Heterogeneous default probabilities with the recursion for the finite pool’s loss distribution; stochastic recovery; bootstrapping [base correlations](#def-m2-credit-indices-and-tranches-basecorr) from [tranche](#def-m2-credit-indices-and-tranches-tranche) quotes; index option pricing (One Quant Book 6).

Sources and further reading

- SEC, Order Instituting Cease-and-Desist Proceedings, In the Matter of JPMorgan Chase & Co., Release No. 34-70458, 19 September 2013.
- JPMorgan Chase & Co., Report of the Management Task Force Regarding 2012 CIO Losses, 16 January 2013.
- US Senate, Permanent Subcommittee on Investigations, hearing “JPMorgan Chase whale trades: a case history of derivatives risks and abuses”, 15 March 2013.
- ICE, Markit CDX.NA.IG contract specifications; CDS index options clearing.
- Bloomberg SEF, CDX.NA.IG five-year contract submission to the CFTC, November 2013.

## 24.7 Exercises

**Exercise 24.1 ★.**

You sold USD 1 billion of protection on a 125-name index. One name defaults and its [auction final price](https://one-course.com/books/quant/2/en/chapter/23-credit-default-swaps#def-m2-credit-default-swaps-final) is 40. What do you pay, and what is the index notional afterwards?

**Solution of Exercise 24.1.**

The name’s share is $1\text{ billion}/125 = \text{USD}~8$ million, on which you pay $(100 - 40)\%$: USD 4.8 million. The index continues on 124 names with a notional of USD 992 million, and the premium is paid on that.

**Exercise 24.2 ★.**

What fraction of the 3–7% [tranche](#def-m2-credit-indices-and-tranches-tranche) is lost if portfolio losses are 2%, 5% and 9%?

**Solution of Exercise 24.2.**

0% (the losses stop below 3%), 50% ($(5-3)/4$) and 100% (above 7%).

**Exercise 24.3 ★.**

Why does a new [index series](#def-m2-credit-indices-and-tranches-index) draw most of the trading, and what happens to the old one?

**Solution of Exercise 24.3.**

Its list reflects today’s liquid investment-grade names, and everyone quotes and hedges in it, so its bid–offer is tightest. The old series keeps its list, including names that have been downgraded or become illiquid, and trades less and less, off the run.

**Exercise 24.4 ★★.**

An index has two names, at 50 and 250 basis points. Is its [intrinsic spread](#def-m2-credit-indices-and-tranches-intrinsic) 150? Use the chapter’s conventions.

**Solution of Exercise 24.4.**

No: 146.0 basis points. The wider name has the smaller annuity, 4.085 against 4.420, so it counts for less in the average upfront.

**Exercise 24.5 ★★.**

Why is a seller of [equity-tranche](#def-m2-credit-indices-and-tranches-tranche) protection long correlation?

**Solution of Exercise 24.5.**

Higher correlation makes defaults cluster: most of the time few or none happen, which spares the equity, and occasionally many, which the equity loses entirely anyway. Its expected loss falls as correlation rises, so the [protection seller](https://one-course.com/books/quant/2/en/chapter/23-credit-default-swaps#def-m2-credit-default-swaps-cds) gains.

**Exercise 24.6 ★★.**

An investor buys a three-month payer option on the index struck at 80 basis points. When does it exercise, and what does it get?

**Solution of Exercise 24.6.**

It exercises at expiry if the index spread is then above 80 basis points: it buys protection on the index at the strike’s terms, which is worth about (spread minus 80 basis points) times the index annuity, and it can keep the protection or sell it at the market.

**Exercise 24.7 ★★★.**

*Coding.* With `expected_tranche_loss`, check that the four [tranches](#def-m2-credit-indices-and-tranches-tranche)’ expected losses add up to the portfolio’s at $\rho = 0.3$, and find the second correlation at which the mezzanine’s expected loss equals its value at $\rho = 0.1$.

**Solution of Exercise 24.7.**

At $\rho = 0.3$: 59.57%, 24.09%, 7.828% and 0.224% of the [tranches](#def-m2-credit-indices-and-tranches-tranche); times their widths 3, 4, 8 and 85%, they add up to 3.568%, the portfolio’s $5.95\% \times 60\%$. The mezzanine’s expected loss is 24.3% at $\rho = 0.10$, and again at $\rho = 0.28$.

**Exercise 24.8 ★★★.**

*Find the flaw.* “The index is the average of its 125 spreads. It trades 8 basis points below that average, so buy index protection and sell the names: a riskless profit.” Correct it.

**Solution of Exercise 24.8.**

The index is compared with its [intrinsic spread](#def-m2-credit-indices-and-tranches-intrinsic), not the simple average, which is higher (here by 1.7 basis points). The trade costs half a bid–offer on 125 names and the index, in and out; it is not riskless, because the skew can widen before it closes, marking the position down and calling for margin, and the fund may not be able to hold it until it closes. The default risk is hedged; the skew is not.

## 24.8 Problem: The Skew Trade

**Problem 24.1.**

Weekend problem — trading an index against its constituents

A relative-value fund watches the stylised index of [Example 24.4](#ex-m2-credit-indices-and-tranches-intrinsic): 125 names, [intrinsic spread](#def-m2-credit-indices-and-tranches-intrinsic) 73.6 basis points, while a large seller of index protection has pushed the index to 65.6. The fund buys USD 1 billion of index protection and sells USD 8 million of protection on each constituent. Trading a single name costs half a bid–offer spread of 1.5 basis points of running spread, the index 0.25; flat rate 4%, recovery 40%.

**Part I — The index and its constituents.**

1. What are the simple average and the median of the constituents’ spreads?
2. What is the intrinsic upfront, and the [intrinsic spread](#def-m2-credit-indices-and-tranches-intrinsic) ?
3. Why is the [intrinsic spread](#def-m2-credit-indices-and-tranches-intrinsic) below the simple average?
4. Compare it with the annuity-weighted average of the spreads.
5. What is the skew?

**Part II — The trade.**

6. What upfront does the fund receive on the index, and pay on the constituents?
7. What is the net cash at entry, and what does it represent?
8. One constituent defaults with an [auction final price](https://one-course.com/books/quant/2/en/chapter/23-credit-default-swaps#def-m2-credit-default-swaps-final) of 40. What does the fund pay and receive?
9. What is the P&L if the skew closes, constituents unchanged?
10. What is the P&L if the skew first widens to $-20$ basis points?

**Part III — Costs and risks.**

11. What does it cost to enter both legs, and to enter and leave them?
12. What is the P&L net of costs if the skew closes, and by how much must the skew move for the trade to pay its costs?
13. Why can the skew persist or widen?
14. What does a widening cost the fund before it ends, beyond the loss on paper?
15. Why is a very large seller of index protection exposed to skew traders?

**Part IV — Judgement.**

16. Why could the seller not simply unwind a position of 10 to 15 days of the market’s volume?
17. How would you size a skew trade?
18. What happens to the trade at the next roll?
19. State the *named result* : the P&L of the skew trade when the skew closes, gross and net of costs, and its loss if the skew widens first.
20. In one sentence: why is the skew not a free lunch?

**Solution of Problem 24.1.**

**1.** 75.3 and 55 basis points. **2.** $-1.157\%$, an [intrinsic spread](#def-m2-credit-indices-and-tranches-intrinsic) of 73.6 basis points. **3.** Upfronts, not spreads, are averaged, and names with wide spreads have small annuities, so they weigh less. **4.** Also 73.6: the first-order formula is very close. **5.** $65.6 - 73.6 = -8$ basis points. **6.** It receives 1.513% on the index, USD 15.13 million, and pays 1.157% on the constituents, USD 11.57 million. **7.** USD 3.55 million received: the value of the skew at the entry prices, which the fund gives back if it closes the trade at the same prices. **8.** It receives USD 4.8 million on the index and pays USD 4.8 million on its single-name contract: nothing net. **9.** USD 3.55 million. **10.** A loss of USD 5.37 million. **11.** USD 0.657 million on the constituents and 0.109 on the index, USD 0.77 million to enter; USD 1.53 million to enter and leave. **12.** USD 2.02 million. The P&L is about the change in skew times the annuity, so the skew must move by more than $2 \times (1.5 + 0.25) = 3.5$ basis points. **13.** Because a large participant keeps selling index protection, single names are costly and slow to trade, and arbitrage capital is limited and must bear the mark-to-market. **14.** Variation margin on the index position, the use of capital and funding limits, and possibly a forced exit at the worst moment. **15.** Its sales move the index away from its constituents, and the skew traders who take the other side profit when it has to stop selling or buy back; the larger the position relative to the market’s volume, the more its exit costs. **16.** Unwinding means buying back protection equal to 10 to 15 days of the whole market’s volume, which would move the index sharply against it; everyone watching the skew would anticipate it. **17.** By the loss it can bear if the skew doubles before closing, by the market’s daily volume in the index and the names, and by the margin it can fund. **18.** The [index series](#def-m2-credit-indices-and-tranches-index) goes off the run: liquidity moves to the new series, and the old one’s skew may close more slowly or be harder to trade. **19.** Named result: *the skew trade* makes USD 3.55 million gross and USD 2.02 million net of costs when the skew closes from $-8$ to 0, and loses USD 5.37 million on paper if it first widens to $-20$. **20.** Because closing it depends on the other side stopping and on the fund surviving the widening until it does.

## 24.9 Interview questions

**Interview question 24.1 ★ trader, researcher.**

What is CDX investment grade, and how does it roll?

**Solution of Interview question 24.1.**

A [credit default swap](https://one-course.com/books/quant/2/en/chapter/23-credit-default-swaps#def-m2-credit-default-swaps-cds) on 125 equally weighted, liquid North American investment-grade names with a 100 basis point coupon, quoted as a spread. Every six months, on 20 March and 20 September, a new series with an updated list is published and becomes the on-the-run contract; the old series continues with its list.

*What the interviewer is looking for: constituents, coupon, the roll.*

**Interview question 24.2 ★ trader.**

What is an index’s [intrinsic spread](#def-m2-credit-indices-and-tranches-intrinsic), and why can the index trade away from it?

**Solution of Interview question 24.2.**

The spread implied by the constituents’ single-name prices: average their upfronts at the index coupon and convert back. The index trades on its own supply and demand, is far more liquid than the names, and arbitrage between them is costly and risky, so the two can diverge, sometimes widely.

*What the interviewer is looking for: upfront averaging, and the limits to arbitrage.*

**Interview question 24.3 ★★ researcher.**

Derive the loss of a large pool in the one-factor Gaussian model.

**Solution of Interview question 24.3.**

Name $i$ defaults if $\sqrt\rho Z + \sqrt{1-\rho}\varepsilon_i < N^{-1}(p)$. Given $Z$, the default probability is $N\bigl((N^{-1}(p) - \sqrt\rho Z)/\sqrt{1-\rho}\bigr)$ and the defaults are independent, so by the law of large numbers the defaulted fraction equals it; the loss is $1-R$ times that.

*What the interviewer is looking for: conditional independence and the large-pool limit.*

**Interview question 24.4 ★★ researcher, trader.**

Which [tranches](#def-m2-credit-indices-and-tranches-tranche) are long correlation, and why? Why use [base correlation](#def-m2-credit-indices-and-tranches-basecorr) rather than one correlation per [tranche](#def-m2-credit-indices-and-tranches-tranche)?

**Solution of Interview question 24.4.**

Equity is long correlation (its expected loss falls as defaults cluster), senior [tranches](#def-m2-credit-indices-and-tranches-tranche) short. The mezzanine’s expected loss is not monotone in correlation, so one price can fit two correlations, or none; base [tranches](#def-m2-credit-indices-and-tranches-tranche) all start at zero, and their expected losses fall monotonically with correlation, so each price gives one correlation.

*What the interviewer is looking for: direction of each [tranche](#def-m2-credit-indices-and-tranches-tranche), and monotonicity.*

**Interview question 24.5 ★★ risk, trader.**

What went wrong in the 2012 losses of JPMorgan’s Chief Investment Office?

**Solution of Interview question 24.5.**

A portfolio meant as a hedge grew into a very large directional and relative-value book without notional limits; the net notional tripled in a quarter; positions became a large multiple of the market’s daily volume, so they could not be exited without moving prices; the marks were not independently controlled; and the losses were first understated.

*What the interviewer is looking for: size against liquidity, limits, valuation control.*

**Interview question 24.6 ★★★ developer.**

Design a service that computes, in real time, the [intrinsic spread](#def-m2-credit-indices-and-tranches-intrinsic) and skew of every [index series](#def-m2-credit-indices-and-tranches-index) from single-name quotes.

**Solution of Interview question 24.6.**

Subscribe to single-name quotes and index quotes; keep each constituent’s upfront and annuity updated on each tick, with its weight in every series it belongs to; the intrinsic upfront of a series is a weighted sum, updated incrementally when a name moves; convert to a spread with a cached annuity and a Newton step; publish the skew with the age and quality of the quotes behind it, and flag stale names.

*What the interviewer is looking for: incremental sums, many series per name, stale data.*
