A Better Way to Model the VIX

Updated: Nov 28th, 2017 | Vance Harwood

Models are useful. They help us understand the world around us and aid us in predicting what will happen next. But it’s important to remember that models don’t necessarily reflect the underlying reality of the thing we’re modeling. The Ptolemaic model of the solar system assumed the Earth was the center of everything but in spite of that spectacular error, it did a good job of predicting the motions of the stars, planets, moon, and sun. It was the best model available for over a thousand years. But new data (e.g., phases of Venus as revealed by Galileo’s telescope) and errors in predicting the motions of the planets demonstrated that the sun-centric Copernican/Kepler models were superior.

There are a lot of models for the Cboe’s VIX. None of them are particularly good at predicting what the VIX will do tomorrow but they can be useful in predicting general behaviors of the VIX. The most popular model for the VIX (although people might not recognize it as a model) is simple mean reversion.

 Simple Mean Reversion

Car gas mileage is a good example of a simple mean reverting process.

Over time your car’s gas mileage will exhibit an average value, e.g., 28 miles per gallon. You don’t expect to get the same mileage with every tank because you know that there are factors that make a difference with your mileage (e.g., city vs highway driving, tire air pressure, and wind direction) but over time you expect your mileage to cluster around that average value. If you get 32 miles per gallon on one tank of gas you reasonably expect that next time you check it will likely be closer to 28. If the values start varying significantly from the average you start wondering if something has changed with the car itself (e.g., needs a tune-up)

A mean-reverting random walk is a relatively simple model and fits some of the basic behaviors of the VIX. Specifically, over time the mean value of the VIX has stayed stable at around 20 and the VIX exhibits range bound behavior—with all-time lows around 9 and all-time highs around 80.

However, there are many aspects of the VIX that aren’t well explained by a simple mean-reverting model. For example, a simple mean reverting process will have its mode value (the most frequently occurring values) close to its mean. This is not the case of the VIX; its mode is around 12.4—a long way away from its mean. The histograms below show that difference visually.


Another VIX behavior that departs from a simple mean-reverting process is the abrupt cessation of values below 9—almost a wall. For a normal mean reverting process you would not expect such a sharp cut off at the low end.

The Acid Test:  How good is the model for predicting the future?

Having a good model for a process is useful because it can help us predict at least some aspects of the future. For example, we can use our average gas mileage to decide whether we need to gas up before entering a long stretch of highway without gas stations.

A simple mean-reverting model is not particularly good at predicting the future moves of the VIX. If the VIX is low (e.g., 12 or below) a simple mean-reverting model predicts that since the VIX is far from its mean that will likely increase soon. But history shows this is usually not the case. Often the VIX can be quite content to hang around 12. This leads to news stories quoting various pundits stating “The VIX is broken” –when in reality they are just using an inferior model.

 As I said earlier there are VIX models out there that address some of these deficiencies. Unfortunately, the ones I know of are complex and not very intuitive. I believe the model that I describe below can improve our intuition considerably without adding too much complexity.

A Better VIX Model

A better way to view the VIX is that it behaves like the combination of two interacting processes: a specialized mean reverting process and a “jump” process. The jump process captures the behavior that all VIX watchers know—its propensity to occasionally have large percentage moves up and down. Since 1990 there’ve been over 86 times where the VIX has increased 30% or more in a 10 day period. The occurrence of these spikes is effectively random with a probability of happening on any given day of around 1.28%. It’s like a roulette table with 78 slots, 77 of them black and one red. If the ball lands on a black the normal reigns—if red then things get crazy. The graph below shows a histogram of the number of days between these 30% spikes in the VIX since 1990.

There’s nothing that prevents reds on consecutive spins nor is there some rule that reds become really likely if you haven’t had a red in a while. The roulette ball has no memory of where it landed on previous spins.

VIX jumps are generally not just one-day events; subjectively it looks like it takes around two weeks before the market reverts to more typical behavior. The model assumes that when a jump occurs it essentially drives the behavior of the VIX for 10 trading days.

The other process, the specialized mean reverting process, addresses the non-jump mode of the VIX—which is historically around 85% of the time. One of the key behaviors it needs to address is the slow relaxation in the mean value of the VIX after a big volatility spike rekindles a generally fearful attitude in the market. This decay process continues (unless interrupted by another VIX jump) until the average monthly VIX values drop into the 11-12 range.

The chart below illustrates this relaxation process.


This characteristic can be modeled by expecting the short term mean of the VIX (when it’s not jumping) to decay exponentially until it reaches its “quiet” mean of around 11.75. It works well to quantify this decay as having a time constant of 150 days.

With this approach, sans jumps, the difference between the current VIX value and its long-term quiet value will decay by 50% in 104 days. So if the VIX is at 30 the model predicts the mean will decline to 20.75 in 104 days [30- (30-11.5)*0.5=20.75].  If there are no jumps for the next 104 days the VIX’s mean would decline to 16.13. If a jump occurs in the interim the short term mean is reset to the VIX’s value at the end of the jump.

The other part of the specialized mean reverting process mimics the day-to-day volatility of the VIX. I used a formal mean reverting diffusion process (Ornstein-Uhlenbeck) to accomplish this. Despite its scary name, you can think of it as a random walk with the thing “walking” being attached to the mean with a spring—similar to walking a dog with a springy leash. The further the dog gets from you the larger the force pulling the dog back to you.

Unlike the simple mean-reverting model often used for the VIX, this process has a much tighter distribution, with the extreme values effectively limited to around +-20% from the mean. When the VIX is quiet this process replicates the firm lower limit on the VIX, a VIX of 9 is -21.74% lower than a quiet mean of 11.75.

Simulating the Model

 To implement/validate this model I estimated the key input variables and then used Excel to simulate 20-year volatility sequences. I then compared these time series to the actual VIX history and tuned the model’s parameters such that the key characteristics (e.g., volatility, mean, mode, decay rates) were similar to the VIX’s historic values.

Resulting histogram of historic VIX values vs the simulated combined process


The next chart shows an example 20 year time series of the simulated VIX combined process compared to the historic VIX. The two series aren’t time synchronized; my intent is to show how the simulated VIX time series has the same visual feel as the real VIX.



This improved model is not a path to riches. It isn’t any better than other models at predicting when VIX jumps will occur. However, this model does help us understand how the VIX behaves over longer time spans. In particular, during times of sustained low volatility, it predicts that the VIX will tend to stay low until the next significant VIX spike and not trend up like the simple mean-reverting model demands.




Quant Corner

  • The mean-reverting diffusion process used is an Ornstein-Uhlenbeck mean reverting diffusion process using a log-normal distribution. The volatility was set at an annualized 112% and the return to mean strength parameter ETA set to 0.3. The mean of the process is determined by the previous day’s VIX value minus the exponential decay factor that will decay the mean down to 11.75 over time if there are no additional jumps (Tau of 150 days). If the mean has decayed down to 11.75 the process acts very similarly to the VIX’s low volatility regimes (e.g., 2004-2006, 2016-2017) with the “return to mean” factor effectively acting to keep the VIX  higher than 9.0
  • The Jump process used (with a few small tweaks) is a compound Poisson process where the probability of a jump sequence is random with a probability of a jump being 1.28% per day. The jump sequence and its daily amplitudes are determined using a technique borrowed from rappers called sampling. Instead of trying to recreate the decidedly non-Gaussian distribution of VIX jumps I reused historic VIX jumps by randomly selecting, and replaying one of the more than 85 jump sequences since 1990 where the VIX jumped more than 30% in 10 days. Each jump sequence is 10 days long, with the first 2 days being the behavior before the jump.

Near Real Time Graphical VIX Term Structure

Updated: Aug 26th, 2017 | Vance Harwood

Anyone that follows volatility closely knows that short term views on volatility are much more dynamic than longer term. For example, if the market is moving from a dip into a “V” style recovery the CBOE’s 9 day expectation of volatility VXST, will drop much more than the 30 day VIX.

A chart showing volatility expectations vs time is called a volatility term structure.  The updating chart below uses indexes published by the CBOE to provide up to 6 different points on the current VIX term structure.  The green dots show the numbers published by the CBOE.


The older style VIX calculation (VIXMO) is shown as the black vertical bar and the top of the purple outline around it shows the VIX value.

All VIX style volatility calculations are annualized—they indicate how much the market would be expected to vary in a year if the volatility stayed at that level.  So for example if the volatility number is 15 then the model predicts that the market will stay between +-15% of the current value in the next year with a 68% probability.

The annualization process assumes that volatility increases with the square root of time. This is a good assumption, however there is a question of what sort of time should you use.  For example the CBOE uses calendar time but I think there is a good case for using the actual amount that the market will be open instead—not counting evenings, weekends and holidays.  The triangles shown on the graph show the CBOE index values annualized with market time instead of calendar time.   Although the two calculations often agree sometimes there are significant deviations.

The chart below shows the impact of using market time vs calendar time for annualization.



Additional Resources:

Volatility Related Indexes and Tickers

Updated: Jan 7th, 2018 | Vance Harwood

Unless you have access to a Bloomberg terminal or something similar finding quotes and historical data for volatility indexes can be an adventure.  Below I’ve assembled links to the online resources that I’ve been able to find.  Links marked with a “$SFI” are historical data sets that I offer for sale—they don’t match the official indexes exactly, but they are very close.

In many cases, data is available from multiple sources.  I did not attempt to list all of them.

If you are looking for symbols/tickers for volatility exchange-traded products then you should go to this post where I list information on all USA traded volatility style funds (there are around 24).  Simulated histories for some of these funds back to 2004 are available here.

Historical data from different sources can differ—often because they use different closing times.  Sites like Yahoo and Google Finance use standard NYSE hours, but the CBOE’s hours are different (close is 4:15 ET) and open times vary.  For example with the advent of near 24 hour trading on VIX futures the open time for VIX futures for Tuesday through Friday is 4:30PM the previous day and Sunday at 5PM is the opening time for Monday.  When used for computing other indexes (e.g., when VIX is used in computing the index used by VQT), the CBOE data should be used.

If you have an account with Fidelity’s Active Trader Pro  you can get historical intra-day data for many volatility tickers by exporting data from their charts.  Schwab’s StreetSmart Edge allows export of watch list information, including option Greeks.


Standard long volatility indexes

Index Quotes/Charts Used by:(not exhaustive) Historical Data Resources Description
SPVXSTR / SPVIXSTR     MasterData VXX Barcays3 (since Jan 09)
$SFI (Mar 04-Feb12)
Methodology Short Term Volatility Total Returns1
(includes OHLC)
Market Watch
$SFI (Mar 04-Feb12)
Methodology Short Term Volatility Excess Returns2
SPVXMTR FT.com VXZ Barclays3 (since Jan 09)
$SFI (since Mar 04)
Methodology Mid Term Volatility Total Returns1
SPVXMP MarketWatch
(single dates)
$SFI (since Mar 04)
Methodology Mid Term Volatility Excess Returns2


  1. The term “Total Returns” (TR) denotes that dividends/interest is included in the index. For example for SPTR it would be the dividends from the underlying 500 stocks in the S&P 500. In the case of SPVXSTR it would be interest from 13 week treasury bills.
  2. “Excess Returns” (ER) in this context indicates that the calculation does not include dividends or interest.
  3. Barclays data includes some non-USA trading days, the values are carried over from the previous trading day

Related Posts


Hedged style volatility fund indexes 

Index Quotes/Charts Used by Historical Data Resources Description
$SFI  (since Mar 04)
Barclays  (VQT IV only)
Methodology S&P 500® Dynamic VEQTOR Index TR
Used within VQT /PHDG calcs FT.com Methodology S&P 500® Dynamic VEQTOR Index ER
VQTS FT.com Methodology S&P 500® VEQTOR Switch Index ER
SPVQSTR Google VQTS Google


S&P 500® VEQTOR Switch Index TR
SPXH FT.com Methodology
33% 2X ST
66% -1X ST
White Paper
Volatility Hedged Large Cap Index
TRSK FT.com Methodology
45% 2X ST
55% -1X ST
White Paper
Tail Risk Hedged Large Cap Index
SPDVIXTR ?? XVZ Barclays3
$SFI  (since Mar 04)
Methodology S&P 500 Dynamic VIXFutures Index
VXTH CBOE VIXH Methodology
White Paper
CBOE VIX Tail Hedge Index

Related Posts


VIX style Indexes and Settlement quotes 

Index Quotes/Charts Used by Historical Data Resources Description
Google Finance
CBOE (since Jan-2011)
White Paper Measure of 9 day IV of (SPX) Index options.
VIX® Yahoo ^VIX
VIX options & futures VQT
CBOE (since Jan1990) White Paper
Near real time calc graph
Measure of 30 day IV of (SPX) Index options
VIXMO Google Finance
indexcboe: VIXMO
Calc the VIXMO—the easy Part VIX index previous to Oct 6, 2014
Measure of 30 day IV of (SPX) Index options using SPX monthly options
VIX3M (VXV) Yahoo ^VXV XVZ CBOE (since Dec 2007)
Measure of 3-month IV of (SPX) Index options.
VXMTSM Google Finance
CBOE (since Jan 2008)
Measure of 6-month IV of (SPX) Index options.
SVRO Yahoo ^SVRO VXST options & futures (not trading) CBOE Settlement process Exercise-settlement value for VXST options & futures
VRO Yahoo ^VRO VIX options /&futures CBOE Settlement process Exercise-settlement value for VIX options  & futures
VVIXSM Yahoo ^VVIX CBOE historical VVIX  -since Jan 07

CBOE (since March 06)  VVIX Term Structure

White Paper VIX methodology applied to VIX options (VIX of VIX)

Related Posts


VIX Style Calculation Indexes  (used by CBOE to compute VXST, VIX, VIXMO, VXV, VXMT)

