# How can I calculate bucket vega using dupire local volatility surface?

I am trying to calculate the bucket vega of the portfolio which includes mainly vanilla options and some exotic options. I am pricing the value of portfolio with fdm by using dupire local volatility surface calculated from fitted implied volatility surface. I have tried the following 2 methods to get the bucket vega, but there was something wrong.

1. Bump specific bucket of local volatility surface
2. Bump specific bucket of implied volatility surface and calculate dupire local volatility

In Black-Scholes, the same price of vanilla option can be seen when the implied volatility of the 1-year to 2-year maturity on the implied volatility surface only increased by 1%(of course, the surface are assumed to be differentiable for all K and T) and the volatility of all maturities increased by 1% on the implied volatility surface(parallel shift) because implied volatility of BS is constant. However, when using dupire local volatility, the price is different between above two situation, and it involves the problem of bucket vega. Because there are exotic options combined in portfolio, local volatility surface is being used for pricing, and is there any way to calculate bucket vega?

The usual approach is to use analytic Black Scholes (with smile volatility) to value the vanillas, and use finite difference Dupire local volatility to value the exotics. If everything is working correctly, the finite difference method will converge well enough that if you did use it for a vanilla, the price would be very close to the analytic price.

Then, to calculate bucket vega, you bump the implied volatility surface and recalculate the local volatilities. If you do use this model to value a vanilla option, say with a 2 year maturity, the model depends on all the implied volatilities from zero to 2 years. Therefore you will get some vega in the 1y bucket. However, as the true vanilla price only depends on the 2y implied volatility, the vega in the 1y bucket should be very small. It just comes from the slightly imperfect convergence of the finite difference method.

You need to use small volatility bumps to calculate the vega. If they are too large they could introduce arbitrage into the volatility surface. In that case Dupire's formula will go wrong and all bets are off.

It's common to use cumulative bumping, starting from the long end of the surface and working backwards to help avoid breaking the surface. That is, you first bump the 2y. Then the 2y and the 1y together, then the 2y, 1y and 6m together, and so on. You calculate the PV on each of these scenarios and use them to work out the bucket vegas.