# Calculating option vega for vanilla call seems to be factor of 100 out

I'm using the following R code to calculate the vega on a vanilla option with the inputs S = 100, X = 100, t = 1, r = 0.005 and vol = 0.5

The vega calculated is around 39.85; I was expecting it to be around 0.3985.

The vega shape vs. spot, when plotted, is correct but the value is always a factor of 100 out. Should I be dividing by spot, strike or always dividing by 100 simply to get to a decimal of %?

If someone could offer a quick explanation it would help me a lot!

vega <- function(S, X, t, r, vol){
d1 <- (log(S/X)+(r+ 0.5 * vol^2) * t) / ( vol * sqrt(t))
Np <- ( exp(-d1^2/2)/ sqrt(2 * pi) )
S * sqrt(t) * Np
}


When you calculate the partial derivative of the option price $V$ w.r.t. $\sigma$, then you get a first order approximation of the change in $V$ for a unit change in $\sigma$. A unit change is e.g. $\sigma$ increasing from 0.2 (20%) to 1.2 (120%). If you want the vega for a one percentage point change in volatility, then divide by 100.