Economic Modelling · Black-Scholes derivative-pricing model
Black-Scholes Formula for European Calls and Puts
Updated 11 October 2026 · Fact-checked
The Black-Scholes formula prices a European option in closed form. Call = S₀N(d1) − Ke^(−rT)N(d2). Put = Ke^(−rT)N(−d2) − S₀N(−d1). Find d1 and d2 from the share price, strike, risk-free rate, volatility and time. Then read N(.) from normal tables. Check the answer with put-call parity.
Understand Black-Scholes Formula for European Calls and Puts
A European option can only be exercised at expiry. A call pays max(S_T − K, 0) and a put pays max(K − S_T, 0). Black-Scholes gives the price today of these payoffs.
The model assumes the share price follows geometric Brownian motion with constant volatility σ. It also assumes a constant continuously compounded risk-free rate r, no dividends, no transaction costs, and that you can trade continuously and short sell freely. Under these assumptions the option can be hedged perfectly, so its price is the discounted expected payoff under risk-neutral probabilities.
The call formula has two parts. S₀N(d1) is the present value of the share you receive if you exercise, weighted by a probability-like term. Ke^(−rT)N(d2) is the present value of the strike you pay, weighted by N(d2). Under the risk-neutral measure, N(d2) is the probability that the call finishes in the money. N(d1) is not that probability. It is the call's delta, which is the hedge ratio.
d1 and d2 are standardised numbers. They measure how far in or out of the money the option is, adjusted for drift and volatility over the life of the option. d2 is always d1 minus σ√T. The put price follows from the call price by put-call parity, or directly from the put formula using N(−d1) and N(−d2).
Key rules to remember
- d1
- d1 = [ln(S₀ ÷ K) + (r + σ²/2)T] ÷ (σ√T)
- S₀ is the current share price, K the strike, r the continuously compounded risk-free rate, σ the annual volatility, T the time to expiry in years. ln is the natural log.
- d2
- d2 = d1 − σ√T
- Equivalent to [ln(S₀ ÷ K) + (r − σ²/2)T] ÷ (σ√T).
- European call price
- C = S₀N(d1) − Ke^(−rT)N(d2)
- N(.) is the standard normal cumulative distribution function. For a share with no dividends.
- European put price
- P = Ke^(−rT)N(−d2) − S₀N(−d1)
- Uses N(−x) = 1 − N(x).
- Put-call parity
- C − P = S₀ − Ke^(−rT)
- Holds for European options on the same share, strike and expiry, with no dividends. Use it to check your answers.
- With a continuous dividend yield q
- Replace S₀ by S₀e^(−qT) in d1, d2 and the price. d1 = [ln(S₀ ÷ K) + (r − q + σ²/2)T] ÷ (σ√T)
- Parity becomes C − P = S₀e^(−qT) − Ke^(−rT).
How to solve Black-Scholes Formula for European Calls and Puts questions
Use the same sequence for any numerical question on European call and put prices. Keep four decimal places in d1 and d2 until the final step.
- 1List S₀, K, r, σ, T and any dividend yield. Check that T is in years and that r and σ are annual rates in decimal form.
- 2If there is a continuous dividend yield q, replace S₀ by S₀e^(−qT) and use that value everywhere. If the dividends are discrete, subtract their present value from S₀.
- 3Compute σ√T, then the numerator ln(S₀ ÷ K) + (r + σ²/2)T, and divide to get d1.
- 4Compute d2 = d1 − σ√T.
- 5Read N(d1) and N(d2) from the normal tables. For negative arguments use N(−x) = 1 − N(x). Interpolate if the question needs more accuracy.
- 6Compute the discount factor e^(−rT), then the call price S₀N(d1) − Ke^(−rT)N(d2).
- 7Get the put price from parity, P = C − S₀ + Ke^(−rT), or directly from the put formula. Check that both prices are positive and that the call is at least S₀ − Ke^(−rT).
- 8State the answer with units (₹) and your assumptions. Say which tables or rounding you used.
Quickest way: Compute one option, get the other by parity
When to use it: Use this when the question asks for both a call and a put, or when you are short of time in the written paper.
- Calculate d1 and d2 once, carefully.
- Find N(d1) and N(d2) and price the call.
- Get the put as P = C − S₀ + Ke^(−rT). This saves two more table lookups.
- If the question asks for the put only, price the put directly with N(−d2) and N(−d1), or price the call first. Either route is fine.
- Sanity check: for an at-the-money option, d1 is slightly above 0, so N(d1) is slightly above 0.5.
Common mistakes in Black-Scholes Formula for European Calls and Puts
Using σ² in place of σ in the denominator, or forgetting the square root of T.
The numerator has σ²/2, which makes it easy to mix up the two terms.
Fix: The denominator is always σ√T. Write σ√T on its own line first and reuse it for d2.
Treating N(d1) as the probability the call finishes in the money.
Both N(d1) and N(d2) look like probabilities.
Fix: N(d2) is the risk-neutral probability of finishing in the money. N(d1) is the delta of the call.
Using N(d1) and N(d2) in the put formula instead of N(−d1) and N(−d2).
Students copy the call structure and only swap the signs of the two terms.
Fix: The put is Ke^(−rT)N(−d2) − S₀N(−d1). Or avoid the issue by using parity.
Using a simple rate or a percentage such as 5 instead of 0.05, or using months for T.
Questions give rates in per cent and times in months.
Fix: Convert to decimals and years before you start. For example, 9 months is T = 0.75.
Applying put-call parity to American options or ignoring dividends.
Parity is memorised without its conditions.
Fix: State that parity holds for European options. Adjust S₀ for dividends before using it.
Rounding d1 and d2 too early, or reading a negative N(x) wrongly.
Tables show only positive arguments, so students guess for negatives.
Fix: Use N(−x) = 1 − N(x). Keep four decimal places until the last step.
Worked examples
Example 1
A non-dividend-paying share trades at ₹100. A European call and a European put each have strike ₹100 and expire in 1 year. The risk-free rate is 5% per year continuously compounded and the volatility is 20% per year. Find the price of the call and of the put.
Show the solution
- S₀ = 100, K = 100, r = 0.05, σ = 0.20, T = 1. Then σ√T = 0.20.
- ln(S₀ ÷ K) = ln(1) = 0. The numerator is 0 + (0.05 + 0.02) × 1 = 0.07.
- d1 = 0.07 ÷ 0.20 = 0.35 and d2 = 0.35 − 0.20 = 0.15.
- From tables, N(0.35) = 0.6368 and N(0.15) = 0.5596.
- e^(−0.05) = 0.9512, so Ke^(−rT) = 95.12.
- Call = 100 × 0.6368 − 95.12 × 0.5596 = 63.68 − 53.23 = 10.45.
- Put by parity: P = C − S₀ + Ke^(−rT) = 10.45 − 100 + 95.12 = 5.57.
- Check directly: N(−0.15) = 0.4404 and N(−0.35) = 0.3632. Put = 95.12 × 0.4404 − 100 × 0.3632 = 41.89 − 36.32 = 5.57. This agrees.
Answer: Call ≈ ₹10.45 and put ≈ ₹5.57.
Example 2
A share trades at ₹250 and pays no dividends. A 6-month European call has strike ₹260. The risk-free rate is 6% per year continuously compounded and volatility is 30% per year. Find d1, d2, the call price and the price of the matching put. Round d1 and d2 to two decimal places before using tables.
Show the solution
- S₀ = 250, K = 260, r = 0.06, σ = 0.30, T = 0.5. Then σ√T = 0.30 × 0.7071 = 0.2121.
- ln(250 ÷ 260) = ln(0.9615) = −0.0392.
- (r + σ²/2)T = (0.06 + 0.045) × 0.5 = 0.0525.
- Numerator = −0.0392 + 0.0525 = 0.0133. d1 = 0.0133 ÷ 0.2121 = 0.0626, which rounds to 0.06.
- d2 = 0.0626 − 0.2121 = −0.1495, which rounds to −0.15.
- N(0.06) = 0.5239 and N(−0.15) = 1 − 0.5596 = 0.4404.
- e^(−0.03) = 0.9704, so Ke^(−rT) = 260 × 0.9704 = 252.32.
- Call = 250 × 0.5239 − 252.32 × 0.4404 = 130.98 − 111.12 = 19.86, which is about ₹19.9.
- Put by parity: P = 19.86 − 250 + 252.32 = 22.18, which is about ₹22.2.
- Direct check: N(−0.06) = 0.4761 and N(0.15) = 0.5596. Put = 252.32 × 0.5596 − 250 × 0.4761 = 141.20 − 119.02 = 22.18.
Answer: d1 ≈ 0.06 and d2 ≈ −0.15. Call ≈ ₹19.9 and put ≈ ₹22.2, with small differences possible from table rounding.
Exam tips
- In multiple-choice questions, estimate first. An at-the-money call with no dividends should be well below S₀ and above S₀ − Ke^(−rT). Eliminate options that break these bounds.
- In written questions, show the formula, d1, d2, the table values and the final price on separate lines. Method marks are given even if a table value is slightly off.
- Always check parity at the end when you have both a call and a put. It catches sign and table errors quickly.
- Read the question for dividends, a different time unit, or an option on a currency or index. These change S₀ or r in the formula.
- In computer-based papers, compute d1 and d2 in a cell or variable and use the normal cumulative function such as pnorm in R or NORM.S.DIST in Excel. Write the formula you used next to the output.
Practice questions from Black-Scholes derivative-pricing model
- A forward contract on an index paying a continuous dividend yield of 2% p.a. is priced with a risk-free rate of 7% p.a. (continuous). The in…
- Market prices of European options on the same share and expiry show implied volatility that is higher for deep out-of-the-money puts than fo…
- A share price is assumed to follow geometric Brownian motion. Which one of the following is a correct consequence under that model, and henc…
- In the Black-Scholes model for a European call on a non-dividend-paying share, which of the following changes, taken alone, would decrease t…
- A non-dividend share has S0 = 100, and the risk-free rate is 4% continuously compounded. A forward-type derivative pays S_T^2 at time T = 1 …
Black-Scholes Formula for European Calls and Puts in other exams
The same ground in other exams, if you are preparing for more than one or want another angle on it.
Black-Scholes Formula for European Calls and Puts: frequently asked questions
How do I calculate d1 and d2 in Black-Scholes?
Compute d1 = [ln(S₀ ÷ K) + (r + σ²/2)T] ÷ (σ√T). Then compute d2 = d1 − σ√T. Use annual rates in decimal form and T in years.
What is the difference between N(d1) and N(d2)?
N(d2) is the risk-neutral probability that a call finishes in the money. N(d1) is the delta of the call, which is the number of shares in the hedge. Both come from the standard normal distribution function.
How do I get the put price from the call price?
Use put-call parity for European options on a non-dividend-paying share: P = C − S₀ + Ke^(−rT). If there is a continuous dividend yield q, use S₀e^(−qT) instead of S₀.
Does the Black-Scholes formula work for American options?
Not directly. The formula applies to European options. For a non-dividend-paying share an American call is never exercised early, so it has the same value as the European call. An American put can be worth more than the European put.
Which rate should I use for r?
Use the continuously compounded risk-free rate. If the question gives an effective annual rate i, convert it using r = ln(1 + i).