Skip to content

CFA Level I Exam · Option Replication Using Put-Call Parity

Put-Call Parity for European Options Explained

Updated 7 October 2026 · Fact-checked

Put-call parity says a European call plus a risk-free bond paying the strike at expiry must cost the same as a European put plus the underlying: c + X/(1+r)^T = p + S0. Same strike, same expiry, no dividends. Rearrange to find any one of the four prices.

Understand Put-Call Parity for European Options

Start with two portfolios. The first is a fiduciary call: you buy a European call and also buy a risk-free bond that pays the strike price X at expiry. The second is a protective put: you buy the underlying asset and buy a European put on it with the same strike and expiry.

Now check the value at expiry. If the asset price ST is above X, the fiduciary call is worth (ST − X) + X = ST. The protective put is worth ST + 0 = ST. If ST is below X, the fiduciary call is worth 0 + X = X. The protective put is worth ST + (X − ST) = X. In every scenario the two portfolios pay the same amount.

Two portfolios with identical payoffs in all states must have the same price today. If they do not, you can buy the cheap one, sell the expensive one and lock in a risk-free profit. That is no-arbitrage pricing. So today: c + X/(1+r)^T = p + S0.

The relationship holds only for European options (no early exercise), with the same strike and same expiry on the same underlying. The simple form assumes the underlying pays no income during the option's life. The bond term X/(1+r)^T is the present value of the strike, discounted at the risk-free rate.

The real use is replication. Rearrange the formula and you can build any one of the four instruments from the other three. For example, a long call equals a long put plus a long underlying plus a short bond (borrowing). This is why the parity is tested both as a calculation and as a replication question.

Key formulas to remember

Put-call parity
c + X/(1+r)^T = p + S0
European options, same strike X and expiry T, underlying pays no income. r is the annual risk-free rate, T in years.
Call price
c = p + S0 − X/(1+r)^T
Long call = long put + long underlying + borrowing the present value of X.
Put price
p = c − S0 + X/(1+r)^T
Long put = long call + lend the present value of X + short underlying.
Underlying price
S0 = c − p + X/(1+r)^T
Long underlying = long call + long bond + short put.
Risk-free bond
X/(1+r)^T = p + S0 − c
Long bond = long put + long underlying + short call.
Continuous compounding version
c + X·e^(−rT) = p + S0
Use only if the question gives a continuously compounded rate.

How to solve Put-Call Parity for European Options questions

Use this method for any put-call parity question, whether it asks for a price, a replication or an arbitrage action.

  1. 1Check the conditions: European options, same strike, same expiry, same underlying, no income on the underlying. If a question differs, read it carefully.
  2. 2Write the formula c + X/(1+r)^T = p + S0 and mark which three values are given.
  3. 3Compute the present value of the strike: X ÷ (1+r)^T. Use T in years, so 6 months is 0.5.
  4. 4Isolate the unknown using the rearranged forms and substitute the numbers.
  5. 5For replication questions, move each term to the other side. A term that changes sides flips between long and short.
  6. 6For arbitrage questions, compare the two sides. Buy the cheaper portfolio and sell the more expensive one.
  7. 7Check that the answer is sensible: prices cannot be negative, and a call price should not exceed S0.

Quickest way: Compare the sides, then rearrange

When to use it: Use when the question gives three prices and asks for the fourth, under 90 seconds.

  1. Compute PV of strike first: X ÷ (1+r)^T. On the BA II Plus, enter the numeric value of 1+r, not the rate. Example with X = 52, r = 4%, T = 0.5: key 1.04, press yx, key 0.5, press = (shows 1.0198). Then press 1/x (shows 0.9806), press ×, key 52, press = (shows 50.99). Do the 1/x after the = step. Avoid typing X ÷ 1.04 yx 0.5 in one line unless you have set the calculator to AOS mode, because the default chain mode would give the wrong answer.
  2. Remember the pairs: call + bond on one side, put + stock on the other.
  3. Solve for the missing item with simple addition and subtraction.
  4. Among the three options, eliminate any that are negative or break the bounds, such as a call priced above the stock.

