Skip to content

CFA Level I · CFA Level I Exam

Option Replication Using Put-Call Parity: formula sheet

Full chapter guide

Key formulas

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.
Fiduciary call payoff at expiry
max(S_T, X) = max(S_T − X, 0) + X
Call payoff plus the bond's face value X.
Protective put payoff at expiry
max(S_T, X) = S_T + max(X − S_T, 0)
Asset value plus put payoff. Floor is X.
Put-call parity (European options, no income on asset)
c + X ÷ (1 + r)^T = S₀ + p
Fiduciary call cost on the left, protective put cost on the right. Same X and T for both options.
Present value of the bond
PV(X) = X ÷ (1 + r)^T
Use the risk-free rate r with the same compounding as T. T is in years.
Rearranged for call or put
c = S₀ + p − X ÷ (1 + r)^T; p = c + X ÷ (1 + r)^T − S₀
Use to find a missing option price.
Put-call parity (European)
c + X ÷ (1 + r)^T = S + p
Same underlying, strike and expiry. With continuous compounding, PV(X) = X × e^(−rT). Assumes no dividends or carry on the underlying.
Synthetic long call
c = p + S − X ÷ (1 + r)^T
Buy put, buy stock, borrow PV(X).
Synthetic long put
p = c − S + X ÷ (1 + r)^T
Buy call, short stock, lend PV(X) by buying the bond.
Synthetic long underlying
S = c − p + X ÷ (1 + r)^T
Buy call, sell put, buy the bond.
Synthetic risk-free bond
X ÷ (1 + r)^T = S + p − c
Long stock, long put and short call at the same strike is a riskless (conversion-type) position that pays X at expiry.
Short positions
Reverse every sign of the long replication
For example, short call = −p − S + PV(X).
Put-call parity (no dividends)
c + X ÷ (1 + r)^T = p + S0
European options, same X and T, same underlying. Left side is the fiduciary call, right side is the protective put.
Parity with discrete dividends
c + X ÷ (1 + r)^T = p + S0 − PV(D)
PV(D) is the present value of dividends paid before expiry. Dividends lower the stock leg.
Forward-based parity
c + X ÷ (1 + r)^T = p + F0(T) ÷ (1 + r)^T
Equivalent to c − p = [F0(T) − X] ÷ (1 + r)^T. Use when a forward price is given.
Continuous version
c + X e^(−rT) = p + S0 e^(−qT)
q is the continuous dividend yield. Use only if the question gives continuous rates.
Arbitrage profit
Profit today = |Fiduciary call value − Protective put value|
Per unit of the position, received at time 0 and riskless.

Quick revision

  • Put-call parity (European, no income): c + X/(1+r)^T = p + S0.
  • Fiduciary call = long call + zero-coupon bond with face value X.
  • Protective put = long put + long underlying.
  • Both portfolios pay max(S_T, X) at expiry.
  • Parity needs the same underlying, strike and expiry, and European exercise.
  • Synthetic call = long put + long underlying + borrow PV of X (short the bond).
  • Synthetic put = long call + short underlying + long bond with PV of X.
  • Synthetic underlying = long call + short put + long bond.
  • Synthetic bond = long put + long underlying + short call.
  • Arbitrage: sell the more expensive portfolio, buy the cheaper, and keep the difference today.
  • Discount X at the risk-free rate for the option's time to expiry in years.
  • If the underlying pays income, the parity equation is adjusted, so follow the question's wording.

Common mistakes

  • Using X instead of its present value Fix: Always compute X/(1+r)^T before touching the other terms.
  • Using months as T Fix: Convert to years: 3 months is 0.25, 6 months is 0.5.
  • Using X instead of its present value X ÷ (1 + r)^T in the parity equation. Fix: Payoffs use X at expiry. Costs today use PV(X). Always discount.
  • Thinking the fiduciary call and protective put have different payoffs. Fix: Both equal max(S_T, X). Check both states, above and below X.
  • Treating the bond term as the stock price instead of PV(X). Fix: Always write the bond as X ÷ (1 + r)^T, not as S.
  • Getting the sign wrong on the bond when replicating a call. Fix: Isolate the call: c = p + S − PV(X). The minus means borrow, not lend.
  • Using X instead of PV(X) in the comparison. Fix: Always write X ÷ (1 + r)^T as the bond leg. Without it the gap is wrong.
  • Reversing the trade direction. Fix: Sell whichever side has the higher value and buy the lower side. Then check that time 0 cash is positive.

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.
  • Know the payoff max(S_T, X) for both portfolios. Questions often ask which portfolio has a floor at X.
  • Always discount X with the risk-free rate. Options that use X undiscounted are traps.
  • Parity holds for European options with the same strike and expiry only. Watch for mismatches.