Vega-weighted calibration: why fit vols, not prices
Equal-weighted least-squares on call prices overfits ATM strikes and ignores wings, because vega varies 3x across the surface. Vega-weighting converts price errors into vol errors.
When calibrating a smile model (SVI, SABR, Heston) to a vector of market option prices, the naive choice is unweighted least-squares: minimise $\sum (C_{\text{model}} - C_{\text{market}})^2$. This is a *bad* choice in practice. Deep OTM strikes have vega $\sim 0.05$; ATM has vega $\sim 0.4$. A 1-cent miss at ATM is a $\sim 2.5\%$ vol error; a 1-cent miss at deep OTM is a $\sim 20\%$ vol error. Treating both as equal misses lets the fitter cheat: it nails ATM and lets the wings drift. Vega-weighted calibration divides each squared price error by vegaΒ², converting the objective from price-MSE to (approximately) vol-MSE — the right metric because traders quote and hedge in vol.
β Intro Β· expand
Try first (productive failure)
Before the worked example: spend 60 seconds taking your best shot at this.
A guess is fine β being briefly wrong about a problem makes the explanation
land harder when you read it. This appears once per tutorial; skip
if you already know the trick.
60s
β Try first Β· expand
Worked example
For an SPX-style call surface ($S = 100$, $T = 1$, $r = 5\%$, $\sigma = 20\%$ at every strike for simplicity), compute the Black-Scholes vega at $K = 80, 100, 110$. (a) Compute the implied vol error that would result from a 1-cent price miss at $K = 80$ (deep OTM put-side). (b) Same at $K = 100$ (ATM). (c) Report the ratio.
β Worked example Β· expand
Practice 1 of 3Type a fraction, decimal, or expression β mathjs parses it.
β Practice Β· expand
Reflection
Vega-weighting is a first-order approximation: it linearises the price-to-vol map around the current fit. When does this approximation break down (very deep OTM, very short maturity, near barrier touches), and what's the next-order fix that production calibrators use?