Index Quotes/Charts Used by Historical Data Resources Description
VSTN Google VXST Google White Paper CBOE Near-term VXST Index
VSTF Google VXST Google White Paper CBOE Far-term VXST Index
VIN Google4 VIX Google4 White Paper CBOE Near-term VIX Index
VIF Google4 VIX Google4 White Paper CBOE Far-term VIX Index
VINMO Google VIXMO Google CBOE Near-term VIX monthly only
VIFMO Google VIXMO Google CBOE Far-term VIX monthly only
VIX(#)  CBOE VIX calc using midpoint prices CBOE (since 2010) CBOE per month VIX calculations
VWB  CBOE VIX cacl using SPX bid prices CBOE (since Oct 2017) CBOE per month VIX calculations
VWA  CBOE VIX calc using SPX ask prices CBOE (since Oct 2017) CBOE per month VIX calculations


  1. The CBOE changed its VIX calculation on 21-Oct-14 to use weekly options bracketing the 30 day VIX target expectation. Before that the VIN/VIF values reflect the old calculation that only used monthly SPX option series.

Related Posts


Support Indexes

Index Quotes/Charts Used by Historical Data Resources Description
13Wk T Bills   Yahoo ^IRX VXX  VXZ US Treas
Conversion 13wk US Treasury bills
SPX  Yahoo (^GSPC) Yahoo SPX total returns (dividends applied but not re-invested)
SPTR ?? VQT  PHDG CBOE(since 1988)
Eoddate (reg required)
SPX total returns with dividends reinvested



VIX Futures

Ticker Quotes/Charts Used by Historical Data Resources Description
VXST CBOE (e.g, 2VSW/Z4)  select VSW on Futures  (not trading) CBOE VSW VXST Futures, Options, Index Futures on VXST index  (discontinued)
VIX/month-code/last digit of year CBOE (e.g. vix/z4, VX series)
Yahoo (e.g. ^VIXMAY)
VIX options Volatility Funds CBOE
Google  $SFI
Month Codes
Expiration Calendars
Futures on VIX index

Related posts



Some other interesting indexes currently not used by volatility funds

Index Quotes/Charts Ratio Historical Data Resources Description
SPVXTRMP / SPVXTRMT Google Finance 60% 2X MT long, 40% -1X ST short FT.com Methodology
ETF.com article
S&P 500  VIX futures Tail Risk ER Mid-Term
SPVXVMP/ SPVXVMT Google Finance 45% 2X MT long, 55% -1X ST short FT.com Methodology
ETF.com article
S&P 500  VIX futures variable long / short mid-term
SPVXVHSP / SPVXVHST Google Finance 10% 2X ST long, 90% -1X ST short FT.com Methodology
ETF.com article
S&P 500  VIX futures volatility hedged Short term
SPVXVHMP / SPVXVHMT Google Finance 30% 2X MT long, 70% -1X ST short FT.com Methodology
ETF.com article
S&P 500  VIX futures Tail Risk Midterm

Graphical VIX & VIXMO calculations

Updated: Dec 14th, 2017 | Vance Harwood

The chart below graphically represents the calculation for the VIX® and the legacy VIX (ticker VIXMO) which was used from September 22, 2003 through October 5th, 2014.  My apologies for the small size / non-expandable format, but this was the best near real time (20 minute delayed) solution I could figure out using Google Sheets. The actual VIX is located on the black dotted line in the left center of the graph. Click here for a larger snapshot for 12-Nov-2014. The VIX now uses an interpolation between two VIX style calculations (VIN and VIF) on SPX options series that are a week apart—bracketing the 30 day target horizon of the VIX.  The legacy calculation uses SPX monthly options (now published as VINMO and VIFMO) which requires significantly longer interpolation/extrapolation periods.

Since its inception on October 6th, 2014 the new VIX has often differed significantly from the older calculation, often running 5% or more lower than the legacy number.   This is disconcerting and I initially wondered if the reduced volume/open interest of the SPX weekly options used in the new calculation or some other factor was distorting things, but as I look at the data I’m becoming comfortable with the new calculation as a significant improvement in the accuracy of the index.

The dynamically updated chart above uses delayed quotes from Google Finance.  For more information on these VIX calculations see Calculating the VIX and Calculating the VIXMO.

The VXST is the CBOE’s 9 day version of the VIX, and  VXV is the CBOE’s 93 day version.

There are two somewhat parallel markets associated with general USA market volatility: the S&P 500 (SPX) options market and the VIX Futures market.  SPX option prices are used to calculate the CBOE’s family of volatility indexes, with the VIX® being the flagship.  VIX futures are priced directly in expected volatility for contracts expiring up to 9 months out.  The nearest VIX Future synchronizes with the VIX once a month—on its expiration date.

Additional resources:

Calculating the VIX—The Easy Part

Updated: Nov 8th, 2015 | Vance Harwood

The movements of the CBOE’s VIX® are often confusing.  It usually moves the opposite direction of the S&P 500 but not always.  On Fridays the VIX tends to sag and on Mondays it often climbs because S&P 500 (SPX) option traders are adjusting prices to mitigate value distortions caused by the weekend.

In addition to these market driven eccentricities the actual calculation of the VIX has some quirks too.  The VIX is calculated using SPX options that have a “use by” date.   Every week a series of SPX options expire.  This schedule of expirations forces a weekly shift in the VIX calculation to longer dated options.  For many years the CBOE’s VIX calculations only used monthly SPX options, but starting October 6th, 2014 it switched to using SPX weekly options when appropriate.  See “Why the Switch” section towards the bottom of this post for more information.

The VIX provides a 30 day expectation of volatility, but the volatility estimate from SPX options changes in duration every day.  For example, on October 13, 2014 the SPX options expiring on the 7th of November provide a 25 day estimate of volatility, while the November 14th options provide a 32 day estimate.  In this case to get a 30 day expectation the VIX calculation uses a weighted average of the volatility estimates from these two sets of November options.

The newly updated S&P 500 VIX calculation is documented in this white paper.  It computes a composite volatility of each series of SPX options by combining the prices of a large number of puts and calls.  The CBOE updates these intermediate calculations using the ticker VIN for the nearer month of SPX options and VIF for the further away options.  The “N” in VIN stands for “Near” and the “F” in VIF stands for “Far”.  These indexes are available online under the following tickers:

  • Yahoo Finance as ^VIN, ^VIF
  • Schwab $VIN, $VIF; historical data available
  • Google Finance INDEXCBOE:VIN, INDEXCBOE:VIN; historical data available
  • Fidelity:  .VIN, .VIF;  limited historical data

The final VIX value is determined using the VIN and VIF values in a 30 day weighted average calculation.  Graphically this calculation looks like the chart below most of the time:

As shown above the VIX value for October 13th is determined by averaging between the November 7th SPX options (VIN) and the November 14th SPX options (VIF) to give the projected 30 day value.  If you look closely you can see that the interpolation algorithm used between VIN and VIF does not give a straight line result; I provide calculation details later in “The Weighted Average Calculation” section

The chart below shows the special case when the VIX is very close, or identical to the VIF value.

Wednesdays are important days for the VIX calculation:

  • The VIX calculation is dominated by the VIF values.
  • The SPX options used switch such that the old VIF becomes VIN and the options with 36 days to expiration become VIF.
  • Once a month on a Wednesday VIX futures and options expire (expiration calendar).  Soon after market open a special opening quotation of VIX called SOQ is generated.  Its ticker is VRO and it’s used as the settlement value for the futures and options.  Unlike the VIX’s normal calculation, the SOQ uses actual trade values of the underlying SPX options not the mid-price between the bid and ask.  Only one series of options, the ones with exactly 30 days to expiration are used.

Although SPX weekly options are available for 5 weeks in the future, the VIX calculation uses the SPX monthly options (expiring the 3rd Friday of the month) instead of the weeklies when they fit into the 24 to 36 day window used by the calculation.   The SPX weeklies expire at market close on Friday but the monthly options expire at market open on Friday.  By using these monthly options the CBOE keeps the VIX futures / options settlement process identical with the previous month based VIX calculation.

Why the Switch?

The chart below illustrates how the CBOE changed the VIX calculation methodology.


This particular snapshot  shows the old VIX calculation (ticker: VIXMO) doing an extrapolation using SPX monthly options expiring November 22nd and December 20th (11 and 39 days away from the 30 day target)—a hefty distance.  If you would like more details about the old VIX calculation see “Computing the VIXMO—the easy part“.  The new VIX calculation on the other hand always does an interpolation over a much shorter period of timenever using options with expirations more than +-7 days from the 30 day target.  This CBOE article gives a good overview of the advantages of the new approach.

If you look closely at the chart, you can see that in this case the VIX calculation using the two methods arrives at slightly different answers (black line).  The new method gives a result of 21.16, 1.5% higher than the old method’s 20.85.  While I’m confident that the new calculation will be better in the long run because of the tighter VIN / VIF brackets I do have some concerns about the current volumes and low open interest in the SPX weekly options that are 4 to 5 weeks out.   I have seen the VIX / VIXMO differ by up to 5%—so for the time being I’m keeping both indexes on my watch lists. 

The Weighted Average Calculation

If you want to compute the VIX yourself using the VIN and VIF values you can’t just do a linear interpolation / extrapolation because volatility does not vary linearly with time.  Instead you have to convert the volatility into variance, which does scale linearly with time, do the linear estimation, and then convert back to volatility.  The equation below accomplishes this process.