IV Surface Explorer

An options analytics dashboard I built because I wanted one

Role: Solo developer
Status: Active
Tech Stack:
PythonDashPlotlypandasMCP

I study options structure -- variance risk premium, implied volatility surfaces, dealer positioning -- and I kept doing the same thing: pull a chain, dump it into a notebook, plot the same six things, throw the notebook away. This is that notebook, made permanent.

It is a tool built for an audience of one. That is the honest framing and also, I think, the reason it is any good: nothing in it exists to look impressive on a screenshot.

What it shows

  • 3D implied volatility surface across strikes and expirations
  • Smile curves for a single expiration
  • Term structure of ATM implied volatility
  • Skew across the chain
  • Open interest walls -- where contracts are concentrated
  • Gamma exposure (GEX) -- an estimate of dealer gamma positioning by strike
  • Max pain and expected move

Each view answers a question I actually ask before looking at a trade: is volatility rich or cheap here, is it rich at this expiration or all of them, and where is positioning likely to pin or accelerate price.

Engineering

The hard part was never the plotting. It was the data: option chains arrive inconsistent, with stale quotes, missing greeks, wide or crossed markets, and expirations that do not line up between sources. Most of the code is normalization and sanity-checking before anything reaches a chart.

Built with Python and Dash. It also runs as an MCP server, which means I can query it from a language model directly rather than reading charts myself and describing them -- ask a question about a ticker's structure and the model pulls the surfaces it needs.

Status

Running at iv-tools.schen.me.

This is research and analysis tooling. It does not generate trade recommendations, and nothing about it should be read as advice.