Skip to content

Add Greeks and local volatility analytics to dashboard#9

Merged
CameronScarpati merged 2 commits intomainfrom
claude/polish-dashboard-resume-qx3v8
Mar 13, 2026
Merged

Add Greeks and local volatility analytics to dashboard#9
CameronScarpati merged 2 commits intomainfrom
claude/polish-dashboard-resume-qx3v8

Conversation

@CameronScarpati
Copy link
Owner

Summary

Extends the volatility surface dashboard with three new analytical panels: Black-Scholes Greeks surfaces, Dupire local volatility computation, and delta-space volatility smile analysis. Reorganizes the dashboard into a tab-based layout for cleaner navigation.

Key Changes

New Components:

  • dashboard/components/greeks.py — Computes and visualizes Delta, Gamma, Vega, and Theta surfaces from the fitted SVI surface using Black-Scholes formulas. Includes both 3D surface and cross-sectional slice views with interactive Greek selection.
  • dashboard/components/local_vol.py — Implements Dupire's formula to derive local volatility from the fitted SVI surface. Handles finite-difference computation of dw/dT across expiry slices with forward/backward/central difference schemes depending on position in the time grid.
  • dashboard/components/delta_smile.py — Plots implied volatility in delta-space (the standard practitioner quoting convention) rather than strike-space. Includes skew and convexity metrics (25Δ risk-reversals and butterflies) in a summary table.

Dashboard Reorganization:

  • Converted linear layout to tab-based navigation with six tabs: Volatility Surface, Smile Analysis, Greeks, Local Volatility, Arbitrage Diagnostics, and Term Structure.
  • Added methodology overview explaining the complete pipeline from data ingestion through Greeks and local vol derivation.
  • Enhanced summary metrics row to include average R² and RMSE across fitted slices.
  • Moved delta-smile and mispricing analysis into the "Smile Analysis" tab alongside each other.

Supporting Changes:

  • Updated dashboard/components/__init__.py to export the three new render functions.
  • Enhanced dashboard/components/term_structure.py with delta and log-moneyness columns in the mispricing table for hedging context.
  • Updated dashboard/app.py to integrate new components and reorganize layout with tabs.
  • Updated README.md to reflect the extended pipeline and new analytical capabilities.
  • Added Dupire (1994) reference to sidebar citations.

Implementation Details

  • Local volatility computation uses analytical SVI derivatives (w', w'') in the moneyness direction and finite differences in time, with fallback to w/T when adjacent slices are unavailable.
  • Greeks calculation vectorizes Black-Scholes formulas across strike and expiry grids, with per-day theta and per-1%-vol vega conventions.
  • Delta conversion uses Black-Scholes d1 to map strikes to call deltas, enabling practitioner-standard delta-space visualization.
  • All new panels follow existing component patterns: accept chain/slice_params/market parameters, validate data availability, and render Plotly figures with Streamlit integration.

https://claude.ai/code/session_01QrYW5B7Q9eKjnaN78BVJXm

Elevate the dashboard from a visualization tool to a complete derivatives
pricing and hedging toolkit — the kind of output a quant researcher
interviewer expects:

- Greeks surface panel (Delta, Gamma, Vega, Theta) computed from the fitted
  SVI surface via Black-Scholes, with 3D surface + cross-sectional views
- Local volatility via Dupire's formula, bridging implied vol to the
  risk-neutral diffusion coefficient
- Delta-space smile view with 25-delta risk-reversals and butterflies —
  the standard quoting convention on derivatives desks
- Enhanced mispricing table with BS delta and log-moneyness for hedging
  context
- Tab-based navigation for cleaner organization of 6 analysis panels
- Methodology summary in dashboard header and sidebar pipeline overview
- Aggregate fit quality metrics (avg R², avg RMSE) in summary bar
- Updated README with Dupire methodology, new findings, and references

https://claude.ai/code/session_01QrYW5B7Q9eKjnaN78BVJXm
@CameronScarpati CameronScarpati force-pushed the claude/polish-dashboard-resume-qx3v8 branch from 8aec05e to c7774ac Compare March 12, 2026 23:55
…in components

Move all descriptive/explanatory captions to app.py (the layout orchestrator)
so every tab follows the same pattern. Component files retain only data-driven
captions (e.g. residual statistics) that depend on computed values.

https://claude.ai/code/session_01QrYW5B7Q9eKjnaN78BVJXm
@CameronScarpati CameronScarpati merged commit 8743544 into main Mar 13, 2026
4 checks passed
@CameronScarpati CameronScarpati deleted the claude/polish-dashboard-resume-qx3v8 branch March 13, 2026 03:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant