The Construction of an Interest Rate Vol Cube

A volatility surface maps the time-to-expiration and strike to the volatility data. To capture the implied volatilities for a particular instrument such as an equity index or a currency, a volatility surface is sufficient. The interest rate volatility products are more complex as they have an extra dimension: the tenor of the underlying swap type of instrument. Hence, a volatility cube which handles the mapping from time-to-expiration, tenor, strike to implied volatility is required.

Based on [1] and [2], I implemented the algorithms related to the construction of a volatility cube. Swaptions and cap/floor are taken as a the raw inputs. In some implementation, other derivatives such as eurodollar futures (ED/ER series) can also be included as extra inputs. I pick the USD rates market on 2021-03-16 as an example throughout this blog. By adding a market to each of the cell in the volatility cube that I have access to the quotation of the underlying instrument, we can see the sparseness of the input data set. While those at forefront of rates trading would have better access, that would not change the fact that many data points would not have readily available quotations as the liquidity is similarly not there for some of the data points. Some form of volatility extrapolation (“smile-lift” as explained later) would be necessary.

Quote available to build a Volatility Cube (USD as of 2021-03-16). Source: ICAP/Bloomberg

Vol from Cap/Floor & Swaption

As swaption and cap/floor provide complementary information, they are both necessary when building a volatility cube.

One of the main use of swaption is to hedge the prepayment risk of mortgage exposure. The demand is thus concentrated to the at-the-money (ATM) or near ATM strikes. While ATM quotations are readily available for most standard expiration dates and tenors, quotations for Out-of-The-Money (OTM) strikes are limited only to a few most popular time-to-expiration and tenor combinations. Also the range of strikes is usually not far away from the ATM strike.

Introducing interest rate cap/floor as the inputs fill some gaps in both time-to-expiration and strike dimensions. As the caps and floors are often utilised to hedge contractual upper and lower bounds floating rate obligations, the dealers tend to make market for a wider set of fixed strikes for expiration dates ranging from 1 year to 20-30 years. However, the caps/floors have very limited range in terms of tenor. A cap/floor should be interpreted as a series of interest rate options with a tenor the same as that of the payment period. Much of the trading follows the market convention of which payment period is 3-month for USD, 6-month for GBP, 3-month if maturity equals to or below 2-year and 6-month if above for EUR. In other words, the tenor is restricted to either 3-month or 6-month. Nevertheless, the wider strike range and comprehensive coverage on different expiration dates make them complementary to the swaption data.

Implied volatilities

For a strike {K}, notional {N}, year fraction between time x and y be {\tau_{x,y}} and a reference index rate {L} e.g. LIBOR being fixed at {t_{t-1}} and paid at {t_i}, the payoffs of cap, floor and swaption are as follows.

\displaystyle  Cap = N \sum_{i=1}^n P(t_0, t_i) \, \tau_{t_{i-1}, t_i} \, (L(t_{i-1}, t_i)-K)^+

\displaystyle  Floor = N \sum_{i=1}^n P(t_0, t_i) \, \tau_{t_{i-1}, t_i} \, (K-L(t_{i-1}, t_i))^+

\displaystyle  Swaption = N \left( \sum_{i=1}^n P(t_0, t_i) \, \tau_{t_{i-1}, t_i} \, (L(t_{i-1}, t_i)-K) \right)^+

Each swaption is defined by its time-to-expiration, tenor and strike The calculation of the implied volatility is straightforward. It involves the conversion of quoted price to implied volatility using a root finding algorithm. Due to the current low rate environment, either shifted Black or Bachelier model are commonly being used

The volatility calculation for a cap requires more in-depth explanation. Recalling that a cap is comprised of a series of caplets. There is a flat volatility which treats the whole cap as if it is a single option. A series of spot volatilities corresponding to the maturity of each caplet can also be calculated. In the case of volatility cube, the latter is what we require. Let’s say the payment frequency is quarterly and the 1-year cap is examined first. Note the convention to ignore the trade date as a reset date. There are three caplets in that of the 1-year cap with the reset date be 3-month, 6-month, 9-month and the payment date at 6-month, 9-month, 12-month respectively. Since the caplets are not traded separately, assumptions have to make upon the shape of the caplet volatility curve. A common assumption is to assume the caplet volatilities to be the constant within the same year. After processed the 1-year cap, the implied caplet volatility calculations can be advanced to the 2-year cap. There are 4 caplets between year 1 and year 2 (reset date at 12-, 15-, 18- and 21-month). Subtracting the premium of a 1-year cap from that of the 2-year cap gives the sum of premiums for these four caplets. The implied volatility calculation can be repeated for the rest of the interest rate caps as well as the floors.

Filling in the Blanks

