The Volatility Risk Premium and Variance Swaps
The volatility risk premium is the persistent tendency for option-implied volatility to exceed subsequently realized volatility — the compensation investors pay, on average, to be insured against volatility spikes. Selling that insurance is one of the oldest and most reliable carry trades in markets, and also one of the most lethal: the premium is real, the long-run edge is real, and the strategy still bankrupts people on a regular schedule because the payoff is short a fat left tail. This article derives the premium properly, builds the variance swap that isolates it, and is blunt about the sizing problem that is the whole game. It connects directly to dispersion and gamma scalping and the implied volatility surface.
Why implied exceeds realized
The empirical fact: across decades and asset classes, the average of implied variance exceeds the average of subsequent realized variance, typically by a few volatility points on equity indices. This is not a market inefficiency — it is a risk premium with three reinforcing causes:
- Hedging demand. Portfolio managers are structurally long equities and want
downside protection, so they are natural buyers of index puts and variance. That one-directional demand bids up implied vol above its fair (realized) level.
- Negative correlation with wealth. Volatility spikes precisely when markets crash
and marginal utility is highest. An asset that pays off in bad states is worth paying a premium for; selling it (short vol) must therefore earn a premium for bearing losses exactly when they hurt most. This is the consumption-CAPM logic applied to vol.
- Jump and tail compensation. Realized-variance estimators from diffusive moves
understate the risk of jumps; implied vol prices the jump risk that has not yet shown up in the sample. You are paid for the gap.
The premium is the difference between the risk-neutral and physical expectations of variance — the same wedge that separates a GARCH forecast of realized vol from the level the options market quotes. Crucially it is a premium for a risk you actually bear, so it cannot be diversified or levered away; harvesting it means warehousing the variance risk that everyone else is paying to shed.
The variance swap: a clean instrument for the premium
A delta-hedged option harvests the premium but its exposure to realized variance is path-dependent through gamma (you are most exposed near the strike, barely exposed in the wings). A variance swap removes that wart: it pays the difference between realized variance and a fixed strike, with constant dollar exposure to variance regardless of where spot goes.
payoff = N_var * (realized_variance - K_var)
realized_variance = (252 / n) * sum( ln(S_t / S_{t-1})^2 ) # annualized, zero-mean
Nvar is the variance notional (often quoted as vega notional divided by 2Kvol so a 1-vol-point move is intuitive). Sell the variance swap and you receive K_var (implied) and pay realized — you are short the premium, collecting when realized comes in below the strike. The payoff in variance is linear, but in volatility* it is convex: because variance is vol squared, a doubling of vol quadruples your loss. That convexity is the entire risk story and the reason variance swaps are more dangerous than they look.
import numpy as np
def realized_variance(prices, ann=252):
logret = np.diff(np.log(prices))
return ann * np.mean(logret**2) # zero-mean convention
def varswap_pnl(prices, k_vol, vega_notional):
rv = realized_variance(prices)
k_var = k_vol**2
var_notional = vega_notional / (2 * k_vol)
# Short variance swap: receive strike, pay realized
return var_notional * (k_var - rv)
Replication: why the strike is the whole strip
The beautiful result that makes variance swaps tradeable is that a variance swap can be statically replicated by a portfolio of options across all strikes, weighted by 1/K^2, plus a dynamic delta hedge. Intuitively, weighting options as 1/K^2 makes the aggregate gamma constant in spot, which is exactly the constant variance exposure you want:
fair_var_strike ≈ (2/T) * [ integral over OTM puts and calls of (1/K^2) * price dK ]
(adjusted for the forward)
This is precisely the construction behind the VIX: the VIX is (the square root of) a 30-day variance swap rate computed from the SPX option strip. So when you trade the VIX complex you are trading the replicating portfolio's fair strike, and the 1/K^2 weighting tells you why the wings of the surface dominate the variance strike — deep OTM puts get enormous weight. Two consequences quants must respect:
- The variance strike is highly sensitive to the tails of the smile, where quotes
are thin and your marks are least reliable. The replication is only as good as your wing prices.
- Real variance swaps cap the realized variance (a contractual cap, e.g. 2.5x the
strike) precisely because a single crash day can make uncapped realized variance explode — the cap is the dealer admitting the left tail is unbounded.
Harvesting the VRP
The menu of ways to be short the premium, from cleanest to messiest:
| Instrument | Exposure | Main wart |
|---|---|---|
| Short variance swap | clean, constant variance | OTC, jump/cap risk, balance sheet |
| Short straddle, delta-hedged | gamma-weighted realized | path dependence, rehedge cost |
| Short VIX futures / long inverse ETP | term-structure carry | roll risk, ETP path decay, gap risk |
| Covered calls / put writing | premium + equity beta | not pure vol, beta-dominated |
The cleanest systematic version is rolling short variance (or short straddles delta-hedged), sized to a volatility target. A large part of realized short-VIX-futures returns also comes from roll carry: when the VIX term structure is in contango (the normal state), short futures roll down the curve and earn carry independent of the implied-realized gap. That carry and the VRP are related but distinct, and in a backtest they are easy to conflate — separate them, because the roll carry inverts violently in backwardation (stress) at the same moment the VRP turns against you.
def short_vol_target_size(forecast_vol, target_vol=0.10, cap=3.0):
# Inverse-vol position sizing for a short-vol sleeve; cap the leverage
raw = target_vol / max(forecast_vol, 1e-6)
return min(raw, cap)
The tail risk of short vol
Be explicit about the shape: short volatility is a short-put payoff. The return distribution is a long string of small positive carry punctuated by rare, enormous losses, and the convexity of variance means the worst day is far worse than the daily volatility suggests. Three properties that destroy the naive practitioner:
- Volatility clustering and gaps. Losses are not independent — they cluster (a
spike begets spikes) and arrive in gaps that you cannot delta-hedge through. The February 2018 "Volmageddon" wiped out short-VIX ETPs in a single afternoon; LTCM-era and 2008 short-vol books behaved the same way.
- Standard risk numbers lie. A short-vol book's calm-period
volatility, VaR, and Sharpe all flatter it because the tail is absent from the sample. Use maximum drawdown and CVaR/expected shortfall computed on stressed or simulated jump scenarios, never the in-sample Gaussian numbers, which understate the loss by an order of magnitude.
- Path kills leverage. Even if you are "right" over a year, the convex losses
compound: a 50% drawdown needs a 100% gain to recover, and a levered short-vol book can hit zero before the premium pays you back. Survival, not expected return, is the binding constraint.
Sizing is the entire strategy
Because the edge is real and the tail is lethal, the only thing that matters is sizing so the tail cannot end you. Concretely:
- Volatility-target small and cap leverage. Inverse-vol sizing keeps risk roughly
constant, but the cap matters more than the target — uncapped inverse-vol increases size as vol falls, loading up right before the spike. Hard-cap the gross.
- Buy back the tail. Pair the short variance with cheap deep-OTM puts or a long
position in a further-out, convex part of the curve so the left tail is bounded. You give up some carry to convert an unbounded short put into a put spread; over a full cycle this often raises the geometric (compounded) return because it prevents the ruinous drawdowns. Kelly-style sizing on the raw short-vol payoff is a trap because the payoff's variance is itself unbounded.
- Diversify the premium, not just the names. The VRP is correlated across assets in
a crisis (everything's vol spikes together), so cross-asset diversification helps in calm regimes and fails in the tail — size for the failure.
Honest limits and decay
The volatility risk premium is one of the best-documented sources of carry in finance, and it persists because it compensates a genuine, undiversifiable risk that most market participants rationally pay to avoid. But the premium is compensation for losses you will eventually take, not free money: its honest long-run Sharpe is moderate, most of the losses arrive in a handful of days per decade, and naive implementations (uncapped inverse-vol, levered short-VIX ETPs) have repeatedly gone to zero. Crowding compresses the premium in calm periods and amplifies the unwind in stressed ones. Harvest it as a small, tail-hedged, vol-targeted sleeve sized to survive a multi-sigma overnight gap, account for roll carry separately from the implied-realized gap, and price your risk off stressed scenarios rather than the seductive calm-period statistics. The trade is not "sell vol because implied beats realized" — it is "sell vol in a size and structure that is still standing after the day implied was right to be high."
