# Bootstrapping zero coupon rates

How do we obtain discount rates to obtain zero coupon rates given only swap rates? what is the procedure? Also what exactly is curve calibration?

In general, see Definition 1.5.3 in Brigo and Mercurios fantastic book on interest rate modelling, a forward swap rate with payment dates $$T_{\alpha+1},...,T_\beta$$ is given by \begin{align*} S_{\alpha,\beta}(t) = \frac{P(t,T_\alpha)-P(t,T_\beta)}{\sum\limits_{i=\alpha+1}^\beta \tau(T_{i-1},T_i)\cdot P(t,T_i)}, \end{align*} where $$\tau$$ meausres the difference between two time points with respect to any day time convention. $$P(t,T)$$ is the time $$t$$ price of a default-free zero-coupon bod with maturity $$T$$ paying a face value of \\$1.

With this equation, given all discount factors (zero coupon bonds), you can build the entire swap curve. On the other hand, if you know all swap rates, you recover the zero-coupon bond curve.

I give you a simple example assuming the following. Let $$t=0$$ and assume that the swap pays semi-annually and thus $$\tau(T_{i-1},T_i)=\frac{1}{2}$$. Suppose furthermore that the swap begins immediately and thus $$T_\alpha=t=0$$ (note that $$S_{0,\beta}(t)$$ is known as spot swap rate). I will furthermore use continuous compounding such that $$P(t,T)=e^{-r_{t,T}\cdot\tau(t,T)}$$ where $$r$$ is the corresponding zero rate (aka spot rate). Finally, assume that the swap matures in two years and pays in 6 months, 12 months, 18 months and 24 months. This means $$\beta=4$$ and $$T_1=0.5$$, $$T_2=1$$, $$T_3=1.5$$ and $$T_4=2$$. Then, the formula from above reduces to \begin{align*} S_{0.5} &= \frac{1-e^{-r_{0.5} \cdot 0.5}}{\frac{1}{2}e^{-r_{0.5} \cdot 0.5}}, \\ S_{1} &= \frac{1-e^{-r_{1} \cdot 1}}{\frac{1}{2}\left(e^{-r_{0.5} \cdot 0.5} + e^{-r_{1}\cdot 1} \right)}, \\ S_{1.5} &= \frac{1-e^{-r_{1.5} \cdot 1.5}}{\frac{1}{2}\left(e^{-r_{0.5} \cdot 0.5} + e^{-r_{1}\cdot 1}+ e^{-r_{1.5}\cdot 1.5} \right)},\\ S_{2} &= \frac{1-e^{-r_{2} \cdot 2}}{\frac{1}{2}\left(e^{-r_{0.5} \cdot 0.5} + e^{-r_{1}\cdot 1}+ e^{-r_{1.5}\cdot 1.5}+ e^{-r_{2}\cdot 2} \right)}. \end{align*}

You can then obtain your zero rates step-by-step. Look at the first equation, you know $$S_{0.5}$$ from your swap curve. Solve this equation in order to obtain $$r_{0.5}$$. With this value go to the next equation, take $$S_{1}$$ from your swap curve, plug everything in and solve for $$r_1$$, etc. This way you obtain all your zero rates and thus, by definition, you bond prices (discount factors), as well. The same logic (and the formula at the top) applies if you change the method of compounding or if your swap pays annually or quarter-annually.

Edit

Just to clarify, the choice $$P(t,T)=e^{-r_{t,T} \tau(t,T)}$$ was a mere example and, of course, one may use discrete interest rates as well. Instead, one can simply set $$P(t,T) = \left( 1+\frac{y^k_{t,T}}{k} \right)^{-k\tau(t,T)}$$ for a $$k$$ times per year compounding method. However, there is an obvious relationship between discrete and continuous rates, so you can always convert one into the other. Both approaches are equivalent.

Furthermore, I’d be very careful to bluntly condemn all „physics calculus“ as it has proven to be extremely successful to work with time continuous models for both pricing and hedging of derivatives contracts.

Also zero coupon swaps are kind of weird animals. You can price them in bbg. I don't think a lot trade. Obviously they're used in loads of models. You might imagine the differences verse treasury zero's as you're not paying a discount up front to receive par at maturity. They're accruing and pay out at the end as i remember? I don't believe that people have used anything but 3m eurodollars for the front end since the other libors basically broke in the crisis and so like 4 compounded 3m euro's won't equal 12m libor but heuristically would be closer to a 1yr swap rate (the crisis made term vs. revolvers really matter). What John says about continuous time is interesting. I know sell side traders do arb/rv stuff with euro's and even like odd points on the swap curve that get pushed out with a big unwind or something. Certainly the swap curves i've made have always used actual day count conventions etc. But i do find it interesting that generally the swap curve at least appears to be continuously differentiable and smooth. I don't think i've ever really seen a dealer close their curve or the forward matrix when it isn't. Which is why swaps are so nice for quants to do all the forwards and run interest rate simulations (MBS) and price complex derivatives all with smooth curves etc. I always found the smoothness phenomenon sort of strange though. Another new complication for swaps is ois discounting which is far more complicated. Because you can't just seamlessly go from forward to discount to coupon like you can with treasuries so its a bit strange.

First, you will need to supplement swap rates (which start at 2 years maturity) with some other shorter term rates. LIBOR cash rates are available for 1 day, 1 week, 1 month, 3, 6, and 12 months.

Note that LIBOR rates may be eliminated in the next year in favor of SOFR rates, but it is not clear if regulators will be able to implement this change in time for their deadline. LIBOR is simply too important to just be "turned off" on date decreed by regulators - the market would shut down and cause economic chaos. Regulators may push for SOFR adoption as quickly as possible, but so far there are a lot of implementation issues.

Second, swaps generally pay (and compound) semi-annual on the fixed side - not "continuous time" as implied in KeSchn's answer. e to the power of x should not appear in a bond formula; it doesn't matter how many physics PhDs try to force physics calculus into finance. Fixed legs of swaps compound semi-annually. Its not just unnecessary physics equations, its wrong.

I write quant algorithms for a major bank, and co-wrote a book on bootstrapping algorithms. Most big banks have eliminated their use of continuous time models (e to the x), because people like me made a lot of money arbitraging those erroneous models with correct models :)