Two Units, Different Measures and Timing
The "right" answer depends on which paper you are reading and which desk you are talking to. The table below covers the three definitions you will actually encounter in the wild.
| Term | Formula | Units | Where you see it | Numerical relationship |
| VRP (vol units) | \(\sigma_{\text{IV}} - \sigma_{\text{RV}}\) | Annualized volatility points (e.g. +6.0) | Practitioner blogs, retail platforms, FlashAlpha VRP API, broker risk reports | A volatility comparison; not a return or position size. |
| ATM-based variance spread | \(\sigma_{\text{IV}}^{2} - \sigma_{\text{RV}}^{2}\) | Annualized variance (vol squared) | Squared-ATM-IV proxies and the API variance field | Equals (sigma_IV - sigma_RV)(sigma_IV + sigma_RV). Same observation-level sign with identical inputs. |
| Variance swap rate | Model-free integral over the option strip | Variance points | Cboe variance swap rate, OTC variance swaps, the VIX construction | An implied leg; subtract a stated forecast or observed variance to form a premium. |
Changing volatility to variance units is an algebraic operation. Changing ATM IV to an option-strip measure, or historical RV to a future-volatility forecast, changes the economic measurement. A common abbreviation does not make those series interchangeable.
The Two Formulas, Side by Side
These formulas compare the same selected IV and RV inputs in different units. Label whether RV is historical, forecast or subsequently realized. The equations alone do not estimate an expected premium or an option-strategy return.
Volatility Risk Premium (vol units)
$$ \text{VRP}_{\text{vol}} = \sigma_{\text{IV}} - \sigma_{\text{RV}} $$
ATM-Based Variance Spread (same inputs, squared)
$$ \text{VRP}_{\text{var}} = \sigma_{\text{IV}}^{2} - \sigma_{\text{RV}}^{2} $$
Where:
- \(\sigma_{\text{IV}}\) is the option-implied annualized volatility, typically the 30-day at-the-money IV interpolated from the volatility surface. For a model-free variance comparison, replace the squared IV term with an option-strip-implied variance rate; it is not another volatility quote.
- \(\sigma_{\text{RV}}\) is annualized realized volatility over a stated trailing or forward interval. A historical lookback and a future option holding period use different information; 30 calendar days is not 30 trading sessions.
Use consistent units and document annualization and the return horizon. The VRP formula and evidence guide separates trailing and forward volatility and variance spreads, reproduces a SPY example and reports what its ATM-based study establishes.
Expected Premium Versus Realized Spread
Using a seller-positive convention, the expected variance premium compares risk-neutral and physical expectations of variance over the same future interval. Subtracting historical variance instead creates a proxy; subtracting variance observed after the interval creates an ex-post spread. Neither is an observed physical expectation. See the definition in Bali and Zhou's Federal Reserve study.
Expected variance premium, seller-positive convention
$$ \text{VRP}^{\mathrm{expected}}_t = E_t^Q[RV_{t,t+T}^2] - E_t^P[RV_{t,t+T}^2] $$
The difference-of-squares identity below applies to two selected volatility numbers. It does not equate a difference in expected volatilities with a difference in expected variances: expectations and square roots are different operations.
The Numerical Relationship
Vol VRP and variance VRP move together but with very different magnitudes. The algebraic identity that connects them is a difference of squares:
Identity linking variance VRP to vol VRP
$$ \text{VRP}_{\text{var}} = \sigma_{\text{IV}}^{2} - \sigma_{\text{RV}}^{2} = (\sigma_{\text{IV}} - \sigma_{\text{RV}})(\sigma_{\text{IV}} + \sigma_{\text{RV}}) = \text{VRP}_{\text{vol}} \cdot (\sigma_{\text{IV}} + \sigma_{\text{RV}}) $$
So variance VRP is just vol VRP scaled by the sum of the two volatilities. Three consequences fall out of this:
- Sign is preserved. For nonzero nonnegative inputs, the factor \((\sigma_{\text{IV}} + \sigma_{\text{RV}})\) is positive, so the two spreads share a sign for an observation with identical inputs. This does not establish fair value or profitability, or guarantee that their sample means share a sign.
- Magnitudes diverge in vol spikes. When IV and RV are both elevated, the multiplier grows, so variance VRP swings more aggressively than vol VRP. A 4 vol-point spread at 12 IV is a smaller variance number than a 4 vol-point spread at 30 IV.
- The two series are not rank-equivalent. Days where vol VRP is at the 90th percentile are not necessarily days where variance VRP is at the 90th percentile, because the multiplier reshuffles them. Mixing units in one z-score pipeline destroys the percentiles.
Worked Example
Take 30-day ATM IV of 18% and 30-day realized vol of 12%. Compute both versions:
$$ \text{VRP}_{\text{vol}} = 0.18 - 0.12 = 0.06 = +6 \text{ vol points} $$
$$ \text{VRP}_{\text{var}} = 0.18^{2} - 0.12^{2} = 0.0324 - 0.0144 = 0.0180 = +0.0180 \text{ decimal annual variance} $$
Verify the identity: \((\sigma_{\text{IV}} + \sigma_{\text{RV}}) = 0.30\), and \(0.06 \times 0.30 = 0.0180\). The two numbers describe the same gap, both are positive, but they live on different scales. The result is 0.0180 in decimal annual variance, or 180 volatility-points squared. The volatility spread is 6 points, not a 6% investment return. Neither spread alone recovers both original inputs.
Now repeat the exercise at higher vol. Take IV of 35% and RV of 29%. Vol VRP is still +6 points. But variance VRP is \(0.35^{2} - 0.29^{2} = 0.1225 - 0.0841 = 0.0384\). The same 6 vol-point spread now produces a variance VRP that is more than twice as large, because the multiplier \((\sigma_{\text{IV}} + \sigma_{\text{RV}}) = 0.64\) is more than twice the size. This larger multiplier can give high-volatility observations greater influence; the effect depends on the sample.
Where Each Version Shows Up
Vol-Units VRP: The Practitioner Default
The vol-units version is what you encounter in trading content, broker dashboards, and most retail-facing tools. Reasons:
- IV is quoted in vol points. If your option chain shows IV as 24%, your eye is already calibrated to vol points. Talking about VRP in the same units lets you reason about premium without an extra mental conversion.
- Vega uses vol-point units. A four-point IV-minus-RV spread is a volatility comparison, not cash collected per contract. Vega is sensitivity to IV; it does not turn that spread into an expected profit or position size.
- Practitioner content uses it. SpotGamma's support pages, MenthorQ's commentary, RobotWealth's backtests, and the FlashAlpha VRP API all lead with the vol-units version. Most retail brokerage platforms that surface IV-RV spreads also default to vol points.
- Risk reports follow suit. Broker-side and prime-side risk dashboards that show IV-RV gaps for client positions almost always use vol units, because that is how vega exposures are quoted.
If you are reading a practitioner blog post, listening to an options podcast, or looking at a VRP tile in a dashboard, assume vol units unless explicitly told otherwise.
Variance-Units VRP: The Academic and Variance-Swap Default
The variance-units version dominates the academic literature and any context where variance swaps are involved. Reasons:
- Variance aggregates linearly over time. Realized quadratic variation over a window accumulates squared-return increments; annualized measures also apply their stated scaling. Volatility (the square root) does not have this property. For continuous-time models and term-structure decompositions, working in variance avoids square-root algebra at every step.
- Variance swaps pay off in variance. A variance swap settles on the difference between realized variance and the strike (the variance swap rate), so the natural "premium" associated with the contract is in variance units. Pricing or hedging a variance swap with vol-units VRP would require constant unit gymnastics.
- The seminal papers use it. Carr and Wu's 2009 "Variance Risk Premia" paper, Bollerslev/Tauchen/Zhou's work on the equity premium, and the BIS working papers on global variance risk premia all define VRP in variance units. Any literature search that returns "VRP" almost always means the variance-units form.
- Dispersion trades use it. Index-vs-component dispersion strategies are typically structured and risk-managed in variance, because the index variance decomposes additively into component variance plus correlation. Vol units do not decompose cleanly.
- The VIX is built from it. The Cboe VIX uses a discretized option-strip calculation of 30-day implied variance on SPX, then takes its square root and quotes volatility points. The variance swap rate is the "implied" leg of the variance VRP, and the VIX is its publicly broadcast headline number.
An option-strip-implied variance measure uses a range of strikes rather than ATM IV alone. Skew, wings, strike truncation and interpolation can materially affect the result. Squaring ATM IV does not reproduce that measure; approximation error must be assessed for the application. The Cboe volatility-index mathematics methodology specifies the strip-weighting calculation.
Practical Implications
The definitions are interchangeable only in limited algebraic statements using identical inputs. Five distinctions matter in practice.
1. For an Observation's Sign: Same Inputs Required
With identical nonnegative IV and RV inputs, both spreads share a sign for an observation. A zero-threshold rule therefore selects the same dates, but that identity does not validate the rule. It also does not apply when the implied measure or RV timing differs. Sample-average signs can differ because the variance form weights high-volatility observations more heavily.
2. For Magnitude and Percentiles: Not Equivalent
The sum of IV and RV changes over time. Ranking the spreads in variance and volatility units can therefore select different dates. Neither ranking establishes a strategy edge until the resulting rule is tested. Report the implied measure, units, sample and timing alongside results.
3. For Backtesting: Pick One and Stick
The single most common mistake in homemade VRP research is mixing units across the pipeline. Computing today's spread in vol points, the trailing 252-day mean and standard deviation in variance points, and dividing through to get a "z-score" produces a number that is neither a vol z-score nor a variance z-score. The answer looks plausible because both quantities are small decimals, and the bug only surfaces when out-of-sample results disagree with in-sample.
The fix: at the top of your VRP module, declare which convention you are using and put it in the function name or column header. Convert at the boundary if you need to compare against an external source, never silently in the middle.
4. For Variance Swap Pricing: Must Use Variance
If you are quoting, hedging, or risk-managing a variance swap, you are working in variance whether you like it or not. The contract pays \( N \cdot (\text{realized variance} - K) \) where \(K\) is the variance strike. Translating this into vol units requires the square root of a sum, which does not factor cleanly. Use variance.
5. For Trading Short-Vol via Options: Use Vol Units
Vol units are convenient for interpreting listed-option vega, but returns also depend on direction, path, jumps, IV changes, hedging, margin and execution. The VRP trading guide distinguishes measurements, forecasts, tested rules and implemented returns. Its diagnostic examples do not supply validated sizing.
Which One Does the FlashAlpha VRP API Return?
The FlashAlpha VRP API returns the vol-units version. The endpoint at GET https://lab.flashalpha.com/v1/vrp/{symbol} exposes vrp_5d, vrp_10d, vrp_20d, and vrp_30d in vol points, paired with the rolling 252-day z-score and percentile, the directional decomposition (put-side vs call-side VRP), the GEX-conditioned regime, and the strategy suitability scores. This matches the convention used in every practitioner-facing FlashAlpha article and the FlashAlpha Python SDK.
Squaring the API IV and RV legs gives an ATM-based variance spread. It does not reconstruct an option-strip variance swap rate or establish academic comparability. The atm_iv field uses the first expiry at least seven days out, not necessarily constant 30-day IV. Inspect term_vrp and state the selected RV window when a tenor matters.
Sample Response Shape
{
"symbol": "SPY",
"as_of": "2026-05-09T20:00:00Z",
"vrp": {
"atm_iv": 17.42,
"rv_5d": 9.85, "rv_10d": 10.41, "rv_20d": 10.99, "rv_30d": 11.38,
"vrp_5d": 7.57, "vrp_10d": 7.01, "vrp_20d": 6.43, "vrp_30d": 6.04,
"z_score": 1.24, "percentile": 87
},
"directional": {
"downside_vrp": 8.21, "upside_vrp": 4.65
},
"regime": {
"gamma": "positive_gamma", "gamma_flip": 561.40
},
"strategy_scores": {
"short_strangle": 82, "iron_condor": 64, "put_credit_spread": 88
}
}
The vrp_5d through vrp_30d fields are volatility-point differences. Squaring atm_iv and the selected rv_* gives volatility-points squared; divide by 10,000 for decimal variance. Historical replay provides timestamped responses, but a backtest must separately establish information availability, field construction and execution assumptions.
Python: Convert Between Vol VRP and Variance VRP
A helper that computes both spreads from the same annualized IV and RV legs. Drop this next to your VRP pipeline so the unit choice is explicit at every call site.
def atm_variance_spread(iv: float, rv: float) -> float:
"""ATM-based variance spread. iv and rv are annualized decimals (0.18 = 18%)."""
return iv**2 - rv**2
def volatility_spread(iv: float, rv: float) -> float:
"""Volatility spread from the same IV and RV inputs. iv and rv are annualized decimals."""
return iv - rv
# Verify the identity: var_VRP == vol_VRP * (iv + rv)
iv, rv = 0.18, 0.12
assert abs(atm_variance_spread(iv, rv) - (volatility_spread(iv, rv) * (iv + rv))) < 1e-12
Both functions require the IV and RV legs. A volatility spread alone is insufficient to calculate its variance counterpart without their sum. Changing units does not add an option-strip measure, a future-volatility forecast or a return prediction.
FAQ
Is variance risk premium the same as volatility risk premium?
For identical IV and RV inputs, subtracting their squares gives the volatility spread multiplied by their sum. The observation-level signs match, but ranks and sample-average signs can differ. Option-strip expected variance premia also change the implied measure and future-variance expectation; they are not simply squared ATM IV minus historical RV.
What's the formula for variance risk premium?
With a seller-positive sign convention, the expected variance premium is risk-neutral expected future variance minus physical expected future variance over the same interval. An ATM-based proxy squares selected ATM IV and RV inputs and subtracts them. State whether RV is trailing, forecast or subsequently realized. Squared ATM IV is not interchangeable with option-strip-implied variance without application-specific validation.
Why do academic papers prefer variance over volatility?
Realized variance accumulates through squared-return increments, and variance swaps settle against realized variance. Option-strip replication supplies an implied variance measure. This differs from squaring a single ATM quote; each empirical study must state its measure, horizon and sign convention.
Which one does the VIX measure?
VIX quotes the square root of a discretized option-strip-implied 30-day variance measure on SPX, in volatility points. It is not itself a risk premium. VIX squared divided by 10,000 is an implied-variance input; subtracting a future variance forecast forms an expected-premium proxy, while subtracting subsequently observed variance forms an ex-post spread. Align horizon and annualization conventions.
Where can I get an ATM-based variance spread for a stock?
The FlashAlpha VRP API returns IV and trailing RV legs plus a variance_risk_premium field. Squaring the selected legs gives an ATM-based variance comparison. Document the IV expiry, RV window, units and timestamp; it is not an option-strip variance measure or a trading-return forecast.
Does squaring API IV produce model-free variance?
No. Squaring ATM IV preserves its single-strike and tenor construction. A model-free implied variance measure aggregates option prices across strikes under a stated methodology. An ATM-based spread can serve a disclosed comparison, but is not equivalent to the strip-based measure.
How do I convert volatility VRP to variance VRP?
For identical annualized IV and RV inputs, multiply their difference by their sum, or square each leg and subtract. Decimal inputs give decimal variance; percentage inputs give volatility-points squared. The identity changes units, not the implied measure, information set or expected trading return.
Should I trade variance or volatility?
Match units to the contract: variance swaps settle in variance and listed-option vega is commonly quoted per volatility point. Neither unit choice validates a trading rule or its size. Expected returns require evidence for the payoff, hedging, costs, margin and sample.
Related Reading
The difference-of-squares identity links spreads only with identical inputs. It preserves an observation's sign, not its rank, magnitude or sample-average sign. Squared ATM IV, option-strip-implied variance, historical RV and expected future RV are separate choices. Use the formula and evidence guide to identify them before comparing results or testing a trading rule.