---
title: "Swap-Spread and Asset-Swap Trades"
book: "Strategies II: Volatility, Relative Value, Macro and the Bank Desks"
subject: quant
language: en
chapter: 12
exercises: 8
source: https://one-course.com/books/quant/9/en/chapter/12-swap-spread-and-asset-swap-trades
---

# Chapter 12 — Swap-Spread and Asset-Swap Trades

From October 2008 to October 2016 the thirty-year US dollar swap rate stood below the Treasury yield of the same maturity on 94% of days. A textbook says this cannot last: buy the Treasury, pay fixed in the swap, and collect the difference. It lasted because the trade that would close it uses balance sheet, and banks were no longer willing to lend theirs cheaply. Jermann showed that when holding bonds carries frictions, negative swap spreads should not surprise anyone. On this chapter’s synthetic market the long-swap-spread trade earns 32.4 basis points a year on its notional once a [balance-sheet cost](#def-s2-swap-spread-and-asset-swap-trades-bscost) has pushed the spread negative. Charged for the balance sheet it uses, it loses 17.6. The build is `firm.swapspread`.

## 12.1 Swap spreads and asset swaps

A swap spread (Book 2, chapter 9) is the fixed rate of an interest rate swap minus the government bond yield of the same maturity. An asset-swap spread (Book 2, chapter 21) is the spread over the floating rate that a bond pays once swapped: buying the bond and paying fixed on a swap with the bond’s coupons turns it into a floating-rate asset. Before 2008 swap spreads were positive, a premium for the bank credit in the floating leg and for Treasuries’ liquidity. From July 2000 to September 2008 the ten-year spread averaged 58.6 basis points and the thirty-year 48.3.

**Definition 12.1 (Swap-spread trade).**

A *swap-spread trade* combines a government bond with an interest rate swap of the same maturity so that the position gains when the swap spread moves: long the spread is long the bond (financed in repo) and paying fixed in the swap, which earns the bond yield over the swap rate plus the floating rate over repo, and gains when the spread widens.

## 12.2 Negative swap spreads

From October 2008 the long end turned negative ([Figure 12.1](#fig-s2-swap-spread-and-asset-swap-trades-real)). The thirty-year spread averaged $-21.4$ basis points to October 2016, was negative on 93.9% of those days, and reached $-62$ on 13 September 2016. The ten-year spread averaged 8.3 and was negative on 17.6% of days, reaching $-23$ on 24 February 2016. The two-year spread never went below zero: its minimum was 2 basis points, on 20 November 2015. Jermann’s model prices swaps when holding bonds is costly. It matches the negative spreads without large demand imbalances in the swap market.

![US dollar swap spreads (the ICE swap rate minus the constant-maturity Treasury yield), monthly means, July 2000 to October 2016, when the swap series on FRED end. Derived from FRED; the swap rates are not redistributed. Data: s2_fetch_swaps.](https://one-course.com/images/onecourse/chapters/quant-9/s2-swap-spread-and-asset-swap-trades/fig-0450946071b0.svg)

***Figure 12.1.** US dollar swap spreads (the ICE swap rate minus the constant-maturity Treasury yield), monthly means, July 2000 to October 2016, when the swap series on FRED end. Derived from FRED; the swap rates are not redistributed. Data: `s2_fetch_swaps`.*

## 12.3 Balance sheet as a cost

**Definition 12.2 (Balance-sheet cost).**

The *balance-sheet cost* of a trade is the return a bank or dealer requires on the capital that regulation makes it hold against the trade’s gross assets, whatever their risk, charged as a running rate on the notional; it makes low-risk, high-volume trades such as repo-financed bond positions expensive to hold.

Du, Tepper and Verdelhan found the same force in foreign exchange. Deviations from covered interest parity were large, persistent and not explained by credit risk or transaction costs. They were strongest for forward contracts that sat on banks’ balance sheets at quarter-ends, which points to regulation as a cause.

`firm.swapspread` makes the mechanism explicit ([Listing 12.1](#lst-s2-swap-spread-and-asset-swap-trades-model)). For three years the ten-year spread sits near a 10 basis-point premium. From year 3 a [balance-sheet cost](#def-s2-swap-spread-and-asset-swap-trades-bscost) of 45 basis points a year phases in over one year, and the spread follows it down: it averages 11.5 before and $-38.8$ once the cost is in, and it stays negative on every day. At quarter-ends it dips by a further 6 basis points, 12 at year-ends, and a mean-reverting noise of 8 basis points runs throughout ([Figure 12.2](#fig-s2-swap-spread-and-asset-swap-trades-synthetic)).

![The synthetic ten-year swap spread over ten years: a small premium, then a balance-sheet cost phased in from year 3, with quarter-end dips and noise. Data: s2_swapspread.market.](https://one-course.com/images/onecourse/chapters/quant-9/s2-swap-spread-and-asset-swap-trades/fig-15fc5955419e.svg)

***Figure 12.2.** The synthetic ten-year swap spread over ten years: a small premium, then a [balance-sheet cost](#def-s2-swap-spread-and-asset-swap-trades-bscost) phased in from year 3, with quarter-end dips and noise. Data: `s2_swapspread.market`.*

## 12.4 Trades and their carry

The long-spread position is one unit of notional: long the ten-year Treasury in repo and paying fixed on a ten-year swap. Its DV01 is 8.5 basis points of notional per basis point, and the floating rate received exceeds repo by 5 basis points a year. The balance-sheet charge assumes capital of 5% of the Treasury notional at a 10% required return, 50 basis points a year.

| bp of notional a year | before, no charge | before, charged | after, no charge | after, charged |
| --- | --- | --- | --- | --- |
| carry (bond yield over swap) | $-11.5$ | $-11.5$ | 38.8 | 38.8 |
| marks | $-17.8$ | $-17.8$ | $-11.4$ | $-11.4$ |
| floating over repo | 5.0 | 5.0 | 5.0 | 5.0 |
| balance-sheet charge | 0.0 | $-50.0$ | 0.0 | $-50.0$ |
| total | $-24.3$ | $-74.3$ | 32.4 | $-17.6$ |
| Sharpe ratio | $-0.15$ | $-0.44$ | 0.13 | $-0.07$ |

Once the cost is in, the trade has positive carry for anyone who does not pay for balance sheet: 38.8 basis points a year from the negative spread. For a bank that must hold capital against the Treasury, the charge takes it all and more. The spread settles where the marginal holder is indifferent, and it stays there because the marginal holder is a bank. The Sharpe ratio is low even without the charge: the spread’s noise, marked at a DV01 of 8.5, swamps the carry year to year.

The quarter-end dips are a different trade. Buying the spread at the last close of a quarter and selling five days later earned 103.3 basis points of notional on average at the five year-ends after the cost was phased in (the worst 90.6), and 43.9 at the other eighteen quarter-ends (the worst $-4.3$). That is a payment for providing balance sheet on the days regulators measure it. It is planted in the model, and in the real market it is only as large as the dips are.

## 12.5 Strategy files

**Strategy file 12.1 — Long swap spread.**

**Who pays you, and why.** Banks that cannot hold bonds cheaply; swap receivers (pension funds, insurers) who push swap rates down.

**Instruments and venues.** Treasuries financed in repo; cleared interest rate swaps.

**Signal.** The spread against the holder’s own cost of balance sheet.

**Sizing and execution.** DV01-matched; sized on the spread’s volatility.

**Costs.** The balance-sheet charge, repo, and swap clearing margin.

**How it dies.** Spreads that go further negative when balance sheet gets dearer.

**Horizon, capacity, infrastructure.** Years; repo lines and swap clearing.

**Backtest honestly.** Charge balance sheet at the holder’s real cost.

**Sources.** Jermann (2020); FRED spreads: the thirty-year negative on 93.9% of days from October 2008 to October 2016; this chapter: 32.4 basis points a year uncharged, $-17.6$ charged.

**Strategy file 12.2 — Asset-swap carry.**

**Who pays you, and why.** Issuers and investors who leave bonds cheap to swaps.

**Instruments and venues.** Government or agency bonds with a matching swap.

**Signal.** The asset-swap spread against funding cost.

**Sizing and execution.** Bond and swap matched cash flow for cash flow.

**Costs.** Funding and balance sheet.

**How it dies.** The bond’s funding cost rises above its asset-swap spread.

**Horizon, capacity, infrastructure.** To maturity or years.

**Backtest honestly.** Funding at the holder’s rate, not at the floating index.

**Sources.** No performance figure verified.

**Strategy file 12.3 — Swap-spread curve trade.**

**Who pays you, and why.** Demand concentrated at one maturity: long-dated receivers at thirty years, bank hedging at shorter ones.

**Instruments and venues.** Spread positions at two maturities.

**Signal.** The spread curve (thirty-year minus ten-year spread) against its history.

**Sizing and execution.** DV01-matched at each maturity.

**Costs.** Four legs.

**How it dies.** A structural change at one end (regulation, pension demand).

**Horizon, capacity, infrastructure.** Months to years.

**Backtest honestly.** The 2008 break: the thirty-year and ten-year spreads moved apart for years.

**Sources.** FRED spreads (this chapter); no performance figure verified.

**Strategy file 12.4 — Year-end balance-sheet trade.**

**Who pays you, and why.** Banks that shrink their balance sheets for quarter-end and year-end measurement dates.

**Instruments and venues.** Spread positions, repo, FX swaps across the turn.

**Signal.** The calendar: positions taken at the dip, released after the date.

**Sizing and execution.** Only with balance sheet that is not itself measured on those dates.

**Costs.** Short-dated funding across the turn.

**How it dies.** Rules that average over the quarter rather than measure at its end.

**Horizon, capacity, infrastructure.** Days.

**Backtest honestly.** Measurement dates and rules as they were.

**Sources.** Du, Tepper and Verdelhan (2018) on quarter-end CIP deviations; this chapter’s planted dips: 103.3 basis points at year-ends.

## 12.6 Tutorial: below the Treasury

**Goal.** Simulate the swap spread with a [balance-sheet cost](#def-s2-swap-spread-and-asset-swap-trades-bscost), run the long-spread trade with and without a charge, and trade the quarter-ends; read the real spreads. **End state:** the table and the two figures.

1. **Spread and trade**. `def simulate_spread (cfg: SwapConfig | None = None ) -> dict : cfg = cfg or SwapConfig() rng = np.random.default_rng(cfg.seed) T = cfg.days t = np.arange(T) phase = np.clip((t - cfg.regulation) / cfg.ramp, 0.0 , 1.0 ) cost = cfg.bs_cost * phase q_end = (t % (YEAR // 4 )) >= (YEAR // 4 - cfg.qe_days) y_end = (t % YEAR) >= (YEAR - cfg.qe_days) dip = cfg.qe_dip * phase * (q_end.astype(float ) + y_end.astype(float )) phi = 0.5 ** (1 / cfg.noise_hl) u = np.empty(T) u[0 ] = cfg.noise_sd * rng.standard_normal() for i in range (1 , T): u[i] = phi * u[i - 1 ] + cfg.noise_sd * math.sqrt(1 - phi * phi) * rng.standard_normal() spread = cfg.premium * (1 - phase) - cost - dip + u return {" spread " : spread, " cost " : cost, " dip " : dip, " quarter_end " : q_end, " year_end " : y_end} def long_spread (s, cfg: SwapConfig | None = None , start: int = 0 , days: int | None = None , charge: bool = True ) -> dict : """Hold one unit notional long the spread from `start` for `days`: daily carry (minus the spread, a year), marks (DV01 times the spread's change), float over repo, and the balance-sheet charge, all per unit notional.""" cfg = cfg or SwapConfig() sp = s[" spread " ] end = len (sp) - 1 if days is None else min (len (sp) - 1 , start + days) w = slice (start, end) carry = -sp[w] / 1e4 / YEAR marks = cfg.dv01 * np.diff(sp[start:end + 1 ]) / 1e4 fr = np.full(end - start, cfg.float_repo / 1e4 / YEAR) chg = np.full(end - start, -cfg.leverage_ratio * cfg.hurdle / YEAR if charge else 0.0 ) return {" carry " : carry, " marks " : marks, " float_repo " : fr, " charge " : chg, " total " : carry + marks + fr + chg}` **Listing 12.1.** The spread with a phased-in balance-sheet cost, and the long-spread trade’s parts. code/firm/swapspread/firm_swapspread.py
2. **Quarter-ends**. `def quarter_ends (hold: int = 5 ): """After the regulation: buy the spread at each quarter's last close, sell `hold` days later; the mean gain in bp of notional (DV01 times the change), for year-ends and for the other quarter-ends.""" cfg, s = market() sp = s[" spread " ] q = YEAR // 4 out = {" year_end " : [], " other " : []} for t in range (cfg.regulation + cfg.ramp + q - 1 , len (sp) - hold, q): gain = cfg.dv01 * (sp[t + hold] - sp[t]) out[" year_end " if (t + 1 ) % YEAR == 0 else " other " ].append(gain) return {k: {" n " : len (v), " mean_bp " : float (np.mean(v)), " min_bp " : float (np.min(v))} for k, v in out.items()}` **Listing 12.2.** Buying the quarter-end dip and selling five days later. code/strategies-2/12-swap-spread-and-asset-swap-trades/python/s2_swapspread.py
3. **Run** `s2_fetch_swaps.py` once, then `regimes()` , `quarter_ends()` and `fig_swapspread.py` .

**What to change next.** Make the [balance-sheet cost](#def-s2-swap-spread-and-asset-swap-trades-bscost) vary with a leverage-ratio rule; add a thirty-year spread with pension demand; run the trade for an investor whose own [balance-sheet cost](#def-s2-swap-spread-and-asset-swap-trades-bscost) is 20 basis points.

## 12.7 Build: swap spreads

**Purpose.** A swap spread driven by a [balance-sheet cost](#def-s2-swap-spread-and-asset-swap-trades-bscost), the long-spread trade’s carry and marks, and a balance-sheet charge.

**Interface.** `SwapConfig(…)`, `simulate_spread(cfg)`, `long_spread(s, cfg, start, days, charge)`.

**Rules.** Carry is minus the spread; marks are DV01 times the spread’s change; the charge is capital times hurdle on the notional.

**Acceptance tests.** `code/firm/swapspread/tests/`: a flat spread earns its carry exactly; the charge is 50 basis points a year; the quarter-end dips land on the right days.

**Stretch.** Several maturities; asset swaps on individual bonds; a funding-rate model.

Sources and further reading

- U. J. Jermann, “Negative swap spreads and limited arbitrage”, *Review of Financial Studies* 33(1), 2020.
- W. Du, A. Tepper and A. Verdelhan, “Deviations from covered interest rate parity”, *Journal of Finance* 73(3), 2018.
- ICE swap rates and H.15 Treasury yields, via FRED.

## 12.8 Exercises

**Exercise 12.1 ★.**

A bank holds capital of 5% against a Treasury position and requires 10% on capital. What does holding the position cost, in basis points a year?

**Solution of Exercise 12.1.**

$0.05 \times 0.10 = 0.005$ of the notional a year: 50 basis points.

**Exercise 12.2 ★.**

A position has a DV01 of 8.5 basis points of notional per basis point. The spread widens by 12 basis points. What does the long-spread position gain?

**Solution of Exercise 12.2.**

$8.5 \times 12 = 102$ basis points of notional.

**Exercise 12.3 ★.**

The spread is $-40$ basis points, floating exceeds repo by 5 and the charge is 50. What is the charged carry, a year?

**Solution of Exercise 12.3.**

$40 + 5 - 50 = -5$ basis points a year: the charge takes more than the carry.

**Exercise 12.4 ★★.**

Why did the two-year spread stay positive while the thirty-year went negative?

**Solution of Exercise 12.4.**

A two-year position ties up balance sheet for little duration, and the bank credit premium in the floating leg still matters at short maturities; at thirty years the carry per unit of balance sheet is small relative to the duration hedged, and long-dated receivers (pension funds, insurers) push the swap rate down.

**Exercise 12.5 ★★.**

Why does the quarter-end dip support the balance-sheet explanation?

**Solution of Exercise 12.5.**

Nothing about credit or duration changes on the last days of a quarter; what changes is what banks report. A dip on those days points to the cost of holding positions on the reporting date.

**Exercise 12.6 ★★.**

Who can run the long-spread trade profitably, and why?

**Solution of Exercise 12.6.**

Holders whose own [balance-sheet cost](#def-s2-swap-spread-and-asset-swap-trades-bscost) is below the carry: funds with cheap term repo, investors who own Treasuries outright, or anyone whose capital is not measured on the same basis. For them the carry of 38.8 basis points a year is mostly profit.

**Exercise 12.7 ★★★.**

*Coding.* Run the long-spread trade from the start of the sample with no charge. Why does it lose, and what does that say about entering a carry trade just before its driver changes?

**Solution of Exercise 12.7.**

Over the whole ten years it loses 36.8 basis points a year: carry earns 21.7 but marks lose 63.4, because the spread fell from its premium to about $-39$ as the [balance-sheet cost](#def-s2-swap-spread-and-asset-swap-trades-bscost) phased in. A carry trade entered before its driver changes pays for the whole repricing in marks.

**Exercise 12.8 ★★★.**

*Find the flaw.* “Negative swap spreads are an arbitrage: buy Treasuries, pay fixed, and collect 40 basis points a year risk-free.”

**Solution of Exercise 12.8.**

It is not risk-free: the position must be financed in repo and costs balance sheet (50 basis points a year in the chapter’s charge), and the spread can move further negative, marked at a DV01 of 8.5. What looks like an arbitrage is the price of the balance sheet it needs.

## 12.9 Problem: Below the Treasury

**Problem 12.1.**

Weekend problem — swap spreads and balance sheet

The chapter’s synthetic spread, FRED’s swap rates and the public record.

**Part I — The spread.**

1. Define the swap spread and the asset-swap spread.
2. Why were swap spreads positive before 2008?
3. Give the real spreads’ averages before and after October 2008.
4. What did Jermann show?

**Part II — Balance sheet.**

5. Define the [balance-sheet cost](#def-s2-swap-spread-and-asset-swap-trades-bscost) .
6. What did Du, Tepper and Verdelhan find?
7. How does the synthetic spread respond to the cost?
8. Where are the quarter-end dips, and why?

**Part III — The trades.**

9. Define the long-spread trade and its parts.
10. Give its return before and after, with and without a charge.
11. Why is its Sharpe ratio low?
12. What did the quarter-end trade earn?

**Part IV — The verdict.**

13. State the *named result* : the [swap-spread trade](#def-s2-swap-spread-and-asset-swap-trades-trade) ’s return with and without a balance-sheet charge.
14. Why does the spread settle where it does?
15. What would make the spread rise again?
16. How would you size the trade?
17. How would you backtest it honestly?
18. Which strategy file suits a fund with cheap balance sheet?
19. How does this chapter relate to chapter 11?
20. In one sentence: what does a negative swap spread price?

**Solution of Problem 12.1.**

1. Swap rate minus government yield; the spread over the floating rate that a swapped bond pays.
2. A premium for the bank credit in the floating leg and for Treasuries’ liquidity.
3. Ten-year 58.6 before and 8.3 after; thirty-year 48.3 before and $-21.4$ after.
4. Frictions for holding bonds make negative spreads unsurprising.
5. The return required on capital held against a trade’s gross assets, as a running rate.
6. Persistent CIP deviations, strongest at quarter-ends, pointing to regulation.
7. It falls from about 11.5 to about $-38.8$ basis points as the cost phases in.
8. At the last five days of each quarter, twice as deep at year-end: reporting dates.
9. Long the bond in repo, paying fixed; carry, marks, floating over repo, the charge.
10. $-24.3$ and $-74.3$ before; 32.4 and $-17.6$ after.
11. The spread’s noise, at a DV01 of 8.5, is large against the carry.
12. 103.3 basis points at year-ends and 43.9 at other quarter-ends.
13. **Named result.** After the [balance-sheet cost](#def-s2-swap-spread-and-asset-swap-trades-bscost) is in, the long-swap-spread trade earns 32.4 basis points a year uncharged and loses 17.6 charged at 50 basis points a year.
14. Where the marginal holder, a bank, is indifferent after its charge.
15. Cheaper balance sheet (a change in rules or in who holds Treasuries).
16. By the spread’s volatility times DV01 and the balance sheet available.
17. Charge balance sheet, include the regime change, use repo actually available.
18. Asset-swap carry or the long swap spread.
19. Both are repo-financed Treasury positions whose return depends on funding and collateral.
20. The cost of holding Treasuries on a bank’s balance sheet.

## 12.10 Interview questions

**Interview question 12.1 ★ trader.**

What is a swap spread, and what does it mean when it is negative?

**Solution of Interview question 12.1.**

Swap rate minus government yield at the same maturity; negative means the government bond yields more than the swap, which a holder could lock in only by financing the bond, which costs repo and balance sheet.

**Interview question 12.2 ★★ researcher.**

Why might the thirty-year swap rate stay below the Treasury yield for years?

**Solution of Interview question 12.2.**

Holding the bond uses balance sheet that banks charge for, while receiving fixed on the swap uses little; long-dated receivers keep swap rates low. Jermann’s model with bond-holding frictions gives negative spreads.

**Interview question 12.3 ★★ trader.**

Build an asset swap on a ten-year Treasury. What do you earn, and what do you pay?

**Solution of Interview question 12.3.**

Buy the bond, pay fixed on a swap matching its coupons and receive floating plus a spread: the asset-swap spread. Pay the repo rate to finance the bond and the [balance-sheet cost](#def-s2-swap-spread-and-asset-swap-trades-bscost) of holding it.

**Interview question 12.4 ★★ risk.**

A desk is long swap spreads. What scenarios would you stress?

**Solution of Interview question 12.4.**

A further widening negative (a rise in [balance-sheet costs](#def-s2-swap-spread-and-asset-swap-trades-bscost)), a repo spike, a quarter-end dip deeper than usual, a change in the floating index, and clearing margin increases.

**Interview question 12.5 ★★ developer.**

How would you charge balance sheet to desks in a firm’s P&L system?

**Solution of Interview question 12.5.**

Allocate the capital each position requires under the binding ratio, charge it at the firm’s hurdle rate daily, and report desks’ P&L after the charge, with higher rates for positions held over reporting dates.

**Interview question 12.6 ★★★ researcher.**

Show that the long-spread position’s carry is the bond yield minus the swap rate plus the floating rate minus the repo rate, and explain why the floating-repo gap matters when the swap’s floating index changes.

**Solution of Interview question 12.6.**

The bond earns its yield and costs repo; the swap receives floating and pays the fixed rate; summing gives yield minus swap rate plus floating minus repo. If the floating index moves away from repo (as when an interbank rate is replaced by a secured one), the last term changes and with it the trade’s carry.