Common mistakes in Put-Call Parity for European Options

  • Using X instead of its present value

    Students remember the strike but forget the bond leg is discounted.

    Fix: Always compute X/(1+r)^T before touching the other terms.

  • Using months as T

    The option expiry is quoted as 3 or 6 months.

    Fix: Convert to years: 3 months is 0.25, 6 months is 0.5.

  • Putting the call on the same side as the stock

    The pairings fiduciary call and protective put are mixed up.

    Fix: Call goes with bond, put goes with underlying. Remember: c + bond = p + S.

  • Flipping long and short wrongly in replication

    Students do not track the sign change when a term moves across the equals sign.

    Fix: Write the rearranged equation first. A negative term means a short position, and a negative bond means borrowing.

  • Applying the formula to American options or to mismatched strikes

    The conditions are skipped when the numbers look familiar.

    Fix: Confirm European style and identical strike and expiry before using the parity.

  • Choosing the wrong arbitrage direction

    Students sell the cheaper portfolio.

    Fix: Buy the lower-priced portfolio and sell the higher-priced one. The difference is the profit at inception.

Worked examples

Example 1

A European call on a non-dividend-paying stock has a price of $12.00. The stock trades at $100, the strike is $95, expiry is one year and the risk-free rate is 5%. The put has the same strike and expiry. What is the put price? A) $2.48 B) $7.00 C) $21.52

Show the solution
  1. Parity: p = c − S0 + X/(1+r)^T.
  2. PV of strike = 95 ÷ 1.05 = 90.48 (rounded).
  3. p = 12.00 − 100 + 90.48 = 2.48.
  4. Check the traps: using X = 95 instead of its present value gives 7.00. Adding the stock and subtracting the bond (c + S0 − PV) gives 21.52. Both are wrong.

Answer: A) $2.48. The put price comes from p = c − S0 + PV(X). Do not assume put and call prices are equal. They would match only in the special case where PV(X) equals S0, which is not the case here.

Example 2

A European put on a non-dividend-paying stock is priced at $4.50. The stock is $50 and the European call with the same strike of $52 and 6-month expiry is priced at $3.00. The risk-free rate is 4% per year. Which trade lets an arbitrageur lock in a risk-free profit? A) Buy the put and the stock, sell the call and borrow the present value of the strike B) Buy the call, lend the present value of the strike, sell the put and short the stock C) Buy the call and the stock, sell the put and borrow the present value of the strike

Show the solution
  1. PV of strike = 52 ÷ (1.04)^0.5. √1.04 = 1.019804, so PV = 52 ÷ 1.019804 = 50.99.
  2. Fiduciary call cost = c + PV(X) = 3.00 + 50.99 = 53.99.
  3. Protective put cost = p + S0 = 4.50 + 50.00 = 54.50.
  4. The protective put costs more (54.50 vs 53.99), so it is overpriced.
  5. Buy the cheaper fiduciary call (buy the call and lend the present value of the strike by buying the bond). Sell the overpriced protective put (sell the put and short the stock).
  6. The gap is 54.50 − 53.99 = about $0.51 per unit, locked in at inception.

Answer: B) Buy the call, lend the present value of the strike, sell the put and short the stock. The protective put is priced about $0.51 above the fiduciary call.

Exam tips

  • Memorise the pairing: fiduciary call (call + bond) equals protective put (put + stock). Everything else follows from this.
  • Replication questions use words like 'synthetic'. Rearrange the formula and read off the signs.
  • Arbitrage items ask which side to buy. Buy the cheaper portfolio, sell the dearer one.
  • Convert T to years and use the given rate form. Do not mix annual and continuous compounding.
  • Use elimination: with three options, check signs and bounds first, then calculate only if needed.

Practice questions from Option Replication Using Put-Call Parity

Put-Call Parity for European Options in other exams

The same ground in other exams, if you are preparing for more than one or want another angle on it.

Put-Call Parity for European Options: frequently asked questions

What is the put-call parity formula for the CFA Level I exam?

It is c + X/(1+r)^T = p + S0. It links the prices of a European call, a European put, the underlying and a risk-free bond. The options must share the same strike and expiry.

Why does put-call parity work?

A fiduciary call and a protective put have identical payoffs at expiry in every scenario. Identical payoffs must have identical prices today, otherwise an arbitrage profit would exist.

Does put-call parity work for American options?

No, not as an equality. Early exercise breaks the exact payoff match, so the parity is stated for European options.

How do I replicate a long call using put-call parity?

Rearrange to c = p + S0 − X/(1+r)^T. Buy the put, buy the underlying and borrow the present value of the strike.