Analyst Dojo
Lesson 2 of 3 6–9% of the exam

Option price bounds and replication vs forwards

No arbitrage fixes a forward's price but only bounds an option's: a call lies between max(0, S − PV(X)) and S, a put between max(0, PV(X) − S) and X. A forward is replicated once and held; an option's replicating position changes with the likelihood of exercise.

8 min cram, 30 min full read. Based on the 2027 CFA® Program Level I curriculum, Derivatives, Learning Module 8. 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: Replication and the no-arbitrage forward price, Exercise value, moneyness and time value

On the exam

  • Contrast the use of arbitrage and replication concepts in pricing forward commitments and contingent claims

Contrast the use of arbitrage and replication in pricing forward commitments and contingent claims. Expect: compute a lower bound with the present value of the exercise price, state the upper bounds, and tell static replication (forward) from dynamic replication (option).

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.

What limits does no arbitrage put on an option’s price?

For a forward, no arbitrage fixes one price. For an option it only builds a fence: a lower bound and an upper bound . These no-arbitrage bounds follow from the option’s payoff. Nobody pays more than the share for the right to buy it. Nobody pays more than X for the right to sell at X. And an option cannot trade below what it is worth if exercised.

Bounds on a European call Memorize
max⁡(0, St−X(1+r)−(T−t))≤ct≤St\max\left(0,\ S_t - X(1 + r)^{-(T-t)}\right) \le c_t \le S_t
Bounds on a European put Memorize
max⁡(0, X(1+r)−(T−t)−St)≤pt≤X\max\left(0,\ X(1 + r)^{-(T-t)} - S_t\right) \le p_t \le X
No-arbitrage bounds on European options
Option pricefenced in by arbitrage, not pinned
  • Call Memorize lower ≤ price ≤ upper
    • Lower bound Memorize max(0, S − PV(X))
    • Upper bound Memorize S (never pay more than the share)
  • Put Memorize lower ≤ price ≤ upper
    • Lower bound Memorize max(0, PV(X) − S)
    • Upper bound Memorize X (the most a put can pay)

The lower bounds are the exercise values from the previous lesson. The upper bound of a call is the underlying price. The upper bound of a put is the exercise price, which is the most a put could ever pay.

Rearrange itCall lower bound: solve for any input
The question asks for
A European call has an exercise price of 200.00 and 1 years to expiration. The risk-free rate is 5.00%, the underlying is at 230.00 and pays no income. The lower bound of the call's price is closest to:

max(0, 230.00 − 200.00 × (1 + 0.05)^−1) = max(0, 230.00 − 190.48) = 39.52

Lower bound of the call39.52

On your calculator
  1. 1.05y^x1+|-=×200=PV(X) = 190.4762
  2. +|-+230=39.5238

y^x power · +|- change sign

  1. 1.05ENTER1CHSy^x200×PV(X) = 190.4762
  2. CHS230+39.5238

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

Rearrange itPut lower bound: solve for any input
The question asks for
A European put has an exercise price of 200.00 and 1 years to expiration. The risk-free rate is 5.00%, the underlying is at 170.00 and pays no income. The lower bound of the put's price is closest to:

max(0, 200.00 × (1 + 0.05)^−1 − 170.00) = max(0, 190.48 − 170.00) = 20.48

Lower bound of the put20.48

On your calculator
  1. 1.05y^x1+|-=×200=PV(X) = 190.4762
  2. −170=20.4762

y^x power · +|- change sign

  1. 1.05ENTER1CHSy^x200×PV(X) = 190.4762
  2. 170−20.4762

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

InteractiveNo-arbitrage bounds on an option price

Try this 0 of 3

  • With the call, raise the quote until the arbitrage disappears
  • Set volatility to zero and watch the model curve
  • Switch to the put and move S_t below 50

The shaded band is every price no arbitrage allows. The dot is a quoted price at today's S_t: push it outside the band and the free-money trade appears.

European call: the no-arbitrage bandBand 39.52 to 230.00 · Quote 35.00
S_t = 230

