Home / Glossary / Put–Call Parity
FinancePut–Call Parity
By Sitraka Forler · Lecturer, Durham Business SchoolUpdated 13 September 2026 About this site
A no-arbitrage link between calls, puts, the stock, and a bond.
Holding a call and writing a put (same strike/expiry) replicates a forward on the stock. Any violation is a riskless arbitrage, which is why the relationship holds tightly in liquid markets. It lets you derive a put price from a call and vice versa.
Two portfolios, one payoff: the identity behind put-call parity
Portfolio A holds a call plus cash worth K at expiry; portfolio B holds a put plus the stock. Both finish worth the greater of the stock price and K.
both pay max(ST, €100) ⇒ C − P = S − €100·e^(−rT)
The intuition
Put-call parity says that a European call and put on the same stock, with the same strike and expiry, are not two independent instruments: their prices are locked together by one equation, C - P = S - K·e^(-rT). The reason is the identity the chart above draws. A call plus a cash deposit that grows to K at expiry, and a put plus the stock itself, both finish worth exactly max(S_T, K), whichever way the stock moves. Two portfolios with identical payoffs in every state of the world must cost the same today, otherwise there is free money.
Watch the two portfolios settle at expiry. If the stock finishes above the strike, the call in portfolio A is exercised: the cash K pays for the share, leaving you with stock worth S_T. In portfolio B the put dies worthless and you already hold the stock, again worth S_T. If the stock finishes below the strike, A keeps the cash K, while B uses the put to sell the stock for exactly K. Every route ends at the greater of S_T and K, which is why the gold dashed line traces the blue one perfectly however you move the strike slider.
The lines are welded together by arbitrage, not by a model. Parity needs no volatility estimate, no probability distribution, no view about drift: only the ability to trade both options, the stock and a riskless bond. Rearranged, C - P = S - K·e^(-rT) says a call minus a put is a forward on the stock, which is why desks use it to build synthetic positions and to check that quoted calls and puts imply the same volatility. When the equation seems to fail on screen, the culprit is almost always a dividend, borrowing costs or a stale quote rather than free money.
Formula / theory
C − P = S − K·e^(−rT)
In Python
import math # derive the put from an observed call (same K and T) put = call - S + K * math.exp(-r * T)
Pricing the put from the call, then cashing in a mispricing
- Setup: S = 100, K = 100, r = 5% continuously compounded, T = 1 year, and the call trades at C = 10.45.
- Present value of the strike: PV(K) = 100 × e^(-0.05×1) = 100 × 0.9512 = 95.12.
- Parity rearranged for the put: P = C - S + PV(K) = 10.45 - 100 + 95.12 = 5.57.
- Now suppose the market quotes the put at 7.00 instead: it is 7.00 - 5.57 = 1.43 too dear.
- Trade the gap: sell the put for +7.00, buy the call for -10.45, short the stock for +100, and lend 95.12 at 5%. Net cash today = 7.00 - 10.45 + 100 - 95.12 = +1.43.
- At expiry the loan repays 95.12 × e^(0.05) = 100, the strike exactly. If S_T is at or above 100 you exercise the call and pay 100 for the share; if S_T is below 100 the put you sold is exercised against you and you pay 100 for the share. Either way the 100 from the loan buys the share that closes your short, so every position nets to zero.
- The 1.43 collected at time 0 is therefore riskless profit per share, and trading it away is what pushes quoted prices back into line.
Parity turns one option price into the other with no model at all, and any gap between them is an arbitrage that traders will close.
Common pitfalls
- Applying the equality to American options: early exercise breaks it, leaving only bounds such as S - K ≤ C - P ≤ S - K·e^(-rT) for a non-dividend-paying stock.
- Forgetting dividends: for a dividend-paying stock the relation is C - P = S - PV(dividends) - K·e^(-rT), and ignoring the dividend term makes puts look systematically mispriced.
- Discounting the strike wrongly: using K instead of K·e^(-rT), or mixing simple and continuous compounding, produces a phantom arbitrage that is really an arithmetic error.
- Treating every on-screen violation as free money: bid-ask spreads, stock-borrow fees for the short leg and stale quotes usually eat the whole gap.
Frequently asked questions
What is put-call parity in simple terms?
Put-call parity is the rule that a European call and put with the same strike and expiry must satisfy C - P = S - K·e^(-rT). It holds because a call plus cash equal to the strike and a put plus the stock deliver exactly the same payoff at expiry, so they must cost the same today. If they did not, buying the cheap side and selling the dear side would be riskless profit.
Does put-call parity hold for American options?
No, not as an equality. American options can be exercised early, so the strict identity is replaced by bounds: for a non-dividend-paying stock, S - K ≤ C - P ≤ S - K·e^(-rT). The equality breaks mainly because the right to exercise the put early gives it extra value that the European replication argument cannot capture.
How do traders use put-call parity in practice?
Traders use it to build synthetics and to keep prices consistent. A call minus a put at the same strike is a synthetic forward, so a desk can replicate a stock position with options, or hedge one option using the other plus the stock. Parity also forces European calls and puts at the same strike to show the same implied volatility: a gap usually signals dividends, funding costs or stale data rather than a trade.
Why does put-call parity not depend on volatility?
Because it is a pure no-arbitrage identity, not a pricing model. The two portfolios pay the same amount in every possible state at expiry, so their prices must match today whatever the probabilities of those states are. Volatility, drift and risk preferences all cancel out, which is what makes parity such a strong sanity check: it must hold even when every model assumption fails.
Test yourself
Further reading
Where to go deeper. Free means a full, legal copy is online.
Chapter 11 derives put-call parity as a pure no-arbitrage identity, exactly as here.
Parity is the constraint the 1973 option-pricing model must, and does, satisfy.