Skip to main content

SVI from zero

1/5

What is SVI?

SVI stands for Stochastic Volatility Inspired. It is a 5-parameter formula that describes the shape of a volatility smile at a single expiry.

Most smile models work in implied-vol space. SVI is different: it parameterizes total implied variance as a function of log-moneyness. This might sound like a detour, but it turns out to make arbitrage constraints trivially simple.

The formula is:

SVI total variance
w(k) = a + b(ρ(k − m) + √((k − m)² + σ²))
w(k) is total implied variance = σ_imp² · T. k = ln(K/F) is log-moneyness. Five parameters: a, b, ρ, m, σ.

Move the sliders below to see how the total variance curve changes. The x-axis is log-moneyness (negative = OTM puts, positive = OTM calls). The y-axis is total implied variance.

Total Variance w(k)
0.0500.1010.151-0.3-0.2-0.1ATM0.10.20.3Log-moneyness (k)
a (level)0.040
Overall variance level — shifts the entire curve up or down
b (angle)0.250
Wing steepness — higher b means steeper wings
ρ (rotation)-0.40
Skew direction — negative = put skew, positive = call skew
m (translation)0.00
Horizontal shift of the smile minimum
σ (smoothing)0.200
Roundness at ATM — small = sharp V, large = smooth U

Black-Scholes uses implied vol (σ_imp). But vol depends on both the smile shape and the time to expiry. Total variance w = σ_imp² · T factors the time out, leaving a quantity that grows monotonically with maturity. That monotonicity is exactly what you need to enforce calendar arbitrage freedom.

The 5 parameters

Each parameter controls one geometric aspect of the smile. Click through them one at a time and watch what changes.

The dashed line is the baseline (a typical put-skew smile). The solid colored line shows what happens when you move the highlighted parameter. Everything else stays fixed.

a -- overall variance level
Shifts the entire curve up or down uniformly. Higher a means higher implied volatility everywhere. Think of it as a baseline variance that applies to all strikes.
112%127%143%-0.3-0.2-0.1ATM0.10.20.3Log-moneyness (k)
a (level)0.040
Default: 0.040Dashed = baseline

Wing behavior: far from ATM, the smile approaches straight lines. The put-wing slope is b(1 − ρ) and the call-wing slope is b(1 + ρ). With typical put skew (ρ < 0), the left wing is steeper.

Asymptotic slopes
Put wing: b(1 − ρ)     Call wing: b(1 + ρ)
These bounded, linear wings are one of SVI’s key advantages. The smile never extrapolates to absurd values.

From variance to vol

SVI gives you total variance w(k). The familiar IV smile is just one square root away.

Variance to IV
σ_BS(k) = √(w(k) / T)
Divide total variance by time to expiry, then take the square root. That gives you the implied vol at each strike.

Below, both curves are generated from the same SVI parameters. The left panel shows total variance (the space SVI works in). The right panel shows the implied vol smile (the space traders think in). Move the sliders and watch both update simultaneously.

Total Variance w(k)
0.0500.1010.151-0.3-0.2-0.1ATM0.10.20.3Log-moneyness (k)
Implied Vol (%)
112%127%143%-0.3-0.2-0.1ATM0.10.20.3Log-moneyness (k)
a (level)0.040
Overall variance level — shifts the entire curve up or down
b (angle)0.250
Wing steepness — higher b means steeper wings
ρ (rotation)-0.40
Skew direction — negative = put skew, positive = call skew
m (translation)0.00
Horizontal shift of the smile minimum
σ (smoothing)0.200
Roundness at ATM — small = sharp V, large = smooth U

Notice that the variance curve is smoother and more “V-shaped” than the vol curve. The square root compresses large values and stretches small ones, making the vol smile appear more rounded.

Why this matters for practitioners: when fitting SVI, you optimize in variance space (where the formula lives), but you evaluate the quality of the fit by looking at IV residuals (where traders quote).

No-arbitrage constraints

Not all SVI parameter combinations are valid. Some create smiles that violate no-arbitrage conditions. Use the widget below to find the boundary.

There are three key constraints. When any is violated, a risk-free profit opportunity exists — meaning the smile cannot be the true market price of risk.

Butterfly constraint
b(1 + |ρ|) ≤ 4/T
Prevents negative local variance. If this fails, butterfly spreads have negative cost — free money.
Non-negative minimum
a + bσ√(1 − ρ²) ≥ 0
The smile minimum must be above zero. Negative total variance is not physically possible.
Roger Lee moment formula
b(1 + |ρ|) ≤ 2
Bounds how fast the wings can grow. In practice, the butterfly constraint is more binding for short-dated options.

Try the presets below, then move sliders to see the boundaries. The curve turns red when any constraint is violated.

Butterfly: b(1+|ρ|) = 0.260 48.7Min variance: 0.0782 0Lee moment: b(1+|ρ|) = 0.260 2
No arbitrage — this smile is safe
105%117%129%-0.3-0.2-0.1ATM0.10.20.3Log-moneyness (k)
a (level)0.040
b (angle)0.200
ρ (rotation)-0.30
m (translation)0.00
σ (smoothing)0.200

Calibration

Given market-observed implied vols, find the 5 SVI parameters that reproduce them best. Try it by hand.

The orange circles are synthetic market quotes — a realistic BTC smile at 30 DTE. The green curve is the SVI fit. Vertical lines show the residual (error) at each point.

Adjust the sliders to minimize the RMSE. Hit “Show best fit” to see a close-to-optimal parameter set.

RMSE44.82%(Poor)
64%84%104%-0.3-0.2-0.1ATM0.10.20.3Log-moneyness (k)
SVI fitMarket dataResidual
a (level)0.040
b (angle)0.150
ρ (rotation)-0.10
m (translation)0.00
σ (smoothing)0.250

In practice: a numerical optimizer (Levenberg-Marquardt or SLSQP) does this in under 10 ms per expiry. The optimizer minimizes the weighted sum of squared residuals while enforcing the arbitrage constraints from Section 4.

Initialization matters: a bad starting guess can trap the optimizer in a local minimum. Common approach: set a from ATM variance, b from observed wing slope, ρ ≈ −0.3, m ≈ 0, σ ≈ 0.1.

Where to go next:

SVI reference page — full parameter table, fitting details, variants

ORC Wing (Jump-Wing) — SVI reparameterized for traders

SSVI — extending SVI to the full surface