Black-Scholes Calculator

Price European calls and puts step by step, with every intermediate value shown
Black-Scholes call with S=100, K=100, T=1, r=5%, sigma=20%
Put value for S=100, K=100, T=1, r=5%, sigma=20%
Price a put with S=60, K=55, T=0.25, r=4%, sigma=35%
Check put-call parity for S=42, K=40, T=0.5, r=10%, sigma=20%

The Black-Scholes Formula

For a European option on a non-dividend-paying underlying, the Black-Scholes price is

C=SтАЙN(d1)тИТKeтИТrTN(d2),P=KeтИТrTN(тИТd2)тИТSтАЙN(тИТd1)C = S\,N(d_1) - K e^{-rT} N(d_2), \qquad P = K e^{-rT} N(-d_2) - S\,N(-d_1)

d1=lnтБб(S/K)+(r+╧Г22)T╧ГT,d2=d1тИТ╧ГTd_1 = \frac{\ln(S/K) + \left(r + \frac{\sigma^2}{2}\right)T}{\sigma\sqrt{T}}, \qquad d_2 = d_1 - \sigma\sqrt{T}

  • SS тАФ current price of the underlying
  • KK тАФ strike price
  • TT тАФ time to expiry in years (3 months is T=0.25T = 0.25)
  • rr тАФ continuously compounded risk-free rate, as a decimal
  • ╧Г\sigma тАФ annualised volatility, as a decimal
  • N(тЛЕ)N(\cdot) тАФ standard normal cumulative distribution function

Read the two terms structurally: KeтИТrTK e^{-rT} is the strike discounted to today, N(d2)N(d_2) is the risk-neutral probability the option finishes in the money, and N(d1)N(d_1) is the call's delta. So the call price is the expected value of what you receive minus the discounted cost of what you pay, both weighted by those probabilities.

Parity, the Greeks and Where the Model Bends

Put-call parity

CтИТP=SтИТKeтИТrTC - P = S - K e^{-rT}

This holds by arbitrage regardless of the model, so it is the fastest check on any computed pair тАФ and the easiest way to get the put once you have the call.

The main sensitivities

