Why Equivalent Portfolios Give a Pricing Relationship
A call and a put with the same underlying asset, strike, and expiration respond differently to the underlying price at expiration. Yet when each option is paired with a suitable second asset, the resulting portfolios can have exactly the same expiration value in every possible outcome. The no-arbitrage principle then requires those portfolios to have the same value today.
This relationship is called European put-call parity. It is useful both for deriving the price of an option from other market prices and for checking whether a set of quoted prices is internally consistent. The derivation depends on comparing cash flows at the same date; comparing only the options’ expiration payoffs is not enough.
The standard form applies when the underlying asset pays no income or distributions during the option’s life. It also assumes European exercise (exercise only at expiration), no transaction costs or taxes, and that market participants can borrow and lend at the same known risk-free rate. The compared bond is assumed to be default-free. These conditions allow the two portfolios’ expiration cash flows to be compared directly and their present values to be calculated consistently.
Deriving Parity From Expiration Cash Flows
Consider two portfolios established today. Portfolio A contains one European call and a default-free zero-coupon bond paying \(K\) at expiration. Portfolio B contains one European put and one unit of the underlying asset. The call pays \(\max(S_T-K,0)\) at expiration, and the put pays \(\max(K-S_T,0)\), where \(S_T\) is the underlying price at time \(T\).
To see why these values agree, consider both possible regions for \(S_T\). If \(S_T\geq K\), Portfolio A is worth \(S_T-K+K=S_T\), while Portfolio B is worth \(0+S_T=S_T\). If \(S_T<K\), Portfolio A is worth \(0+K=K\), while Portfolio B is worth \(K-S_T+S_T=K\). Thus both portfolios are worth \(\max(S_T,K)\) at expiration in every case.
The bond costs \(K v^T\) today, so the current values of the portfolios are \(C+K v^T\) and \(P+S_0\). Since their expiration cash flows are identical in every outcome, no-arbitrage pricing requires their current values to be equal. Otherwise, two positions with identical future cash flows would have different prices today. Equating their values gives put-call parity.
The equation can be rearranged depending on which price is missing:
The discounting in these equations applies to the bond’s guaranteed payment \(K\), not to the option prices or the underlying’s current price. If a problem gives the price of a default-free zero-coupon bond paying \(K\) at \(T\), use that bond price in place of \(K v^T\). This avoids converting rates unnecessarily.
Applying the Relationship
Worked Example: Finding a Put Price at a Two-Year Expiration
A non-income-producing asset is priced at \(S_0=\$100\). A two-year European call with strike \(K=\$105\) costs \(\$12\). The effective annual risk-free rate is \(5\%\). Find the price of the matching European put.
Method. Use parity and discount the strike for two years. The options have the same underlying, strike, and expiration, and the stated assumptions for standard parity are satisfied.
First, calculate the two-year discount factor:
The present value of the strike is:
Rearrange \(C+K v^2=P+S_0\) to isolate the put:
Rounded to the nearest cent, the put price is \(\$7.24\). As a check, the call plus the bond costs \(12+95.238095\ldots=107.238095\ldots\). The put plus the asset costs \(7.238095\ldots+100=107.238095\ldots\), so the two present values agree.
Common mistake avoided: Adding the strike’s full \(\$105\) to the call price would value a bond that pays \(\$105\) today, not in two years. The bond pays at expiration, so its current value is \(105(1.05)^{-2}\).
Worked Example: Finding a Call Price From a Put Quote
A non-income-producing asset has current price \(S_0=\$103\). A one-year European put with strike \(K=\$108\) costs \(\$4\). The effective annual risk-free rate is \(8\%\). Find the price of the matching European call.
Method. Use \(C=P+S_0-Kv^T\). Since the term is exactly one year, \(v^T=(1.08)^{-1}\).
Calculate the discount factor and the present value of the strike:
Now substitute the values into the rearranged parity equation:
The call price is \(\$7.00\). To check, \(C+Kv^1=7+100=107\) and \(P+S_0=4+103=107\). Both portfolios have the same current value.
Common mistake avoided: Subtracting the put price in the rearrangement would give the wrong sign. Starting with \(C+Kv^T=P+S_0\), subtract \(Kv^T\) from both sides and then add \(P\), giving \(C=P+S_0-Kv^T\).
Worked Example: Inferring the Risk-Free Rate From Option Prices
A non-income-producing asset costs \(S_0=\$100\). One-year European call and put prices with the same strike are \(\$14\) and \(\$5\), respectively. The strike is \(K=\$110\). Assuming standard put-call parity, infer the effective annual risk-free rate.
Method. First use parity to infer the present value of the strike; then use the one-year effective-rate accumulation relationship.
Start from \(C+Kv^1=P+S_0\) and isolate \(Kv^1\):
Since \(K=110\), the one-year discount factor implied by the prices is:
For one year, \(v^1=1/(1+i)\). Therefore:
The implied effective annual rate, rounded to four significant figures, is \(20.88\%\). Check the calculation by discounting the strike at this rate: \(110/(1+i)=110/(110/91)=91\). Substitution into parity gives \(14+91=5+100=105\).
Common mistake avoided: The inferred discount factor is \(91/110\), not \(110/91\). The latter is the one-year accumulation factor \(1+i\); taking its reciprocal gives the discount factor.
Common Errors and Scope of the Formula
Put-call parity is compact, but errors often arise from a mismatch in the contracts or from a sign or timing mistake. Before applying it, verify that the call and put refer to the same underlying asset, have the same strike and expiration, and are both European options. Then identify the value today of the payment \(K\) due at expiration.
Confirm the call and put have the same underlying, strike, and expiration, and that both can be exercised only at expiration.
Use \(Kv^T\), or the quoted price of a default-free zero-coupon bond paying \(K\) at \(T\). Apply the correct rate convention and term.
Begin with \(C+Kv^T=P+S_0\), then isolate the required unknown. This makes the signs easier to track.
Substitute the result into both sides of parity. They must agree to the precision used.
A frequent sign error is to write \(P=C+S_0-Kv^T\), which is the expression for the call rather than the put. The correct put expression is \(P=C+Kv^T-S_0\). For example, in the first worked example, the incorrect expression would give \(12+100-95.238095\ldots=\$16.76\), not \(\$7.24\). Checking either form against the original equality immediately exposes the error.
Another limitation is important: if the underlying pays income or distributions during the option’s life, the no-income assumption used in this derivation is not satisfied. The displayed standard formula should not be applied unchanged in that setting. Similarly, options with different strikes or expiration dates do not have the matched terminal cash flows used here. Put-call parity is a precise relationship under stated assumptions, not a general identity for any call and put.
Check Your Understanding
For each problem, assume the options are European and the underlying pays no income unless the problem states otherwise. Round money answers to the nearest cent and rates to four significant figures where needed.
- A one-year call costs \(\$7\), the underlying price is \(\$62\), the strike is \(\$60\), and the effective annual risk-free rate is \(5\%\). Find the matching put price. (Answer: \(\$2.14\))
- A two-year put costs \(\$9\), the underlying price is \(\$150\), the strike is \(\$144\), and the effective annual risk-free rate is \(20\%\). Find the matching call price. (Answer: \(\$59.00\))
- A one-year put costs \(\$4\), the underlying price is \(\$103\), the strike is \(\$108\), and the effective annual risk-free rate is \(8\%\). Find the matching call price. (Answer: \(\$7.00\))
- For two-year European options, \(S_0=\$125\), \(K=\$121\), \(C=\$16\), and \(P=\$8\). Infer the effective annual risk-free rate. (Answer: \(\sqrt{121/117}-1\), or approximately \(1.695\%\))
- For two-year European options, \(S_0=\$100\), \(C=\$11\), and \(P=\$8\). The effective annual risk-free rate is \(5\%\). Find the strike implied by parity. (Answer: \(\$106.94\))