The call must lie between the lower bound max(0, S_t − PV(X)), kinked at PV(X) = 190.48, and the upper bound c = S_t. At S_t = 230 the band runs from 39.52 to 230.00; the model price is 46.31 and the quote is 35.00, below the band.

Close up around S_t = 230

Zoomed to S_t from 215 to 245: lower bound 39.52, model 46.31, quote 35.00 at S_t = 230.

Arbitrage: the call is GBP 4.52 below its lower bound

Today: buy the call for GBP 35.00, short the share for GBP 230.00, lend PV(X) = GBP 190.48. Net +GBP 4.52 now.

At expiry the loan pays back 200. If S_T > 200, exercise the call, pay 200 for the share and return it: nothing owed.

If S_T ≤ 200, let the call lapse and buy the share back for S_T, keeping 200 − S_T ≥ 0. You never lose, and you keep the GBP 4.52.

The model curve is for illustration: at zero volatility it sits on the lower bound, and it climbs toward S_t as volatility rises. It never leaves the band.

Option
GBP 35.00
PV(X)GBP 190.48
Lower boundGBP 39.52
Upper boundGBP 230.00
Model price (25%)GBP 46.31
Quoted priceGBP 35.00
Show working

PV(X) = 200 ÷ 1.05^1 = 190.48

Lower bound = max(0, S_t − PV(X)) = max(0, 230 − 190.48) = 39.52

Upper bound = S_t = 230.00

Quote 35.00 is 4.52 below the lower bound: buy the cheap call, short the share, lend PV(X).

Lower bound on your calculator
  1. 1.05y^x1=1/x×200=190.48, PV(X)
  2. +|-+230=39.52, the lower bound

y^x power · 1/x reciprocal · +|- change sign

  1. 230ENTER200ENTER1.05ENTER1y^x÷−39.52, the lower bound

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

Display: GBP 39.52 lower bound

No arbitrage fences the option price in; a model is needed to pin it down.

What happens if an option trades below its lower bound?

An arbitrage opens. Take the call from the example, and suppose it trades at GBP 35, below its lower bound of 39.52.

  1. Buy the call (pay 35).
  2. Short the share (receive 230).
  3. Lend PV(X) = 190.48.
  4. Cash today: +230 − 35 − 190.48 = +GBP 4.52.
  5. At expiration the loan grows to 200. If S_T > 200, exercise the call, pay 200 for the share and close the short: net zero. If S_T < 200, buy the share back for less than 200 and keep the difference.

The position never loses and starts with cash in hand. Buyers would rush in until the price rose to at least 39.52.

If a call trades above the share price, sell the call and buy the share. You collect the difference and the share covers the call at any expiry outcome.

How does replicating an option differ from replicating a forward?

Both use the underlying and borrowing or lending, so the law of one price holds either way. The difference is in how the position is held.

Forward commitmentOption
Replicate a long forward / long callborrow PV(F) and buy the assetbuy a fraction of the asset, borrow a fraction of PV(X)
Replicate a short forward / long putshort the asset and lendshort a fraction of the asset, lend a fraction of PV(X)
Does the mix change over time?no (static replication )yes (dynamic replication )
What no arbitrage givesan exact pricebounds (exact only with a model)
Replication: forward commitment versus option
Replicating with the asset and cashlaw of one price holds either way
  • Forward commitment Use it symmetric payoff
    • Long forward borrow PV(F), buy the asset
    • Short forward short the asset, lend
    • Static Use it set at inception, never adjusted; exact price
  • Option Use it asymmetric payoff
    • Long call buy a fraction of the asset, borrow
    • Long put short a fraction of the asset, lend
    • Dynamic Use it adjusted as the chance of exercise changes; bounds without a model

A forward settles for certain, so the replicating trade is the full position. An option settles only if it ends in the money. If exercise were certain you would borrow the full PV(X), as for the forward. Because it is uncertain you borrow a proportion based on the likelihood of exercise , which is closely tied to moneyness. That proportion, the hedge ratio , shifts as the underlying moves and time passes, so the position must be adjusted.

