Skip to content
All library documents

Interpolate Implied Volatility Using Total Variance

Article Quant Q&A · Author: Gus Montano

Summary

The document explains why a volatility interpolation function can disagree with a calculation that linearly interpolates annualized variances. Its method first converts each quoted volatility into total variance by multiplying its square by its time to maturity. It then linearly interpolates total variance across the two maturities and divides by the target time before taking the square root to recover annualized volatility.

The example gives two maturities, their volatility inputs, and the function’s output. Applying the total-variance method reproduces that output, whereas direct interpolation between annualized variances produces a different figure. This distinction matters because variance accumulates over time under the stated scaling assumption. The explanation addresses interpolation mechanics only; it does not establish that this interpolation is appropriate for every volatility surface, asset, or pricing model, and the time units must be used consistently.

Key ideas

  • Convert each annualized volatility quote into total variance by multiplying squared volatility by maturity.
  • Interpolate total variance linearly across maturities.
  • Divide interpolated total variance by target maturity and take the square root to obtain annualized volatility.
  • Linear interpolation of annualized variance differs from interpolation of total variance.
  • Use consistent time units when converting between total and annualized variance.

Tags

Full text
# Excel Add-In Volatility Interpolation I am trying to Understand


# Excel Add-In Volatility Interpolation I am trying to Understand












The Microsoft Excel at my investment bank has an .xll add-in with a function whose coded functionality I cannot observe. This function is called VolInterp and as the name suggests, calculates the interpolated sample volatility.

The problem is I cannot yield the same numbers as this function through a manual calculation. I'm therefore questioning my understanding of how the overall project is utilising these volatilities.

My understanding of interpolation is that through an iid assumption, the variances of a data series scaled for time are additive and hence the linear interpolation occurs at the variance level before square rooting to retrieve the volatility. The result of this logic does not match that of the VolInterp() function.

I am hoping that one of the many intelligent people on this website may crack the coded functionality behind the VolInterp() function. To help, I will provide the numbers I am working with including the result of the VolInterp() function.

Many thanks in advance

Times

T1 = 30 days

T2 = 61 days

t = 31 days

Volatilities

V1 = 13.5611203572058%

V2 = 13.132597021628%

Interpolated Volatility via VolInterp() Function

v = 13.5343228915993%

My Answer

$$ v = \sqrt{\left(\frac{t-T_{1}}{T_{2}-T_{1}}\right)V_{2}^{2}+ \left(\frac{T_{2}-t}{T_{2}-T_{1}}\right)V_{1}^{2}}$$

$v = $13.5475085970615%

Function Description:

The value returned is the square root of the result of linearly interpolating "yvals $\times$ yvals $\times$ xvals" divided by the square root of x. So if x and xvals are year fractions and yvals are annualized volatilities then the returned value is an annulaized volatility obtained by linearly interploating the variances.

## Answer by Ivan (score 3, accepted)

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

They are lineary interpolating in total variance. I find the exact same answer as your add-in function returns.

In other words the interpolation is made wrt time and between $z_1 = T_1 \times v_1 \times v_1$ and $z_2 = T_2 \times v_2 \times v_2$.

$$z_t = \frac{t-T_1}{T_2-T_1} \times (z_2-z_1) + z_1.$$

$$v_t = \sqrt{z_t / t} = 13.5343.$$

Your formula works on annualized variance rather than total variance.

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.