The table below shows the number of implied volatility calculations is available each time-to-expiration and tenor tuple (referred as a “cell” in this section). There are three main types of cells when classified in terms of data source: 1. with cap/floor data (grey cells), 2. with ATM and OTM swaption data (beige cells), 3. with ATM swaption data only (turquoise cells). In the first type of cells (in grey), implied volatility are derived from cap and floor data. When examined the raw input, each cell has cap/floor prices at fixed strikes from 0.5 to 7% with 0.5% increment for the lower rates and 1.0% for the higher end. ATM caps are also available. The second type of cells (in beige) has both ATM and OTM swaption data. The strikes are relative to ATM (e.g. ATM {\pm0.5\%, \pm1\%, \pm2\%, \pm3\%}) rather than fixed. The third type of cells (in turquoise) only has volatility calculation at ATM strike.

Number of implied volatilities calculations available for each expiration and tenor (as of 2021-03-16 USD Volatility Cube)

The SABR is a popular model which can be used to capture the volatility smile. Usually {\beta} for SABR is preselected and leaves with three parameters to estimate. The first two types of cells (in grey and beige) all have sufficient data to build a volatility smile. The implied volatility for any strike of these cells can be found using this fitted SABR model.

For the third type of cells (in turquoise), there is only an implied volatility estimate at the ATM strike. We would have to assume the shape of the volatility smile is similar to another cell which is either type 1 (grey) or type 2 (beige). We can either pick a neighbouring cell, or if nothing is available close by, the cap with matching expiration date can be selected. This procedure is known as “smile-lift”.

Smile-lift can be done in a number of different ways.

  • Moneyness Adjustment
    Suppose {\sigma_u=\sigma(\epsilon_u, \tau_u, k_u)} for cell {u} with time-to-expiration of {\epsilon_u}, tenor of {\tau_u}, strike of {k_u} is the unknown volatility we want to find and cell {a} be the one with a fitted volatility smile model.

    Define relative strike {\tilde{k}}

    \displaystyle \tilde{k} = k \frac{ k_a^{ATM}}{k_u^{ATM}}

    where {k_a^{ATM}} is the ATM strike at expiration of {\epsilon_a} and tenor of {\tau_a}.

    If using Bachelier option quoting model,

    \displaystyle \sigma_u= \sigma(\epsilon_u, \tau_u, k_u^{ATM})+\sigma(\epsilon_a, \tau_a, \tilde{k})-\sigma(\epsilon_a, \tau_a, k_a^{ATM})

    If using Black option quoting model,

    \displaystyle \sigma_u= \sigma(\epsilon_u, \tau_u, k_u^{ATM})*\sigma(\epsilon_a, \tau_a, \tilde{k})/\sigma(\epsilon_a, \tau_a, k_a^{ATM})

  • SABR Lift
    Let {\alpha_a, \beta_a, \nu_a, \rho_a} be the parameters of the SABR model fitted to cell {a}. Parameter {\beta_a, \nu_a} and {\rho_a} represent the shape of the smile. To lift the volatility smile from cell {a} to cell {u}, the parameter {\beta_u, \nu_u} and {\rho_u} are set to be the same as {\beta_a, \nu_a} and {\rho_a}. {\alpha} is a volatility-like parameter. {\alpha_u} is calibrated such that the SABR model at cell {u} gives the ATM swaption volatility at {k_u^{ATM}}

It is also possible to derive a structural model by relating the SDEs of the forward swap rate to forward rates. Please refer to [2] for details.

A Worked Example

Smile-lift is a form of extrapolation with many different possible approaches. For instance, we can lift the smile from the cap volatility far away. We can also lift the smile from nearby cells with both ATM/OTM swaption quotes and take weighted average between them. There is no right or wrong but have to test against real data to tell which approach is a better method.

A worked example is shown here without any attempt to show which approach is statistically better. The target is the 2Y x 10Y (time-to-expiration x tenor) USD swaptions with different strikes on 2021-03-16. The implied volatilities of these strikes are known and will be used as a reference when comparing with the outputs generated by different smile lifting approaches.

Three different approaches are demonstrated here. In the first approach (labelled as “Cap”), the volatility smile is lifted from the caps at 2Y x 3M. In the second approach (labelled as “Swptn”), the volatility smile is lifted from the swaptions twice: first from 1Y x10Y, then from 5Y x 10Y. The volatilities are calculated from each volatility smile before computing the weighted average as {\sigma = 0.75 * \sigma_{1Y x 10Y} + 0.25* \sigma_{5Y x 10Y}}. In either approach, moneyness adjustment is carried out to lift the smile. A simple average between the first and second approach is also being calculated (labelled as “Avg”).

The comparison is as shown in the table below. The values are in Bachelier volatilities in basis point. While this is a worked example with a single comparison performed for a single date, it still gives us some idea about the magnitude of estimation error. At least for this worked example, the estimations by either the first or the second approach are not too bad with the averaging cancels out much of the residual errors.

Worked example for the volatility calculation of the 2Y x 10Y point using different smile lifting approaches


Note 1 “Interest Rate Volatility Cube: Construction and Use”, Hagan & Konikov, 2004.

Note 2 “The Perfect Smile: Filling the Gaps in the Swaption Volatility Cube”, Deloitte, 2018.