What is the Vol Explorer?

The Vol Explorer is a NodeJS application which illustrates the data generated by CommodityVol.com's volatility process. CommodityVol.com fundamentally prepares two types of data sets. First, the system generates volatility by strike. We entertain several assumptions about daycounting and models. Second, the system builds volatility curves. These curves, whether simple quadratic or more complicated SABR curve models, are stored seperately and are indexed to allow for quick retrieval. Using the curves or vol by strike data we can generate a derived dataset such as front month ATM volatility. We also plot the At the Money Volatility as a function of time to expiration.


The Vol Explorer's task is to help the user view an aribitrary group of vols by strike or curves. Finally, the Vol Explorer allows a user to overlay vol by strike on top of volatility curves.

  • Volatility By Strike This is a hands on tool that allows a user to look at any collection of volatities grouped by Exchange, Product, Expiration, Date of Analysis ('asof'), Model Type and Calendar type. The plots presented in the "Vol By Strike" section are the result of calibrating implied volatility such that the price error is miniminized for the active options at each strike. The approach attempts to eliminate options that have no open interest, no trading activity or options so deep in the money that the value of the "optionality" is very small.

    • General
      • Skew Comparison The most general of the views. The user has the option to group volatility skews to their liking. Users can compare products across time, exchange, product or models.

    • Specialized
      • Model Comparison This view gives the user an ability to answer the question, "What effect would there be if the model changes?". This is accomplished by holding all the other keys constant (exchange, underlying, expiry, calendar, asof) and changing only the model key.

      • Expiry Comparison This view gives the user an ability to answer the question, "How do the different expiries look at a particular point in time?". This is accomplished by holding all the other keys constant (exchange, underlying, calendar, model, asof) and changing only the expiry key.

      • Time Comparison This view gives the user an ability to answer the question, "How has this particular skew moved over its existance?". This is accomplished by holding all the other keys constant (exchange, underlying, calendar, model, expiry) and changing only the asof key.

    • Parameter Lookup Allows the user to verify what arguments went into the calibration.

  • Volatility Curves Curves are important because they explicitly build the correlation between adjacent strikes in a given contract month. No curve is completely accurate as they are imperfect models of a complicated world.

    • Compare Curves This view gives the user the ability to overlay volatility by strike on any available curve. Not all curves can be calibrated since there may be too few active strikes or the shape of prices in the market is at odds with the curve's capability.

    • Curves
        For each of the following curve types, the user can compare them across expiry and time.
      • Simple Quadratic The simple quadratic curves are the most commonly used curves among commercial data vendors. Effectively, the volatility is a function of a simple quadratic function. Many vendors will use their calibrated volatility by strike and regress their vols on strike, delta or moneyness. We calibrate our curves directly from prices. It is more involved to do so, since the optimization is necessarily a nonlinear one, but the estimates are better.

      • Assymetric Quadratic We allow the wings to move differentially from each other. One of the many complaints leveled at the quadratic curve is that points on the call side of the curve affect the put side. One way to do this is to fit a curve which is composed of two curves which are mathematically constrained to be coincident at the ATM strike and smooth there as well. This curve localizes some of the effect of the calls and puts without sacrificing simplisticity.

      • Assymetric Kinked Quadratic This curve is similar to the Assymetric Quadratic, with the smoothness constraint near the ATM vol discarded. The reduction of the constraint gives the curve a bit more flexibility to deal with curves which have abrupt moves in at the money volatility.

      • Double Saturation This is a stylized representation of a volatility curve and reflects an old school trader's intuition that a vol curve is composed of an asymptotic vol, a curvey portion in which vol moves non-linearly, a linear portion for the near at the money strikes with non-linearity in the at the money strikes. The complexity of this curve makes calibration quite challenging as a typical skew will have 6-9 regions that the algorithm must fit.

      • SABR The SABR model is a class of curves that arises from assumptions of stochastic volatility. This curve found a good deal of favor on bank desks about a decade ago. The novelty of the model is the result of its ability to parsimoniously replicate a variety of shapes of vol curves. However, it is not perfect and the market observed prices can often result is poor model calibration.

  • At the Money (ATM) Volatilities Following the ATM points helps the user get an idea of the broader context volatility.

    • Vol Over Time The user can select up to five products and plot at the money volatility over time.

    • Vol by Underlying The user selects exchange, product and deferral (front, 2nd, 3rd closest to expiry). We follow the at the money point of the front month contract over time and overlay its path on the path of the underlying future or forward. This analysis illustrates how ATM vol moves with the underlying price.

    • Vol Termstructure The user selects a product of an exchange, and the system generates two curves. On top is the ATM volatility for all expiries. The bottom panel shows the forward or futures prices for all expiries.

    • Vol Termstructure over Time The user selects a product of an exchange, and then may filter by a set of dates to generate a history of termstructure plots for both the ATM volatility and the future or forward price.