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=SN(d1)KerTN(d2),P=KerTN(d2)SN(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: KerTK 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

CP=SKerTC - 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πex2/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/3650.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 NN' 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 KerTN(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 SSeqTS \to Se^{-qT}.
  • Skipping the parity check: if CPSKerTC - 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.350.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: KerT=100e0.0595.122942Ke^{-rT} = 100e^{-0.05} \approx 95.122942
Step 6: C100(0.6368307)95.122942(0.5596177)63.6830753.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=KerTN(d2)SN(d1)P = Ke^{-rT}N(-d_2) - S\,N(-d_1)
Step 2: N(0.15)=10.5596177=0.4403823N(-0.15) = 1 - 0.5596177 = 0.4403823; N(0.35)=10.6368307=0.3631693N(-0.35) = 1 - 0.6368307 = 0.3631693
Step 3: P95.122942(0.4403823)100(0.3631693)41.8919836.316935.5735P \approx 95.122942(0.4403823) - 100(0.3631693) \approx 41.89198 - 36.31693 \approx 5.5735
Step 4: By parity: P=CS+KerT=10.4506100+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.1750.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.64185070.1750.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: KerT=55e0.0154.452741Ke^{-rT} = 55e^{-0.01} \approx 54.452741
Step 6: P54.452741(0.3203033)60(0.2604851)17.4414615.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