vega-lab — Options Volatility Analytics Engine
Live implied-volatility surfaces from raw options data — a native C++ Jäckel solver, arbitrage-free eSSVI calibration, and full smile diagnostics across SPX, VIX, SPY, QQQ, ES, and OEX, surfaced through a terminal UI and a web dashboard.
Private Repo — Request AccessCase Study
How it was built
Problem
Quants need a fast feedback loop between raw options market data and a usable volatility surface. Off-the-shelf tools either solve implied vol slowly in pure Python or hide the calibration behind a black box, leaving no way to inspect arbitrage violations strike by strike.
Approach
Built a vertically integrated stack: a native C++ Jäckel solver with OpenMP threading handles implied vol, Python wraps it via zero-copy ctypes, eSSVI surface fitting enforces no-arbitrage through penalty terms, and a Textual TUI plus a Dash/Plotly web dashboard surface the results. Databento OPRA data flows in through a managed Parquet pipeline, and forwards come from a spread-weighted parity regression.
Key Decision
Pushed the solver to native C++ rather than staying in NumPy. The Jäckel method is iterative and runs millions of times per session — keeping it in Python would have made the interactive dashboards unusable. The ctypes bridge takes minutes to write and pays for itself the first time you scan the full SPX chain.
Result
Roughly 8.2 million contracts per second through the solver, eight per-tenor diagnostics computed live, and 189 arbitrage violations flagged on SPY alone (185 butterfly, 4 calendar) in the first full-chain scan.
Results
Key metrics
8.2M
Contracts / Second
8
Per-Tenor Diagnostics
6
Underlyings (SPX/VIX/ES...)
3
Output Modes (TUI/Web/Export)
Approach
Technical overview
Native C++ Implied-Volatility Solver
The Jäckel rational-function method ("Let's Be Rational") is implemented in C++17, compiled with -O3 -march=native and OpenMP, and exposed to Python via zero-copy ctypes over NumPy arrays. Scalar and batch entry points converge in two or three iterations per contract; the batch path processes roughly 8.2 million contracts per second across the full chain, feeding surface fitting directly.
Arbitrage-Free eSSVI Calibration
Surfaces use the extended SSVI parameterization fitted by a nested optimizer — an outer L-BFGS-B pass over the global (η, γ, ρ) parameters wraps an inner per-slice θ solve, parallelized across expiries. Butterfly (convexity) and calendar (non-decreasing total variance) no-arbitrage constraints enter as penalty terms, so fitted surfaces are arbitrage-free by construction.
Forward Extraction & Smile Diagnostics
Per-expiry forwards and discount factors are recovered from a put-call parity regression weighted by inverse bid-ask spread, with an R² confidence score. Each tenor then yields eight diagnostics — ATM IV, 25-delta risk reversal, 25-delta butterfly, skew, a model-free variance-swap rate (trapezoidal integration of OTM prices), forward vol, IV spread, and fit R².
Data Pipeline, Terminal UI & Web Dashboard
Databento OPRA data is fetched, validated, and stored as Parquet across a contract hierarchy spanning index, volatility-index, equity, and futures options (SPX, OEX, VIX, SPY, QQQ, ES). The Textual TUI offers tenor navigation, four coordinate modes (IV, total variance, σ², ATM term structure), series toggles, CSV export, and an arbitrage scanner; the Dash web UI adds a 3D surface viewer, eSSVI fit overlays, ag-Grid strike inspection, and a paginated arbitrage scan that flagged 189 violations (185 butterfly, 4 calendar) on SPY alone.
Gallery
Output & visualizations






Terminal UI — ATM Term Structure — TUI home tab showing tenor list, ASCII term structure chart, stats grid, and strike table for SPY
Web — Volatility Smile + eSSVI Fit — Dash dashboard with smile plot, eSSVI fit overlay, stats grid, and strike table for SPY 2025-01-16
Web — Smile Controls + Stats — Coordinate mode buttons, series toggles, ATM marker, export, and 8-metric stats grid
Web — Surface Diagnostics — 3D eSSVI surface, selected-tenor fit slice, residuals, parameter terms, and fit quality by tenor
Web — Strike Inspector — Strike table with per-row detail inspector showing moneyness, bid/ask IV, and validity status
Web — Arbitrage Scan — 189 violations detected (185 butterfly, 4 calendar) with type, expiration, and constraint details
Stack