At expiration, a replicated call that finishes in the money sells the asset at S_T and repays X. If it finishes out of the money no settlement is needed. A replicated put that is exercised buys the asset back at S_T out of the loan repayment.

Exam tip Selling an option reverses the replication. A sold call is replicated by shorting the asset and lending, the same direction of trades as a bought put, though the amounts differ and the payoffs are not the same.

Go deeper Why the call holds more of the asset as it moves into the money

As the underlying rises, exercise becomes more likely, so the replicating portfolio holds more of the asset and borrows more. A deep-in-the-money call is replicated by nearly the whole asset plus almost the full loan PV(X), which is why it behaves like a forward. The binomial model lesson computes the exact proportions.

Go deeper American options

An American option can be exercised early, which can add value and changes its bounds. The bounds here are for European options, as the curriculum frames the lesson, and early exercise is not examined at this level.

Memorize this

MemorizeEuropean option bounds

Lower boundUpper bound
Callmax⁡(0, St−PV(X))\max(0,\ S_t - PV(X))StS_t
Putmax⁡(0, PV(X)−St)\max(0,\ PV(X) - S_t)XX

Memory hook The lower bound is the exercise value. The upper bound is the most the right could ever deliver: the share for a call, the strike for a put.

Know it cold An option below its lower bound is an arbitrage: buy it and take the opposite side of the exercise. Use PV(X)PV(X), not XX, in the lower bound.

MemorizeForward versus option replication

Forward commitmentOption
Long forward / long callborrow PV(F), buy the assetbuy a fraction of the asset, borrow
Short forward / long putshort the asset, lendshort a fraction of the asset, lend
Mix changes over time?no (static)yes (dynamic)
No arbitrage givesan exact pricebounds, until a model is used

Memory hook A forward always ends settled, so the full position is certain. An option settles only if in the money, so you hold a fraction that tracks the chance of exercise.

Know it cold Selling a call is replicated by the opposite: short the asset and lend.

No-arbitrage bounds on European options
Option pricefenced in by arbitrage, not pinned
  • Call Memorize lower ≤ price ≤ upper
    • Lower bound Memorize max(0, S − PV(X))
    • Upper bound Memorize S (never pay more than the share)
  • Put Memorize lower ≤ price ≤ upper
    • Lower bound Memorize max(0, PV(X) − S)
    • Upper bound Memorize X (the most a put can pay)
Replication: forward commitment versus option
Replicating with the asset and cashlaw of one price holds either way
  • Forward commitment Use it symmetric payoff
    • Long forward borrow PV(F), buy the asset
    • Short forward short the asset, lend
    • Static Use it set at inception, never adjusted; exact price
  • Option Use it asymmetric payoff
    • Long call buy a fraction of the asset, borrow
    • Long put short a fraction of the asset, lend
    • Dynamic Use it adjusted as the chance of exercise changes; bounds without a model
Bounds on a European call Memorize
max⁡(0, St−X(1+r)−(T−t))≤ct≤St\max\left(0,\ S_t - X(1 + r)^{-(T-t)}\right) \le c_t \le S_t
Quick example

X = 60, S_t = 64, r = 2%, one year left. PV(X) = 60 ÷ 1.02 = 58.82. Lower bound = 64 − 58.82 = 5.18; upper bound 64.

On your calculator
  1. 60÷1.02= 58.82
  2. +|-+64= 5.18

+|- change sign

  1. 60ENTER1.02÷ 58.82
  2. CHS64+ 5.18

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

Bounds on a European put Memorize
max⁡(0, X(1+r)−(T−t)−St)≤pt≤X\max\left(0,\ X(1 + r)^{-(T-t)} - S_t\right) \le p_t \le X
Quick example

X = 60, S_t = 55, r = 2%, one year left. Lower bound = 58.82 − 55 = 3.82; upper bound 60.

On your calculator
  1. 60÷1.02=−55= 3.82
  1. 60ENTER1.02÷55− 3.82

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

