Bootstrapping (finance)

In finance, bootstrapping is a method for constructing a (zero-coupon) fixed-income yield curve from the prices of a set of coupon-bearing products, e.g. bonds and swaps.

A bootstrapped curve, correspondingly, is one where the prices of the instruments used as an input to the curve, will be an exact output, when these same instruments are valued using this curve. Here, the term structure of spot returns is recovered from the bond yields by solving for them recursively, by forward substitution: this iterative process is called the bootstrap method.

The usefulness of bootstrapping is that using only a few carefully selected zero-coupon products, it becomes possible to derive par swap rates (forward and spot) for all maturities given the solved curve.

Methodology
As stated above, the selection of the input securities is important, given that there is a general lack of data points in a yield curve (there are only a fixed number of products in the market). More importantly, because the input securities have varying coupon frequencies, the selection of the input securities is critical. It makes sense to construct a curve of zero-coupon instruments from which one can price any yield, whether forward or spot, without the need of more external information. Note that certain assumptions (e.g. the interpolation method) will always be required.

General methodology
The general methodology is as follows: (1) Define the set of yielding products - these will generally be coupon-bearing bonds; (2) Derive discount factors for the corresponding terms - these are the internal rates of return of the bonds; (3) 'Bootstrap' the zero-coupon curve, successively calibrating this curve such that it returns the prices of the inputs. A generically stated algorithm for the third step is as follows; for more detail see.

For each input instrument, proceeding through these in terms of increasing maturity:
 * solve analytically for the zero-rate where this is possible (see side-bar example)
 * if not, iteratively solve (initially using an approximation) such that the price of the instrument in question is exactly made output when calculated using the curve (note that the rate corresponding to this instrument's maturity is solved; rates between this date and the previously solved instrument's maturity are interpolated)
 * once solved, save these rates, and proceed to the next instrument.

When solved as described here, the curve will be arbitrage free in the sense that it is exactly consistent with the selected prices; see and. Note that some analysts will instead construct the curve such that it results in a best-fit "through" the input prices, as opposed to an exact match, using a method such as Nelson-Siegel.

Regardless of approach, however, there is a requirement that the curve be arbitrage-free in a second sense: that all forward rates are positive. More sophisticated methods for the curve construction — whether targeting an exact- or a best-fit — will additionally target curve "smoothness" as an output, and the choice of interpolation method here, for rates not directly specified, will then be important.

Forward substitution
A more detailed description of the forward substitution is as follows. For each stage of the iterative process, we are interested in deriving the n-year zero-coupon bond yield, also known as the internal rate of return of the zero-coupon bond. As there are no intermediate payments on this bond, (all the interest and principal is realized at the end of n years) it is sometimes called the n-year spot rate. To derive this rate we observe that the theoretical price of a bond can be calculated as the present value of the cash flows to be received in the future. In the case of swap rates, we want the par bond rate (Swaps are priced at par when created) and therefore we require that the present value of the future cash flows and principal be equal to 100%.


 * $$1 = C_{n} \cdot \Delta_1 \cdot df_{1} + C_{n} \cdot \Delta_2 \cdot df_{2} + C_{n} \cdot \Delta_3 \cdot df_{3} + \cdots + (1+ C_{n} \cdot \Delta_n )   \cdot df_n $$

therefore
 * $$df_{n} = {(1 - \sum_{i=1}^{n-1} C_{n} \cdot \Delta_i \cdot df_{i}) \over (1 +  C_{n} \cdot \Delta_n )}$$

(this formula is precisely forward substitution)


 * where
 * $$C_{n}$$ is the coupon rate of the n-year bond
 * $$\Delta_i$$ is the length, or day count fraction, of the period $$[i - 1; i]$$, in years
 * $$df_{i}$$ is the discount factor for that time period
 * $$df_{n}$$ is the discount factor for the entire period, from which we derive the zero-rate.

Recent practice
After the financial crisis of 2007–2008 swap valuation is typically under a "multi-curve and collateral" framework; the above, by contrast, describes the "self discounting" approach.

Under the new framework, when valuing a Libor-based swap: (i) the forecasted cashflows are derived from the Libor-curve, (ii) however, these cashflows are discounted at the OIS-based curve's overnight rate, as opposed to at Libor. The result is that, in practice, curves are built as a "set" and not individually, where, correspondingly: (i) "forecast curves" are constructed for each floating-leg Libor tenor; and (ii) discounting is on a single, common OIS curve which must simultaneously be constructed.

The reason for the change is that, post-crisis, the overnight rate is the rate paid on the collateral (variation margin) posted by counterparties on most CSAs. The forward values of the overnight rate can be read from the overnight index swap curve. "OIS-discounting" is now standard, and is sometimes, referred to as "CSA-discounting".

See: for context;  for the math.