Calculate the model-free implied volatility with the Cboe VIX methodology, for any ticker with listed options. Rather than inverting a pricing model, it reads the expected variance directly from the prices of out-of-the-money options across all strikes, weighted by 1/K², for the two expiries around the target maturity, and interpolates their variances to a constant maturity:

\[\sigma ^{2} = (2 / T) \text{Σ} (\Delta K_{i} / K_{i} ^{2}) e ^{\text{RT}} Q(K_{i}) - (1 / T) (F / K_{0} - 1) ^{2}\] \[\text{Volatility} = \sqrt{\text{interpolated variance at}\; \text{days}}\]

Applied to the S&P 500 index options (“^SPX”) with days=30 it approximates the VIX, within about a tenth of a volatility point: the Cboe counts the time to expiry in minutes, uses Treasury rates for each expiry and the Friday expiries between 23 and 37 days away. For a single stock it gives the equivalent volatility index.

For more information, see the following papers:

  • Cboe Global Markets (2023). “Cboe Volatility Index (VIX) White Paper.”
  • Britten-Jones, M. and Neuberger, A. (2000). “Option Prices, Implied Price Processes, and Stochastic Volatility.” The Journal of Finance, 55(2), 839-866.

Also known as: VIX methodology, model-free volatility, variance swap volatility.

Model-Free Implied Volatility in Python or via the MCP

Install the Finance Toolkit with:

pip install financetoolkit -U

Then call get_model_free_implied_volatility as shown below.

from financetoolkit import Toolkit

toolkit = Toolkit(["^SPX", "AAPL"], api_key="FINANCIAL_MODELING_PREP_KEY")

toolkit.options.get_model_free_implied_volatility()

Or, after setting up the Finance Toolkit MCP, ask:

What is the 30-day model-free implied volatility, as in the VIX method, of the S&P 500 and Apple?

Which returns:

  Near-Term Expiration Next-Term Expiration Near-Term Volatility Next-Term Volatility Forward Price Model-Free Implied Volatility
^SPX 2026-11-23 2026-11-24 0.1955 0.1965 7649.3 0.1955
AAPL 2026-11-20 2026-11-27 0.297 0.2817 348.495 0.2897

Parameters

get_model_free_implied_volatility accepts the following parameters.

ParameterTypeDescriptionExample
daysintThe constant maturity in calendar days. Defaults to 30.360
roundingint | NoneThe number of decimals to round the results to. Defaults to None, which uses the Toolkit’s rounding.2
Share