How it is asked

  1. Compute a lower bound

    Call, X = 150, one year, r = 4%, S = 170. Lower bound?

    170 − 150 ÷ 1.04 = 25.77. Trap: 20.00 (X not discounted).

  2. Name the upper bound

    The upper bound of a European put.

    X, the exercise price. Trap: S.

  3. Static or dynamic

    How does replicating an option differ from replicating a forward?

    The option position must be adjusted as the likelihood of exercise changes; the forward position is not.

  4. Price below the lower bound

    Call quoted below max(0, S − PV(X)). What do you do?

    Buy the call, short the asset, lend PV(X): riskless profit today.

Exam traps

  • Using X instead of PV(X) in the lower bound.
  • Saying the upper bound of a put is S. It is X.
  • Saying an option can be replicated with a fixed position like a forward. The position must be adjusted.
  • Forgetting the zero in max(0, ·): when S is below PV(X) a call's lower bound is zero, not negative.

Checkpoint

5 exam-style questions. About 90 seconds each.

  1. 1A European call has an exercise price of CHF 400 with six months left. The risk-free rate is 6% and the underlying, which pays no income, trades at CHF 430. The call's lower bound is closest to:

  2. 2The upper bound of a European put's value is:

  3. 3Compared with replicating a forward, replicating an option most likely requires:

  4. 4A European put has an exercise price of 300 and two years to expiry. The risk-free rate is 4% and the underlying, which pays no income, is at 250. The put's lower bound is closest to:

  5. 5A European call has an exercise price of 100 and six months to expiry. The risk-free rate is 4%, the underlying pays no income and trades at 108, and the call trades at 6.50. Buying the call, shorting the underlying and lending the present value of the exercise price produces an immediate cash flow closest to:

Key takeaways

  • Call: max(0, S − PV(X)) ≤ c ≤ S. Put: max(0, PV(X) − S) ≤ p ≤ X.
  • Forwards: static replication and an exact no-arbitrage price. Options: dynamic replication and, without a model, only bounds.
  • The replicating position for an option follows the likelihood of exercise, which is tied to moneyness.
  • Selling a call is replicated by shorting the underlying and lending, the same direction of trades as buying a put (the amounts differ).
Bounds on a European call Memorize
max⁡(0, St−X(1+r)−(T−t))≤ct≤St\max\left(0,\ S_t - X(1 + r)^{-(T-t)}\right) \le c_t \le S_t
Quick example

X = 60, S_t = 64, r = 2%, one year left. PV(X) = 60 ÷ 1.02 = 58.82. Lower bound = 64 − 58.82 = 5.18; upper bound 64.

On your calculator
  1. 60÷1.02= 58.82
  2. +|-+64= 5.18

+|- change sign

  1. 60ENTER1.02÷ 58.82
  2. CHS64+ 5.18

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

Bounds on a European put Memorize
max⁡(0, X(1+r)−(T−t)−St)≤pt≤X\max\left(0,\ X(1 + r)^{-(T-t)} - S_t\right) \le p_t \le X
Quick example

X = 60, S_t = 55, r = 2%, one year left. Lower bound = 58.82 − 55 = 3.82; upper bound 60.

On your calculator
  1. 60÷1.02=−55= 3.82
  1. 60ENTER1.02÷55− 3.82

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

All Derivatives formulas, every lesson

Practice exam-style questions on Pricing and Valuing Options

Questions about this lesson?

Where this comes back

Questions candidates ask

What are the lower and upper bounds of a call option?

A European call is worth at least max(0, S − PV(X)) and at most S, the underlying price. Below the lower bound an arbitrage exists, and nobody pays more than the share itself for the right to buy it.

What is the maximum value of a put option?

The exercise price, X. A put pays X − S_T at most, which is X if the underlying falls to zero. Its lower bound is max(0, PV(X) − S).

How do you replicate a call option?

Buy a fraction of the underlying and borrow at the risk-free rate. The fraction depends on how likely exercise is, so it changes as the underlying price and time change. A forward needs no such adjustment.

Spotted an error? Tell us and we will fix it.

  1. Exercise value, moneyness and time value
  2. Option price bounds and replication vs forwards
  3. Six factors that move an option's value

Ask Sensei Listen instead

Questions on Option price bounds and replication vs forwards

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