Model-Free Implied Volatility
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.
| Parameter | Type | Description | Example |
|---|---|---|---|
days | int | The constant maturity in calendar days. Defaults to 30. | 360 |
rounding | int | None | The number of decimals to round the results to. Defaults to None, which uses the Toolkit’s rounding. | 2 |