Analyst Dojo
Lesson 1 of 4 6–9% of the exam

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.

8 min cram, 30 min full read. Based on the 2027 CFA® Program Level I curriculum, Derivatives, Learning Module 9. Also part of the 2026 curriculum, so it applies to the November 2026 exam too.

Tailor this to you: take the self-assessment

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.

Cram mode: the one-screen version of this lesson. Switch to Full for the explanations, worked examples and interactives.

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.

The two portfolios that parity equates
Put–call paritysame payoff at expiry, so same price today
  • 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 expiryS_T < XS_T ≥ X
Protective put: share + putS_T + (X − S_T) = XS_T + 0 = S_T
Fiduciary call: call + bond paying X0 + 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 .

Put–call parity Memorize
S0+p0=c0+X(1+r)−TS_0 + p_0 = c_0 + X(1 + r)^{-T}

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.

InteractivePut–call parity: two routes to the same payoff

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.

Protective put: share + put70 + 0 = 70
S_T = 70

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.

Fiduciary call: call + bond paying X20 + 50 = 70
S_T = 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

No arbitrage: both packages cost USD 53.37 today

Protective put S₀ + p₀ = 48.00 + 5.37 = 53.37. Fiduciary call c₀ + PV(X) = 4.10 + 49.27 = 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.

USD 5.37
USD 4.10
PV(X)USD 49.27
Parity put priceUSD 5.37
Share + market putUSD 53.37
Call + PV(X)USD 53.37
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.

Parity put on your calculator
  1. 1.03y^x0.5=1/x×50=49.27, PV(X)
  2. +4.1−48=5.37, the put

y^x power · 1/x reciprocal

  1. 50ENTER1.03ENTER0.5y^x÷49.27, PV(X)
  2. 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

Same payoff at expiry, same price today.

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.

Put from parity Memorize
p0=c0+X(1+r)−T−S0p_0 = c_0 + X(1 + r)^{-T} - S_0
Call from parity Memorize
c0=S0+p0−X(1+r)−Tc_0 = S_0 + p_0 - X(1 + r)^{-T}
Rearrange itPut–call parity: solve for any input
The question asks for
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

On your calculator
  1. 1.03y^x0.5+|-=×50=49.27
  2. +4.1−48=5.37

y^x power · +|- change sign

  1. 1.03ENTER0.5CHSy^x50×49.27
  2. 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

PortfolioBuilt fromCost todayPayoff at expiry
Protective putlong share + long putS0+p0S_0 + p_0max⁡(ST, X)\max(S_T,\ X)
Fiduciary calllong call + bond paying XXc0+PV(X)c_0 + PV(X)max⁡(ST, X)\max(S_T,\ X)

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 S0+p0=c0+X(1+r)−TS_0 + p_0 = c_0 + X(1 + r)^{-T}. European options, same underlying, same XX, same expiry. Discount XX.

The two portfolios that parity equates
Put–call paritysame payoff at expiry, so same price today
  • 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
Put–call parity Memorize
S0+p0=c0+X(1+r)−TS_0 + p_0 = c_0 + X(1 + r)^{-T}
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.

On your calculator
  1. 1.03y^x0.5+|-=×22= 21.68
  2. +|-+25+0.9= 4.22

y^x power · +|- change sign

  1. 1.03ENTER0.5CHSy^x22× 21.68
  2. CHS25+0.9+ 4.22

ENTER enter (on the HP, puts the number on the stack) · CHS change sign · y^x power

Put from parity Memorize
p0=c0+X(1+r)−T−S0p_0 = c_0 + X(1 + r)^{-T} - S_0
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.

On your calculator
  1. 85÷1.03= 82.52
  2. +7.4−82= 7.92
  1. 85ENTER1.03÷ 82.52
  2. 7.4+82− 7.92

ENTER enter (on the HP, puts the number on the stack)

Call from parity Memorize
c0=S0+p0−X(1+r)−Tc_0 = S_0 + p_0 - X(1 + r)^{-T}
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.

On your calculator
  1. 62÷1.06= 58.49
  2. +|-+64+2.85= 8.36

+|- change sign

  1. 62ENTER1.06÷ 58.49
  2. CHS64+2.85+ 8.36

ENTER enter (on the HP, puts the number on the stack) · CHS change sign

How it is asked

  1. 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).

  2. 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).

  3. 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.

  4. 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.

  1. 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:

  2. 2A fiduciary call consists of:

  3. 3Put–call parity in its basic form requires the options to be:

  4. 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.
Put–call parity Memorize
S0+p0=c0+X(1+r)−TS_0 + p_0 = c_0 + X(1 + r)^{-T}
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.

On your calculator
  1. 1.03y^x0.5+|-=×22= 21.68
  2. +|-+25+0.9= 4.22

y^x power · +|- change sign

  1. 1.03ENTER0.5CHSy^x22× 21.68
  2. CHS25+0.9+ 4.22

ENTER enter (on the HP, puts the number on the stack) · CHS change sign · y^x power

Put from parity Memorize
p0=c0+X(1+r)−T−S0p_0 = c_0 + X(1 + r)^{-T} - S_0
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.

On your calculator
  1. 85÷1.03= 82.52
  2. +7.4−82= 7.92
  1. 85ENTER1.03÷ 82.52
  2. 7.4+82− 7.92

ENTER enter (on the HP, puts the number on the stack)

Call from parity Memorize
c0=S0+p0−X(1+r)−Tc_0 = S_0 + p_0 - X(1 + r)^{-T}
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.

On your calculator
  1. 62÷1.06= 58.49
  2. +|-+64+2.85= 8.36

+|- change sign

  1. 62ENTER1.06÷ 58.49
  2. 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

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.

  1. Put–call parity: fiduciary call = protective put
  2. Building synthetic positions with put–call parity
  3. Put–call forward parity
  4. Equity and debt as options on the firm

Ask Sensei Listen instead

Questions on Put–call parity: fiduciary call = protective put

Learn with Sensei, out loud The voice tutor, in early access

Sensei teaches the lesson aloud and stops when you interrupt: "wait, why is the geometric mean lower?" It answers with the lesson's own example, then quizzes you by voice. Every account can try Sensei on one module, with one voice question.

USD 149 a month founding price (regular USD 199), kept for as long as you stay subscribed. Everything in Plus included.

In active development and improving every day. Send feedback · Plans and pricing

Analyst Dojo Plus

Your free review list holds 10 items.

Plus keeps everything you save, for USD 19 a month. To make room on the free plan, remove something from your review list.

See Plus

Lessons, checkpoints and the lesson questions in practice stay free. Compare plans