Back to Projects
🟢 LIVE

Implied Volatility Surface

A real-time implied volatility surface visualization built with Black-Scholes pricing. Fetches live options chain data and renders an interactive 3D IV surface across strikes and maturities.

Open Live App View on GitHub

TECH STACK

PythonBlack-ScholesNext.jsTypeScriptPlotlyyfinanceVercel

Deep Dive

This project pulls live options data via yfinance and computes implied volatility for each contract using a numerical root-finding implementation of the Black-Scholes-Merton model. The resulting surface is visualized as an interactive 3D plot using Plotly, exposing the volatility smile/skew structure the market prices into options across different strikes and expiration dates.

Key technical challenges included handling illiquid or zero-bid contracts gracefully during BSM inversion, interpolating sparse data across the strike–maturity grid, and fetching independent Yahoo Finance calls concurrently to keep response times low.

Originally a Streamlit app; rebuilt as a Next.js frontend backed by a Vercel Python serverless function (same Black-Scholes/IV pipeline) to avoid Streamlit Community Cloud's sleep-after-inactivity cold starts, alongside a modernized dark "quant terminal" theme matching this site.

Live Preview

Live app — if it doesn't load, open it directly ↗