╬Фcall=N(d1),╬Фput=N(d1)тИТ1,╬У=NтА▓(d1)S╧ГT,V=SNтА▓(d1)T\Delta_{\text{call}} = N(d_1), \qquad \Delta_{\text{put}} = N(d_1) - 1, \qquad \Gamma = \frac{N'(d_1)}{S\sigma\sqrt{T}}, \qquad \mathcal{V} = S N'(d_1)\sqrt{T}

where NтА▓(x)=12╧АeтИТx2/2N'(x) = \frac{1}{\sqrt{2\pi}}e^{-x^2/2}. Vega V\mathcal{V} is per unit of volatility, so divide by 100 for a one-percentage-point move.

Implied volatility

Every input except ╧Г\sigma is observable, so given a market price you can invert the formula for ╧Г\sigma. There is no closed form тАФ the price is strictly increasing in ╧Г\sigma, so bisection or Newton's method converges quickly.

The assumptions

The derivation assumes European exercise, lognormal returns, constant rr and ╧Г\sigma, no dividends and frictionless trading. Real markets violate the last three routinely, which is why implied volatility varies by strike. This page computes the model exactly; it does not claim the model is the market, and nothing here is a recommendation to trade.

Common Mistakes to Avoid

  • TT in days or months: TT is in years. Ninety days is T=90/365тЙИ0.2466T = 90/365 \approx 0.2466, not 9090.
  • Percentages left unconverted: r=0.05r = 0.05 and ╧Г=0.20\sigma = 0.20. Entering 55 and 2020 produces nonsense of enormous magnitude.
  • Using NтА▓N' instead of NN: the price needs the cumulative normal, not the density. The density appears only in gamma and vega.
  • Adding ╧Г2/2\sigma^2/2 to d2d_2: only d1d_1 carries the +╧Г2/2+\sigma^2/2; d2=d1тИТ╧ГTd_2 = d_1 - \sigma\sqrt{T} always.
  • Forgetting to discount the strike: the second term is KeтИТrTN(d2)Ke^{-rT}N(d_2), not KN(d2)KN(d_2).
  • Pricing an American or dividend-paying option with this formula: American puts can be worth more than their European counterpart, and dividends require the Black-Scholes-Merton adjustment SтЖТSeтИТqTS \to Se^{-qT}.
  • Skipping the parity check: if CтИТPтЙаSтИТKeтИТrTC - P \ne S - Ke^{-rT}, an arithmetic slip has crept in.

Examples

Step 1: lnтБб(S/K)=lnтБб(1)=0\ln(S/K) = \ln(1) = 0; ╧ГT=0.20\sigma\sqrt{T} = 0.20
Step 2: d1=0+(0.05+0.02)(1)0.20=0.070.20=0.35d_1 = \dfrac{0 + (0.05 + 0.02)(1)}{0.20} = \dfrac{0.07}{0.20} = 0.35
Step 3: d2=0.35тИТ0.20=0.15d_2 = 0.35 - 0.20 = 0.15
Step 4: N(0.35)тЙИ0.6368307N(0.35) \approx 0.6368307, N(0.15)тЙИ0.5596177N(0.15) \approx 0.5596177
Step 5: KeтИТrT=100eтИТ0.05тЙИ95.122942Ke^{-rT} = 100e^{-0.05} \approx 95.122942
Step 6: CтЙИ100(0.6368307)тИТ95.122942(0.5596177)тЙИ63.68307тИТ53.23249C \approx 100(0.6368307) - 95.122942(0.5596177) \approx 63.68307 - 53.23249
Answer: C \approx \10.4506,withdelta, with delta N(d_1) \approx 0.637$

Step 1: Directly: P=KeтИТrTN(тИТd2)тИТSтАЙN(тИТd1)P = Ke^{-rT}N(-d_2) - S\,N(-d_1)
Step 2: N(тИТ0.15)=1тИТ0.5596177=0.4403823N(-0.15) = 1 - 0.5596177 = 0.4403823; N(тИТ0.35)=1тИТ0.6368307=0.3631693N(-0.35) = 1 - 0.6368307 = 0.3631693
Step 3: PтЙИ95.122942(0.4403823)тИТ100(0.3631693)тЙИ41.89198тИТ36.31693тЙИ5.5735P \approx 95.122942(0.4403823) - 100(0.3631693) \approx 41.89198 - 36.31693 \approx 5.5735
Step 4: By parity: P=CтИТS+KeтИТrT=10.4506тИТ100+95.122942P = C - S + Ke^{-rT} = 10.4506 - 100 + 95.122942
Step 5: тЙИ5.5735\approx 5.5735 тАФ the two agree
Answer: P \approx \5.5735$

Step 1: lnтБб(60/55)тЙИ0.0870114\ln(60/55) \approx 0.0870114; ╧ГT=0.35├Ч0.5=0.175\sigma\sqrt{T} = 0.35 \times 0.5 = 0.175
Step 2: d1=0.0870114+(0.04+0.06125)(0.25)0.175=0.0870114+0.02531250.175тЙИ0.6418507d_1 = \dfrac{0.0870114 + (0.04 + 0.06125)(0.25)}{0.175} = \dfrac{0.0870114 + 0.0253125}{0.175} \approx 0.6418507
Step 3: d2=0.6418507тИТ0.175тЙИ0.4668507d_2 = 0.6418507 - 0.175 \approx 0.4668507
Step 4: N(тИТd1)тЙИ0.2604851N(-d_1) \approx 0.2604851, N(тИТd2)тЙИ0.3203033N(-d_2) \approx 0.3203033
Step 5: KeтИТrT=55eтИТ0.01тЙИ54.452741Ke^{-rT} = 55e^{-0.01} \approx 54.452741
Step 6: PтЙИ54.452741(0.3203033)тИТ60(0.2604851)тЙИ17.44146тИТ15.62911P \approx 54.452741(0.3203033) - 60(0.2604851) \approx 17.44146 - 15.62911
Answer: P \approx \1.8123(thematchingcallis(the matching call is\approx $7.3596$, and parity checks out)

Frequently Asked Questions

C = S┬╖N(dтВБ) тИТ K┬╖e^(тИТrT)┬╖N(dтВВ) for a European call, with dтВБ = [ln(S/K) + (r + ╧Г┬▓/2)T] / (╧ГтИЪT) and dтВВ = dтВБ тИТ ╧ГтИЪT. The put is P = K┬╖e^(тИТrT)┬╖N(тИТdтВВ) тИТ S┬╖N(тИТdтВБ). N is the standard normal cumulative distribution.

N(dтВВ) is the risk-neutral probability the option expires in the money, so K┬╖e^(тИТrT)┬╖N(dтВВ) is the discounted expected cost of exercising. N(dтВБ) is the call's delta and weights the expected value of the underlying received. Their difference is the option's fair value.

Hold S, K, T and r fixed and search for the ╧Г that reproduces the observed market price. There is no closed form, but the price rises strictly with ╧Г, so bisection or Newton's method converges in a handful of iterations.

Not directly. It prices European exercise only. For a continuous dividend yield q, replace S with S┬╖e^(тИТqT) (the Black-Scholes-Merton form). American puts can be worth more than the European price because of early exercise and need a binomial tree or a numerical method.

Related Solvers

Try AI-Math for Free

Get step-by-step solutions to any math problem. Upload a photo or type your question.

Start Solving