Skip to content
All library documents

Bootstrapping a Discount Curve from Coupon OIS Swaps

Article Quant Q&A · Author: Jan Stuller

Summary

The document describes how to bootstrap discount factors from annual fixed-rate OIS swaps with successive maturities. Starting with the shortest swap, it sets the swap’s present value to zero and solves for its terminal discount factor. Each longer swap then uses the previously derived discount factors for earlier fixed coupons to solve for the next maturity’s discount factor. The resulting discount factors can be converted into zero rates using a chosen year-fraction convention.

The worked setup assumes annual payments and fixed principal, and illustrates the recursion through three maturities. It provides formulas but no market data or numerical demonstration. Applying the method in practice requires matching the actual payment schedule, accrual fractions, calendars, day counts, and conventions of the quoted instruments; the simplified equations are not a complete treatment of those market details.

Key ideas

  • A par OIS swap has zero present value at inception under the curve used for discounting.
  • Solve the shortest maturity discount factor first, then use it to bootstrap longer tenors.
  • Each longer swap’s earlier fixed coupons are discounted with previously solved factors.
  • Convert the resulting discount factors to zero rates using a specified year-fraction basis.
  • The example assumes annual coupons and fixed principal, so market conventions may require adjustments.

Tags

Full text
# Constructing zero-curve for discounting from Coupon OIS Swaps


# Constructing zero-curve for discounting from Coupon OIS Swaps












There are some questions and answers on this site which touch upon this topic, but none actually show step-by-step on how to bootstrap a coupon OIS Swap curve to construct a zero-curve for discounting.

Bootstrapping a bond curve is easy: say we have three bonds with annual coupons and maturities 1 year, 2 years and 3 years. These bonds trade at prices $PV_1$, $PV_2$ and $PV_3$, with face-values $N$ and annual percentage coupons $C_1$, $C_2$ & $C_3$.

The 1y tenor zero-rate "$x$" simply solves $PV_1=\frac{N+C_1}{1+x}$.

The 2y tenor zero-rate "$y$" then solves $PV_2=\frac{C_2}{1+x}+\frac{N+C_2}{(1+y)^2}$.

The 3y tenor zero-rate "$z$" then solves $PV_3=\frac{C_3}{1+x}+\frac{C_3}{(1+y)^2}+\frac{N+C_3}{(1+z)^3}$.

My question is this: if we have three OIS swap with maturities 1y, 2y and 3y, and their (annual) fixed rates are $r_1$, $r_2$ and $r_3$ respectively, how can we bootsrap these swaps? What would be the equivalent $PV_1$, $PV_2$ and $PV_3$ on these swaps?

## Answer by Dillon (score 1, accepted)

https://quant.stackexchange.com/a/59291

From Pricing and Hedging Swaps by Paul Miron and Philip Swannell:

Here I will take the input rates: $r_{1y}$, $r_{2y}$, $r_{3y}$ and create the DF values for each tenor $df_{1y}$, $df_{2y}$, $df_{3y}$, and thus create the zero coupon swap curve rates $z_{1y}$, $z_{2y}$, $z_{3y}$.

The book demonstrates how this formula represents both the fixed and floating cashflow of the swap (assuming fixed principle):

$PV(\text{swap_1y}) = -Pdf_0 + Pr_{1y}\alpha_{0,1y}df_{1y} + Pdf_{1y}$

$P = \text{principle}$

$df_x = \text{discount factor at some tenor } x$

$\alpha_{a, b} = \text{year fraction (using the day count basis of the fixed leg of the swap) between tenors } a \text{ and } b$

$r_x = \text{quote for the fixed leg of an annual swap for some tenor } x$

So since we know that for a swap $PV(\text{swap_1y}) = 0$ we can then see that:

$df_{1y} = \frac{df_0}{1+r_{1y}\alpha{0,1y}}$

Therefore we can extend this to the case of 2Y and 3Y:

$PV(\text{swap_2y}) = -Pdf_0 + Pr_{2y}\alpha_{0,1y}df_{1y} + Pr_{2y}\alpha_{1y,2y}df_{2y} + Pdf_{2y}$

$PV(\text{swap_3y}) = -Pdf_0 + Pr_{3y}\alpha_{0,1y}df_{1y} + Pr_{3y}\alpha_{1y,2y}df_{2y} + Pr_{3y}\alpha_{2y,3y}df_{3y} + Pdf_{3y}$

Again setting $PV(\text{swap_2y}) = 0$ and $PV(\text{swap_3y}) = 0$ we have:

$df_{2y} = \frac{df_0-r_{2y}\alpha_{0,1y}df_{1y}}{1+r_{2y}\alpha_{1y,2y}}$

$df_{3y} = \frac{df_0-r_{3y}(\alpha_{0,1y}df_{1y} + \alpha_{1y,2y}df_{2y})}{1+r_{3y}\alpha_{2y,3y}}$

At this point we have bootstrapped the curve to 3Y. In order to then create the zero curve values I can perform for any tenor $x$:

$z_{x} = \frac{1}{df_x}^\frac{1}{t_{0,x}} - 1$

$t_{a, b} = \text{Year fraction of your choice, suppose ACT/ACT, from } a \text{ to } b$

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.