Quant Sandbox
DerivativesPortfolio & RiskFixed IncomeCorporate FinanceStochastic ModelsGuide
Guide
Derivatives pricing
01Forwards, calls and puts02Combining positions03Arbitrage and the forward price04Put–call parity05The one-step binomial model06Risk-neutral probabilities07Multi-step trees and backward induction08American options and early exercise09Delta and hedging10Geometric Brownian motion11The Black–Scholes formula12The Greeks: gamma, vega, theta and rho13Implied volatility and the volatility smile14Stochastic volatility and the Heston model15Static replication: Breeden–Litzenberger and Carr–Madan16Exotic options: barriers, Asians and digitals
Portfolio & risk
01Returns and volatility02Diversification and correlation03The efficient frontier and the capital market line04Risk aversion and the optimal complete portfolio05CAPM, beta and the security market line06Performance measures: Sharpe, Treynor, Jensen and information ratio07Factor models and systematic risk08Value at Risk and expected shortfall
Fixed income
01Bond prices and yields02Duration and convexity03Immunization and duration matching04Spot rates, forward rates and the yield curve05Bond futures and the cheapest-to-deliver06Interest rate swaps07Callable bonds and negative convexity08Credit risk: default probabilities and credit spreads
Corporate finance
01Interest, compounding and discounting02Annuities, perpetuities and loan amortization03Net present value and internal rate of return04The weighted average cost of capital05Capital structure and the Modigliani–Miller theorems06Discounted cash flow valuation07Relative valuation with multiples08Real options: the value of flexibility
Stochastic models
01Random walks and Brownian motion02Probability spaces, σ-algebras and random variables03Filtrations, adapted processes and stopping times04Conditional expectation and martingales05Properties of Brownian motion06The reflection principle and first passage times07The Brownian bridge08The Itô integral09Itô's lemma10Kolmogorov equations and the Feynman–Kac formula11Change of measure and Girsanov's theorem12Monte Carlo option pricing13Simulating SDEs: the Euler–Maruyama scheme14Mean reversion: Ornstein–Uhlenbeck and Vasicek15Jumps and the Merton jump-diffusion model
Knowledge graph

© 2026 Quant Sandbox · A study aid for quantitative finance

Privacy & dataNo cookies

This site does not use cookies and asks for no personal data. It keeps a few small settings in your browser's local storage — your chosen theme and language, the sidebar layout, and your progress and answers in the Guides — so it remembers them on your next visit. This data never leaves your device; clearing your browser storage removes it. Inputs you change can also be captured in the page URL, so you can share or bookmark a specific setup. The site uses Vercel Web Analytics, a privacy-friendly, cookieless service that records only anonymous, aggregated usage (such as page views) without identifying you or tracking you across other sites.

Guide/Derivatives pricing

Put–call parity

Lesson 4 of 16 · 1 min read

This lesson derives an exact relation between the prices of a European call and a European put. It combines the synthetic forward from "Combining positions" with the law of one price from "Arbitrage and the forward price". Like the forward price, the result needs no model for how the stock moves.

Setting

Take a European call and a European put on the same non-dividend-paying stock, with the same strike KKK and the same maturity TTT. Their prices today are C0C_0C0​ and P0P_0P0​. The stock trades at S0S_0S0​, and the continuously compounded risk-free rate is rrr, so a zero-coupon bond paying KKK at TTT costs Ke−rTKe^{-rT}Ke−rT today. The market assumptions are those of "Arbitrage and the forward price": no transaction costs, borrowing and lending at rrr, short selling allowed.

Two portfolios with the same payoff

From "Combining positions", a long call and a short put with the same strike pay

(ST−K)+−(K−ST)+=ST−K(S_T - K)^+ - (K - S_T)^+ = S_T - K(ST​−K)+−(K−ST​)+=ST​−K

for every value of STS_TST​. Now build two portfolios:

  • Portfolio A: buy one call and sell one put. Cost today C0−P0C_0 - P_0C0​−P0​. Payoff at TTT: ST−KS_T - KST​−K.
  • Portfolio B: buy one share and borrow Ke−rTKe^{-rT}Ke−rT, so that KKK is owed at TTT. Cost today S0−Ke−rTS_0 - Ke^{-rT}S0​−Ke−rT. Payoff at TTT: ST−KS_T - KST​−K.

Portfolio B is the stock-and-loan replication of a forward with delivery price KKK, as in the cash-and-carry argument. The two portfolios pay exactly the same amount in every state at TTT, so the law of one price says they cost the same today:

C0−P0=S0−K e−rT.C_0 - P_0 = S_0 - K\,e^{-rT}.C0​−P0​=S0​−Ke−rT.

This is put–call parity. Rearranged as C0+Ke−rT=P0+S0C_0 + Ke^{-rT} = P_0 + S_0C0​+Ke−rT=P0​+S0​, it reads: a call plus cash equal to the discounted strike is worth the same as a put plus the stock. Both sides pay max⁡(ST,K)\max(S_T, K)max(ST​,K) at maturity.

Put–call parity: C0−P0=S0−Ke−rTC_0 - P_0 = S_0 - Ke^{-rT}C0​−P0​=S0​−Ke−rT for European options on a non-dividend-paying stock with the same strike and maturity. It follows from no arbitrage alone.

A numerical check

Take S0=100S_0 = 100S0​=100, K=100K = 100K=100, r=5%r = 5\%r=5%, T=1T = 1T=1. The right-hand side is

