Put–call parity: fiduciary call = protective put
A share plus a put (protective put) and a call plus a bond paying X (fiduciary call) both pay the greater of S_T and X, so they must cost the same today: S₀ + p₀ = c₀ + X(1 + r)^−T. It holds for European options with the same strike and expiry.
Before this: Option price bounds and replication vs forwards, Pricing and Valuing Forward Contracts and FRAs
On the exam
- Explain put–call parity for European options
Explain put–call parity for European options. Expect to solve for a missing price (put, call, share or bond), to name the two portfolios, and to spot the arbitrage when parity fails. Use the present value, PV(X), never X.
How deeply to learn each part
- Know the idea
- Understand it in general. It frames other topics, but you will not calculate with it.
- Use it
- Understand it well enough to solve a question with it. Recognize when it applies.
- Memorize
- Learn it by heart. The exam will not give it to you.
You know this one. The full lesson is folded away. The takeaways, formulas and checkpoint below are your quick refresher, and the checkpoint is a fair test of whether you still do.
You tested strong here. The full lesson is folded away. The takeaways, formulas and checkpoint below are your quick refresher, and the checkpoint is a fair test of whether you still know it.
Why must a call, a put, the share and a bond be priced consistently?
Because you can combine them into two portfolios that always pay the same amount. Two things that pay the same amount in every state of the world must cost the same today, or someone could buy one, sell the other and pocket the difference. That is the law of one price from the arbitrage lessons, applied to options.
Here are the two portfolios. The protective put is a long share plus a long put on it. The fiduciary call is a long call plus a risk-free bond paying X at expiry, where X is the exercise price. Both options are European options with the same strike and expiry.
- Protective put Memorize cost S₀ + p₀
- Long share S₀
- Long put p₀; floors the loss at X
-
- Fiduciary call Memorize cost c₀ + PV(X)
- Long call c₀; the upside above X
- Risk-free bond paying X PV(X) = X(1 + r)^−T today
-
Compare them at expiry. The share ends at S_T.
| At expiry | S_T < X | S_T ≥ X |
|---|---|---|
| Protective put: share + put | S_T + (X − S_T) = X | S_T + 0 = S_T |
| Fiduciary call: call + bond paying X | 0 + X = X | (S_T − X) + X = S_T |
Both pay X when the share finishes below the strike and S_T when it finishes above. The payoff is the greater of S_T and X. The put sets a floor of X under the share. The bond sets the same floor under the call. So their prices today must match. That equality is put–call parity .
The term X(1 + r)^−T is the price today of the bond, written PV(X). The bond must be worth X at expiry, so you pay its discounted value now, not X itself.
Try this 0 of 3
- Drag S_T below X and compare the two totals
- Type a market put price below the parity price
- Type a market put price above the parity price
Top: own the share and a put (a protective put). Bottom: own a call and a risk-free bond that pays X (a fiduciary call). Drag S_T and compare what each pays at expiry; then type a market put price and see whether the two packages still cost the same today.
The share pays S_T; the put pays max(0, 50 − S_T). Together they pay 50 whenever S_T is below 50 and S_T above it: max(S_T, 50). At S_T = 70: share 70 + put 0 = 70.
The call pays max(0, S_T − 50); the bond pays 50 whatever happens. Together they pay 50 below the strike and S_T above it: the same max(S_T, 50) as the protective put. At S_T = 70: call 20 + bond 50 = 70.
At expiry both pay 70 · Today 53.37 vs 53.37
European options with the same strike and the same expiry, on a share with no dividends before expiry. Every price is today's; the bond is bought for PV(X) and pays X at expiry.
Show working
Same payoff at expiry → same price today: S₀ + p₀ = c₀ + PV(X)
PV(X) = 50 ÷ 1.03^0.5 = 49.27
p₀ = c₀ + PV(X) − S₀ = 4.10 + 49.27 − 48.00 = 5.37
Trap: using X, not PV(X), gives 4.10 + 50 − 48.00 = 6.10
Market put 5.37 matches: no trade.
- 1.03y^x0.5=1/x×50=49.27, PV(X)
- +4.1−48=5.37, the put
y^x power · 1/x reciprocal
- 50ENTER1.03ENTER0.5y^x÷49.27, PV(X)
- 4.1+48−5.37, the put
ENTER enter (on the HP, puts the number on the stack) · y^x power
Display: p₀ = USD 5.37
Conditions: the options are European, on the same underlying, with the same strike and expiry, and the share pays no income during the life. The resulting price is the no-arbitrage price : any other price lets a trader lock in a profit.
How do you solve parity for a missing price?
Move terms across the equals sign and flip their signs. Three of the four values (share, call, put, bond) give you the fourth.
A share trades at 48.00. A European call on it, with an exercise price of 50.00 and 0.5 years to expiry, costs 4.10. The risk-free rate is 3.00% and the share pays no income. The price of the European put with the same exercise price and expiry is closest to:
4.10 + 50.00 × (1 + 0.03)^−0.5 − 48.00 = 4.10 + 49.27 − 48.00 = 5.37
Put price, p₀5.37
- 1.03y^x0.5+|-=×50=49.27
- +4.1−48=5.37
y^x power · +|- change sign
- 1.03ENTER0.5CHSy^x50×49.27
- 4.1+48−5.37
ENTER enter (on the HP, puts the number on the stack) · CHS change sign · y^x power
Exam tip Write the equation as S + p = c + PV(X) before every question, then isolate the unknown. The bond is always PV(X), never X.
What if parity fails?
An arbitrage opens. Sell the side that is too expensive and buy the side that is too cheap. The rule is: sell the dear side, buy the cheap side. The two sides offset exactly at expiry, so the profit today is kept.
If the put were cheap instead (say CAD 5.00), do the reverse: buy the share and the put, sell the call and borrow 49.27.
Go deeper What changes if the share pays a dividend?
A known dividend paid before expiry reduces the share’s price by its present value, so the left side becomes S₀ − PV(D) + p₀ = c₀ + PV(X). The basic curriculum form assumes no income, so use that unless a question states a dividend.
Go deeper Why parity is not exact for American options
An American option can be exercised early, which adds value that the European payoff comparison does not capture. For American options, parity becomes an inequality rather than an equality. The curriculum applies the equation to European options only.
Memorize this
MemorizePut–call parity
| Portfolio | Built from | Cost today | Payoff at expiry |
|---|---|---|---|
| Protective put | long share + long put | ||
| Fiduciary call | long call + bond paying |
Memory hook Floor at X from the put, floor at X from the bond; the share and the call both carry the upside. Two floors, one upside, one price.
Know it cold . European options, same underlying, same , same expiry. Discount .
- Protective put Memorize cost S₀ + p₀
- Long share S₀
- Long put p₀; floors the loss at X
-
- Fiduciary call Memorize cost c₀ + PV(X)
- Long call c₀; the upside above X
- Risk-free bond paying X PV(X) = X(1 + r)^−T today
-
Quick example
Share 25, European put 0.90, X = 22, r = 3%, T = 0.5. The call must be 25 + 0.90 − 22 × 1.03^−0.5 = 25.90 − 21.68 = 4.22.
- 1.03y^x0.5+|-=×22= 21.68
- +|-+25+0.9= 4.22
y^x power · +|- change sign
- 1.03ENTER0.5CHSy^x22× 21.68
- CHS25+0.9+ 4.22
ENTER enter (on the HP, puts the number on the stack) · CHS change sign · y^x power
Quick example
Call 7.40, X = 85, S = 82, r = 3%, T = 1. PV(X) = 82.52. Put = 7.40 + 82.52 − 82 = 7.92.
- 85÷1.03= 82.52
- +7.4−82= 7.92
- 85ENTER1.03÷ 82.52
- 7.4+82− 7.92
ENTER enter (on the HP, puts the number on the stack)
Quick example
Share 64, put 2.85, X = 62, r = 6%, T = 1. PV(X) = 58.49. Call = 64 + 2.85 − 58.49 = 8.36.
- 62÷1.06= 58.49
- +|-+64+2.85= 8.36
+|- change sign
- 62ENTER1.06÷ 58.49
- CHS64+2.85+ 8.36
ENTER enter (on the HP, puts the number on the stack) · CHS change sign
How it is asked
-
Solve for the missing price
S = 64, European put 2.85, X = 62, r = 6%, T = 1. Call?
64 + 2.85 − 62 ÷ 1.06 = 8.36. Trap: 4.85 (X not discounted).
-
Name the portfolio
A long call plus a risk-free bond paying X is called a…?
Fiduciary call. Trap: protective put (that is share + put).
-
Spot the arbitrage
Put trades above its parity value. What do you do?
Sell the dear side (share + put), buy the cheap side (call + bond): riskless profit today.
-
When does parity apply?
Which options does basic parity cover?
European, same strike, same expiry. Trap: American.
Exam traps
- Using X instead of PV(X): the bond is worth X(1 + r)^−T today, not X.
- Rearranging with the wrong sign: p = c + PV(X) − S, never c − PV(X) + S.
- Mixing up the two names: protective put = share + put; fiduciary call = call + bond.
- Applying parity when strikes or expiries differ, or to American options.
Checkpoint
4 exam-style questions. About 90 seconds each.
1A share trades at USD 100. A one-year European put with an exercise price of USD 95 costs USD 3.20, and the risk-free rate is 5%. The share pays no income. The price of the European call with the same exercise price and expiry is closest to:
2A fiduciary call consists of:
3Put–call parity in its basic form requires the options to be:
4A share trades at USD 60. European options on it expire in one year with an exercise price of USD 60. The call costs USD 5.50, the put costs USD 3.59 and the risk-free rate is 4%. The share pays no income. Selling the protective put side (short the share, sell the put), buying the call and lending the present value of the exercise price produces a riskless profit today closest to:
Key takeaways
- Protective put (S + p) and fiduciary call (c + PV(X)) pay the same at expiry, so they cost the same today.
- Solve for any missing price by rearranging, and always discount X.
- If parity fails, sell the dear side, buy the cheap side and keep the difference today.
- Basic parity is for European options with the same strike and expiry.
Quick example
Share 25, European put 0.90, X = 22, r = 3%, T = 0.5. The call must be 25 + 0.90 − 22 × 1.03^−0.5 = 25.90 − 21.68 = 4.22.
- 1.03y^x0.5+|-=×22= 21.68
- +|-+25+0.9= 4.22
y^x power · +|- change sign
- 1.03ENTER0.5CHSy^x22× 21.68
- CHS25+0.9+ 4.22
ENTER enter (on the HP, puts the number on the stack) · CHS change sign · y^x power
Quick example
Call 7.40, X = 85, S = 82, r = 3%, T = 1. PV(X) = 82.52. Put = 7.40 + 82.52 − 82 = 7.92.
- 85÷1.03= 82.52
- +7.4−82= 7.92
- 85ENTER1.03÷ 82.52
- 7.4+82− 7.92
ENTER enter (on the HP, puts the number on the stack)
Quick example
Share 64, put 2.85, X = 62, r = 6%, T = 1. PV(X) = 58.49. Call = 64 + 2.85 − 58.49 = 8.36.
- 62÷1.06= 58.49
- +|-+64+2.85= 8.36
+|- change sign
- 62ENTER1.06÷ 58.49
- CHS64+2.85+ 8.36
ENTER enter (on the HP, puts the number on the stack) · CHS change sign
All Derivatives formulas, every lesson
Practice exam-style questions on Put–Call Parity and Option Replication
Questions about this lesson?
Where this comes back
- Building synthetic positions with put–call parity Put–Call Parity and Option Replication
- The One-Period Binomial Model Derivatives
Questions candidates ask
What is put–call parity?
A no-arbitrage link between a European call, a European put, the underlying and a risk-free bond: S₀ + p₀ = c₀ + X(1 + r)^−T. It holds when the options share the same strike and expiry. Given any three of the four prices you can find the fourth.
What is the difference between a fiduciary call and a protective put?
A protective put is a long share plus a long put. A fiduciary call is a long call plus a risk-free bond paying the exercise price. They have the same payoff at expiry, so parity says they cost the same.
How do you calculate a put price using put–call parity?
Discount the exercise price to PV(X) = X(1 + r)^−T, then compute p = c + PV(X) − S. With c = 4.10, X = 50, S = 48, r = 3% and six months, PV(X) = 49.27 and the put is 5.37.
Spotted an error? Tell us and we will fix it.