How this is measured
The volatility risk premium (VRP) is the difference between the volatility the options market implies and the volatility that subsequently occurs. For each trading day t:
ri = ln(Pi / Pi-1) — close-to-close log return,
Yahoo Finance daily adjusted close
realizedt = stdev(rt+1 … rt+21) × √252 × 100
sample standard deviation (ddof = 1), 21 trading days
VRPt = impliedt − realizedt
The realized-vol window is the next 21 trading days strictly after t — today’s return is excluded, so there is no overlap between the implied reading and its own realization. A positive VRP means options were “rich.”
The exact inputs
| Market | Vol index | Underlying |
|---|---|---|
| S&P 500 | ^VIX | SPY |
| Nasdaq-100 | ^VXN | QQQ |
| Crude oil | ^OVX | USO |
| Gold | ^GVZ | GLD |
Daily bars, full available history per series (VIX from 1990, the ETFs from their inception). Missing days are simply absent — the two series are inner-joined on date, so a day is used only if both the index and the underlying traded. Nothing is forward-filled. Data last pulled 2026-08-28.
Download the full results JSON — every series, every statistic, every simulated month.
Overlapping windows
Consecutive daily VRP observations share 20 of their 21 forward days, so they are heavily autocorrelated. A naive daily t-test would treat ~250 observations a year as independent when there are really about 12. That inflates significance enormously.
Two defences, both reported for every market:
- Non-overlapping test. Take one observation every 21 trading days so the forward windows never overlap, then a plain one-sample t-test. This is the headline significance figure.
- Newey-West (HAC) t-stat. On the full daily series, with a Bartlett-kernel autocovariance correction out to 21 lags. Reported alongside for comparison; it typically lands a bit higher than the non-overlapping test.
Out-of-sample and regimes
Every market is split at 2016 into an in-sample and an out-of-sample period; the premium has to hold in the later, unseen window to count. Days are also bucketed into quintiles by the level of the vol index, to check whether the premium is just an artifact of calm markets (it isn’t — it is positive in every quintile), and broken out by calendar year to surface the years it failed.
The short-straddle simulation
At the start of each month, sell an at-the-money straddle on the underlying ETF, hold to the next month start. The premium collected is the Black-Scholes at-the-money straddle value with the vol index as the IV input and a zero rate:
Expiry P&L for the seller = premium − |the month’s move in S|. Returns are scaled to a 20%-of-capital allocation and compounded. Each market page also shows four refinements of this base case:
- Daily mark-to-market. The short straddle is repriced with Black-Scholes every trading day inside the month using that day’s vol-index level and the underlying’s price. This surfaces the worst intra-month loss, which is materially larger than the monthly-close figure — in March 2020, roughly −20% versus −12%.
- After costs. Give up 5% of the straddle’s value to the bid/ask spread and pay 0.15% of notional in commission per round trip. This roughly halves the illustrative Sharpe, and more in the less-liquid names.
- Position sizing. The same series at 5%, 10%, and 20% of capital — Sharpe is unchanged, only the return and drawdown scale.
- Daily delta-hedge. Hold an offsetting position in the underlying, sized to the straddle’s delta and rebalanced each close. This strips out the directional bet, leaving mostly premium minus realized variance — the “pure” VRP, and what an actual volatility desk trades. Its own hedging costs are not modeled.
What none of it captures: real option prices and skew (strikes and premia are Black-Scholes off the vol index — optimistic), margin requirements that expand during a spike and can force liquidation, assignment, the ability to actually get filled at these prices, and taxes. These are illustrations of a risk premium, not strategies you could run.
Sources and gaps
CBOE volatility indices (^VIX, ^VXN, ^OVX, ^GVZ) and ETF prices (SPY, QQQ, USO, GLD) from Yahoo Finance, daily closes, adjusted.
Small caps are missing. The Russell 2000 volatility index ^RVX is not available from this data source. Rather than substitute a proxy, small caps are simply left out.
No real option prices. Free historical option chains (true bid/ask, per-strike IV, open interest through time) do not exist, which is why the strategy uses the vol index as a stand-in for the IV a seller would actually receive — an optimistic assumption.
Download the full results JSON (every series, every stat).
Research and education only. Nothing here is investment advice or a recommendation to trade options. Selling volatility has uncapped downside. Past performance — measured or simulated — does not predict future results.