Options Pricing · Lesson 2 of 11

Put-Call Parity

The iron law of options pricing · 15 min

Before this lesson

Builds directly on Lesson 1's call and put definitions. Comfortable rearranging a simple algebraic equation.

The Most Important Relationship in Options

Put-call parity is a no-arbitrage rule linking the price of a European call, a European put, the underlying stock, and a risk-free bond. What makes it powerful is what it doesn't require: no assumption about which way the stock is headed, how volatile it is, or anything about the future at all. It falls straight out of one idea — that free money doesn't just sit around waiting to be picked up. Spend the time to really understand this relationship and you'll walk away knowing more about how options pricing actually works than you would from memorizing a dozen formulas.

The relationship itself:

C − P = S − K · e−rT

C is the call price, P the put price, S the current stock price, K the strike both options share, r the continuously compounded risk-free rate, and T the time to expiration in years. That K · e−rT term is just the present value of K — how much you'd need to invest today at the risk-free rate to have exactly K in hand at expiration.

Try the sandbox below

Play with S, K, r, and T and watch the right-hand side, S − K·e−rT, move. That's exactly what C − P has to equal, no matter what the market's current sentiment is — it's an accounting identity, not a prediction.

The Proof: Two Portfolios, One Payoff

Here's the cleanest way to see why the formula has to be true. Build two portfolios today, hold both to expiration at time T, and compare what each one pays out.

Portfolio A: buy one European call at strike K, and invest K · e−rT in a risk-free bond.

Portfolio B: buy one European put at strike K, and buy one share of the stock.

Let ST be the stock price at time T, and check both portfolios in both possible worlds.

If ST > K (the call finishes in-the-money):

  • Portfolio A: the call pays ST − K, the bond matures to K. Total: ST.
  • Portfolio B: the put expires worthless, the stock is worth ST. Total: ST.

If ST < K (the put finishes in-the-money):

  • Portfolio A: the call expires worthless, the bond matures to K. Total: K.
  • Portfolio B: the put pays K − ST, the stock is worth ST. Total: K − ST + ST = K.

Either way, Portfolio A and Portfolio B pay out exactly the same amount: max(ST, K). Two portfolios with identical, guaranteed future cash flows have to cost the same today — if one were cheaper, you could buy it, short the pricier one, and pocket a riskless profit. Economists call this the law of one price, and it's about as close to an iron law as finance gets.

So C + K · e−rT = P + S, and rearranging that gives you back C − P = S − K · e−rT.

What Happens When Parity Breaks?

It's not entirely unbreakable, though — just very hard to break for long. Researchers later documented real put-call parity violations in equity options during the 2008 crisis. As Lehman Brothers was collapsing, puts on financial stocks traded dramatically rich relative to calls, and the usual arbitrage that should have closed the gap couldn't run: regulators had temporarily banned short selling in financial stocks, so the trade that would normally correct the mispricing simply wasn't available. It's a useful reminder that no-arbitrage relationships only hold as long as every leg of the trade stays executable.

Outside a crisis, though, any parity violation gets found and closed within milliseconds by algorithmic traders. Few relationships in finance are enforced as tightly as this one.

Synthetic Positions

Rearrange put-call parity a few different ways and you get four equivalences every options trader eventually memorizes:

  • Synthetic long stock: C − P + K · e−rT = S. Buy a call, sell a put, invest PV(K), and you've recreated owning the stock outright.
  • Synthetic call: C = P + S − K · e−rT. If calls look overpriced, you can build one yourself out of a put plus the stock.
  • Synthetic put: P = C − S + K · e−rT. Know the call price and you can back out exactly what the put should cost.
  • Box spread: buy a call spread and sell a put spread at the same two strikes. The payoff at expiration is always the fixed gap K2 − K1, no matter where the stock lands — so the box has to trade at that gap's present value. Market makers use box spreads to effectively borrow and lend at whatever rate the options market implies.

Dividends and Early Exercise

Everything above assumes the stock pays no dividends. Once it does, with present value PV(D), the relationship needs one more term:

C − P = S − PV(D) − K · e−rT

This isn't just a footnote — it shows up in real trading. In the days before a large dividend, holders of deep in-the-money American calls sometimes exercise early specifically to capture that dividend, which is exactly the situation where American and European option prices start to diverge. The dividend-adjusted version of parity is what lets you predict when that's likely to happen.

A Numerical Example

AAPL trades at $190. A 90-day call at K = $190 trades at $8.50. The risk-free rate is 5%, and there are no dividends. What should the put be worth?

Start from P = C − S + K · e−rT:

K · e−rT = 190 · e−0.05 × 0.25 = 190 · 0.9876 = $187.64

P = $8.50 − $190 + $187.64 = $6.14

Now say the market's actually quoting the put at $7.50 — that's a real violation, and here's how you'd capture it: short the put at $7.50, buy the call at $8.50, short the stock at $190, and invest $187.64 at the risk-free rate. Net cash in your pocket today: $7.50 − $8.50 + $190 − $187.64 = $1.36. Every leg cancels out at expiration no matter where AAPL ends up — the $1.36 is yours, risk-free, from a pricing inconsistency alone.

Coding ExercisePython · runs in browser
+100 XP
Implement `put_from_call(call_price, S, K, T, r)` using put-call parity.
Write your solution, then run