S0−K e−rT=100−100 e−0.05≈100−95.12=4.88.S_0 - K\,e^{-rT} = 100 - 100\,e^{-0.05} \approx 100 - 95.12 = 4.88.S0​−Ke−rT=100−100e−0.05≈100−95.12=4.88.

The Black–Scholes formula, derived in the lesson "The Black–Scholes formula", prices these options with volatility σ=20%\sigma = 20\%σ=20% at C0≈10.45C_0 \approx 10.45C0​≈10.45 and P0≈5.57P_0 \approx 5.57P0​≈5.57. The difference is 4.884.884.88, as parity requires. With a different volatility both prices change, but by the same amount, so their difference stays at 4.88.

Now suppose a dealer offers the call at 11 while the put is still at 5.57. Then C0−P0=5.43>4.88C_0 - P_0 = 5.43 > 4.88C0​−P0​=5.43>4.88, so portfolio A is too expensive relative to B. Sell A and buy B: sell the call, buy the put, buy the share and borrow 95.1295.1295.12. The cash flow today is

11−5.57−100+95.12≈0.55,11 - 5.57 - 100 + 95.12 \approx 0.55,11−5.57−100+95.12≈0.55,

and at TTT the positions cancel exactly: the short call and long put together pay −(ST−K)-(S_T - K)−(ST​−K), the share and the loan pay ST−KS_T - KST​−K. The 0.55 is kept without risk.

The figure fixes S0=100S_0 = 100S0​=100 and r=5%r = 5\%r=5% and lets you move KKK, σ\sigmaσ and TTT. The chart overlays the payoff of a long call plus a short put on the forward payoff ST−KS_T - KST​−K; the two lines coincide for every strike. The readouts give the Black–Scholes prices C0C_0C0​ and P0P_0P0​, their difference, and S0−Ke−rTS_0 - Ke^{-rT}S0​−Ke−rT. Change σ\sigmaσ and note that C0C_0C0​ and P0P_0P0​ both move while C0−P0C_0 - P_0C0​−P0​ does not; it changes only with KKK and TTT.

Long call + short put = forwardOpen in Payoff Lab →
100
60140
25%
0.050.8
1.0
0.15
Forward: S_T − KLong call + short put
C₀
12.34
P₀
7.46
C₀ − P₀
4.88
S₀ − Ke^(−rT)
4.88

What parity does and does not tell you

Parity is model-free: it holds whatever the distribution of STS_TST​, because the argument never uses probabilities. It links the two prices, so knowing one gives the other. A desk that prices calls also prices puts, and the put price follows from the call price by P0=C0−S0+Ke−rTP_0 = C_0 - S_0 + Ke^{-rT}P0​=C0​−S0​+Ke−rT.

Parity does not tell you the level of either price. It fixes the difference C0−P0C_0 - P_0C0​−P0​, while the volatility of the stock determines how large both are. Finding that level needs a model of the stock price, which starts in "The one-step binomial model".

The result relies on its assumptions. With dividends, the stock leg must be reduced by the present value of the dividends. For American options, early exercise breaks the exact equality and leaves only inequalities.

Simple no-arbitrage bounds

The same reasoning bounds the call price without a model. For the upper bound, a call never pays more than the stock, since (ST−K)+≤ST(S_T - K)^+ \le S_T(ST​−K)+≤ST​ for K≥0K \ge 0K≥0. A portfolio that always pays less cannot cost more, so C0≤S0C_0 \le S_0C0​≤S0​.

For the lower bound, the call payoff is never negative, so C0≥0C_0 \ge 0C0​≥0. Also, (ST−K)+≥ST−K(S_T - K)^+ \ge S_T - K(ST​−K)+≥ST​−K, so the call is worth at least the forward-like portfolio B, which costs S0−Ke−rTS_0 - Ke^{-rT}S0​−Ke−rT. Combining:

max⁡(S0−K e−rT, 0)≤C0≤S0.\max\left(S_0 - K\,e^{-rT},\,0\right) \le C_0 \le S_0.max(S0​−Ke−rT,0)≤C0​≤S0​.

The lower bound also follows from parity: since P0≥0P_0 \ge 0P0​≥0, C0=P0+S0−Ke−rT≥S0−Ke−rTC_0 = P_0 + S_0 - Ke^{-rT} \ge S_0 - Ke^{-rT}C0​=P0​+S0​−Ke−rT≥S0​−Ke−rT. In the example the call must lie between 4.88 and 100. These bounds are wide; they exclude absurd prices but leave the actual level to a model.

Summary

  • A long call and a short put with the same strike and maturity pay ST−KS_T - KST​−K, the same as a share financed by borrowing Ke−rTKe^{-rT}Ke−rT.
  • By the law of one price, C0−P0=S0−Ke−rTC_0 - P_0 = S_0 - Ke^{-rT}C0​−P0​=S0​−Ke−rT.
  • Parity is model-free: it links the call and put prices but does not fix their level.
  • Without a model the call price is only bounded: max⁡(S0−Ke−rT,0)≤C0≤S0\max(S_0 - Ke^{-rT}, 0) \le C_0 \le S_0max(S0​−Ke−rT,0)≤C0​≤S0​.

To pin down the actual option price, the next lessons add a model for the stock price, starting with a single step up or down.

Try itCombine calls and puts into a synthetic forward in the Payoff lab →
← PreviousArbitrage and the forward priceNext →The one-step binomial model
Connections
Put–call parity
Open the full graph →
Labs for this lesson
Payoff LabBlack–Scholes