Alphanume

Insights

Put-Call Parity, Explained

Alphanume Team · June 8, 2026

The no-arbitrage link between calls, puts, and the forward — and what happens when it breaks.

Put-call parity is the single most important identity in options theory. It states that for European options on the same underlying, the same strike, and the same expiration, the difference between the call price and the put price must equal the difference between the current spot price and the present value of the strike. Violate it and you hand a counterparty a riskless profit. Every options desk checks parity before building a model, and the options pricing calculator on this site respects it by construction. Understanding the identity is understanding why options prices can never be arbitrary.

The put-call parity relation

For a European option on a non-dividend-paying stock, put-call parity is:

C − P = S − K·e−rT

where C is the call price, P the put price, S the current spot price, K the strike, r the continuously compounded risk-free rate, and T the time to expiration in years. The right-hand side, S − K·e−rT, is the value of the forward: own the stock today and agree to deliver it at strike K on date T. Put-call parity says the long call / short put combination must price exactly like that forward — no more, no less.

Derivation: two portfolios, one payoff

The cleanest proof constructs two portfolios with identical payoffs at expiration and invokes the no-arbitrage principle that two identical cash flows must have the same price today.

Portfolio A: buy one European call, invest K·e−rT in a risk-free zero-coupon bond that matures to K at expiration.

Portfolio B: buy one European put, buy one share of the underlying at spot price S.

At expiration, consider two cases:

  • ST > K (call expires in the money): Portfolio A is worth (ST − K) + K = ST. Portfolio B is worth 0 + ST = ST.
  • ST ≤ K (put expires in the money or at the money): Portfolio A is worth 0 + K = K. Portfolio B is worth (K − ST) + ST = K.

Payoffs match in every scenario. No-arbitrage therefore requires equal values today: C + K·e−rT = P + S, which rearranges to C − P = S − K·e−rT.

What breaks parity — and how to fix the formula

The clean identity above holds under idealized conditions. Three real-world factors drive wedges into it:

  • Dividends. A dividend paid before expiration reduces the stock price on the ex-dividend date, benefiting the put and hurting the call. The fix is to subtract the present value of expected dividends from the spot: C − P = (S − PV(div)) − K·e−rT. For a continuous dividend yield q the formula becomes C − P = S·e−qT − K·e−rT.
  • American early exercise. American options can be exercised before expiration. That optionality destroys the replication argument because the portfolio can be unwound at any moment. For American options, parity becomes an inequality: C − P lies within a bounded range rather than at a single value. Pricing a call or pricing a put on an American option requires a binomial tree or numerical solver, not a closed form.
  • Borrow and financing frictions. Hard-to-borrow stock means the short-stock leg in Portfolio B carries a borrow cost. Wide bid-ask spreads mean the arbitrage corridor is wider before anyone can profitably trade through it. In practice, parity holds to within transaction costs, not to the penny.

Synthetic positions and how desks use parity

Rearranging C − P = S − K·e−rT in different ways reveals how to replicate any leg from the others:

  • Synthetic long stock: C − P + K·e−rT = S. Buy the call, sell the put, lend the present value of the strike — and you own a synthetic share.
  • Synthetic long call: C = P + S − K·e−rT. If the call trades cheap relative to the put, buy the put and the stock and borrow K·e−rT.
  • Conversion: Long stock + long put + short call at the same strike locks in a riskless position. Its P&L should equal the risk-free carry on K; if not, a conversion (or its mirror, a reversal) is profitable.

Market makers use parity to imply one option's price from the other when one leg is illiquid. If only the call is actively quoted, the put's fair value is P = C − S + K·e−rT. The desk trades the cheaper leg and hedges with the synthetic of the other.

Worked arbitrage example

Suppose S = 100, K = 100, T = 0.5 years, r = 5%. The present value of the strike is 100·e−0.05 × 0.5 = 100·e−0.025 ≈ 97.53. Parity demands C − P = 100 − 97.53 = 2.47.

Now observe market prices: C = 6.00, P = 4.00 → C − P = 2.00. Parity says 2.47; the market shows 2.00. The call is cheap relative to the put by 0.47. To lock in the arbitrage:

  1. Buy the call for 6.00.
  2. Sell the put for 4.00 (net debit so far: 2.00).
  3. Short the stock at 100 — receive 100.00.
  4. Lend 97.53 at 5% for six months — this grows back to 100.00 at expiration.

At expiration, regardless of where the stock finishes, the long call / short put combination delivers exactly the stock at 100, which you return to cover the short. The bond matures to 100. Cash flows net to +100 (bond) − 100 (stock delivery) = 0. But you pocketed 100 (short stock proceeds) − 97.53 (amount lent) − 2.00 (net option premium) = +0.47 today, risk-free. That 0.47 is the parity violation, arbitraged away.

The bigger picture

Put-call parity is not a model — it is a no-arbitrage constraint that any model must satisfy. Black-Scholes satisfies it automatically; so does any other self-consistent pricing framework. When you see a parity violation in live data it is almost always explained by dividends, early-exercise optionality, or borrow costs that the simple formula ignores. Accounting for each one brings the observed spread back inside the no-arbitrage corridor. That process of reconciling theory with market reality — stripping out dividends, estimating borrow, adjusting for American features — is the everyday work of the options desk, and it all begins with this identity.