Put-Call Parity: Formula, Arbitrage, and Synthetic Positions Explained
Put-call parity is one of the most fundamental relationships in options pricing. It links the price of a European call option to the price of a European put option with the same strike and expiration — without relying on any pricing model. Whether you are validating option quotes, constructing synthetic positions, or studying for a finance exam, understanding put-call parity is essential. This guide covers the formula, arbitrage enforcement, synthetic positions, and common pitfalls.
What is Put-Call Parity?
Put-call parity is a no-arbitrage relationship that must hold for European options on the same underlying asset with the same strike price and expiration date. It states that two portfolios with identical payoffs at expiration must have the same price today — otherwise, a risk-free arbitrage opportunity exists.
Put-call parity says that a portfolio of a long call plus a risk-free bond paying K at expiration has the same payoff as a portfolio of a long put plus the underlying stock. Because the payoffs are identical in every scenario, the two portfolios must cost the same today: C + PV(K) = P + S.
This result is model-free — it does not depend on Black-Scholes, the binomial option pricing model, or any assumption about volatility. It follows purely from the principle of no-arbitrage: two assets with identical future payoffs must trade at the same price.
The Put-Call Parity Formula
Where:
- C — European call option premium
- P — European put option premium
- S — current stock (or underlying) price
- K — strike price
- r — continuously compounded risk-free interest rate
- T — time to expiration (in years)
The term K × e-rT is the present value of the strike price, discounted at the continuously compounded risk-free rate. If you are working with simple (discrete) rates instead, replace this with K / (1 + r)T. The interest rate component (rho) drives this discount factor — higher rates reduce PV(K), widening the gap between call and put prices.
Dividend-Adjusted Put-Call Parity
For stocks that pay known dividends during the option’s life, the formula becomes:
Where PV(D) is the present value of all dividends expected before expiration. Dividends reduce the effective stock price because the stock drops by approximately the dividend amount on the ex-date. Ignoring dividends is one of the most common sources of apparent parity “violations.”
Why Put-Call Parity Holds: Arbitrage Enforcement
Put-call parity is enforced by arbitrage. If the two sides of the equation diverge, traders can lock in a risk-free profit by buying the cheap portfolio and selling the expensive one. This trading pressure quickly pushes prices back into alignment.
The direction of the trade depends on which side is overpriced:
| Parity Gap | Interpretation | Arbitrage Strategy |
|---|---|---|
| C + PV(K) > P + S | Call side is overpriced | Short call + borrow PV(K), long put + long stock |
| C + PV(K) < P + S | Put side is overpriced | Long call + lend PV(K), short put + short stock |
In either case, the payoff at expiration nets to zero regardless of where the stock finishes — but the initial cash flow creates a risk-free profit equal to the size of the parity violation.
In practice, transaction costs, bid-ask spreads, borrowing fees, and execution risk consume most small parity violations. The threshold for profitable arbitrage varies by market and instrument, but in liquid index options the gap must typically exceed several cents per point before the trade covers costs. For retail traders, put-call parity is more useful as a validation tool than a profit opportunity.
Put-Call Parity Example
Suppose you observe the following market data for a European-style SPX index option (all values in index points; SPX options have a 100x multiplier, so multiply by $100 for dollar amounts per contract):
- S = 5,500 (S&P 500 index level)
- K = 5,500 (at-the-money strike)
- r = 4.5% (3-month Treasury bill rate, continuously compounded)
- T = 0.25 years (3 months to expiration)
- C = $142.00 (market call premium)
Step 1: Calculate PV(K)
PV(K) = 5,500 × e-0.045 × 0.25 = 5,500 × e-0.01125 = 5,500 × 0.98881 = $5,438.46
Step 2: Solve for P
P = C + PV(K) – S = 142.00 + 5,438.46 – 5,500.00 = $80.46
If the market put is quoted at $80.46, parity holds exactly. Any significant deviation signals a potential arbitrage opportunity (or a missed dividend adjustment).
Arbitrage Violation Example
Using the same SPX parameters above, suppose the market put is quoted at $72.00 instead of the theoretical $80.46. The put is underpriced relative to parity.
Check the parity gap:
- C + PV(K) = 142.00 + 5,438.46 = 5,580.46
- P + S = 72.00 + 5,500.00 = 5,572.00
- Gap = 5,580.46 – 5,572.00 = 8.46 index points ($846 per contract with the standard 100x SPX multiplier)
Arbitrage strategy (sell the expensive side, buy the cheap side):
- Short the call at $142.00
- Borrow $5,438.46 at the risk-free rate (repay $5,500 at expiration)
- Buy the put at $72.00
- Buy the index at 5,500.00 (in practice, via S&P 500 futures or an equivalent basket)
Net initial cash flow: +142.00 + 5,438.46 – 72.00 – 5,500.00 = +8.46 points ($846 per contract)
At expiration, the combined position nets to zero regardless of the index level — the 8.46 points is a locked-in risk-free profit (before transaction costs).
Synthetic Positions Using Put-Call Parity
By rearranging the put-call parity equation, traders can create synthetic positions — combinations of instruments that replicate the payoff of another instrument. This is useful when the direct instrument is overpriced, illiquid, or unavailable.
| Synthetic Position | Formula | Construction |
|---|---|---|
| Synthetic call | C = P + S – PV(K) | Buy put + buy stock + borrow PV(K) |
| Synthetic put | P = C – S + PV(K) | Buy call + short stock + lend PV(K) |
| Synthetic stock | S = C + PV(K) – P | Buy call + lend PV(K) + sell put |
| Synthetic forward | C – P = S – PV(K) | Buy call + sell put (same strike) |
The synthetic forward is especially common in practice. Professional market-makers frequently combine these synthetics with stock positions in strategies called conversions (long stock + long put + short call) and reversals (short stock + long call + short put). Both are designed to exploit small parity violations for risk-free profit.
Synthetic positions are also valuable when one option is expensive relative to the other. For example, put premiums on equity indices often become inflated before earnings seasons or during periods of high hedging demand. In that environment, a trader who wants downside protection can construct a synthetic put (buy a call, short the stock, invest PV(K)) at a lower cost than buying the overpriced put directly. Understanding intrinsic vs. extrinsic value helps identify when this premium skew makes synthetics worthwhile.
Put-Call Parity vs Binomial Option Pricing
Put-call parity and the binomial option pricing model are complementary tools in options analysis, but they answer fundamentally different questions.
Put-Call Parity
- Model-free — no volatility assumption needed
- Defines the relationship between call and put prices
- Cannot calculate individual option prices alone
- Applies only to European options (exact form)
- Based purely on no-arbitrage logic
Binomial Option Pricing
- Model-dependent — requires volatility, up/down factors
- Calculates individual option prices (absolute values)
- Builds a price tree with risk-neutral probabilities
- Handles both European and American options
- Converges to Black-Scholes as steps increase
Think of it this way: the binomial model tells you what a call or put should cost given your assumptions about volatility. Put-call parity tells you that however you price them, the call and put must satisfy a specific relationship — or arbitrage will correct the discrepancy.
How to Check Put-Call Parity
Verifying put-call parity is a straightforward process that any investor can perform:
- Select a strike and expiration — choose a European-style option chain (e.g., SPX options). Ensure both the call and put have the same strike, expiration, and underlying.
- Collect mid-prices — use bid-ask midpoints for the call (C) and put (P), not last-trade prices which may be stale.
- Record the spot price — the current underlying price (S).
- Determine the risk-free rate — use the Treasury bill rate matching the option’s tenor.
- Calculate PV(K) — discount the strike: PV(K) = K × e-rT.
- Compare both sides — compute C + PV(K) and P + S. If they differ by more than typical transaction costs (usually a few cents for liquid options), investigate further — the gap may reflect dividends, early exercise premiums (American options), or a genuine mispricing.
Common Mistakes
Put-call parity is conceptually simple, but these errors trip up both students and practitioners:
1. Applying put-call parity to American options as an equality. The exact relationship C + PV(K) = P + S holds only for European options. For American options on a non-dividend-paying stock (with positive interest rates), the relationship becomes an inequality: S – K ≤ C – P ≤ S – PV(K). The early exercise premium on American puts breaks the strict equality.
2. Ignoring dividends. For dividend-paying stocks, you must use the dividend-adjusted formula: C + PV(K) = P + S – PV(D). Omitting expected dividends creates phantom parity violations — you might think you found an arbitrage when the prices are actually fair.
3. Using the wrong risk-free rate. The rate must match the option’s time to expiration. A 3-month option needs the 3-month T-bill rate, not the 10-year Treasury yield. Using a mismatched rate distorts PV(K) and leads to incorrect parity assessments.
4. Mistaking small deviations for arbitrage. Bid-ask spreads, commissions, borrowing costs, and execution slippage often exceed the apparent mispricing. A $0.05 parity gap on an option with a $0.10 bid-ask spread is not an arbitrage opportunity.
5. Using stale prices. Put-call parity requires simultaneous pricing of all components. Using last-trade prices instead of current bid-ask midpoints introduces noise — especially for less liquid strikes where the last trade may be minutes or hours old.
6. Mismatching contract specifications. Both options must share the exact same underlying, strike price, expiration date, exercise style, multiplier, and settlement method. Comparing a European call on the SPX to an American put on SPY — even at equivalent strike levels — will produce meaningless “violations.”
Limitations of Put-Call Parity
Put-call parity applies strictly to European options. For American options, the relationship becomes an inequality because early exercise introduces an additional premium. The exact parity equation should never be used to validate American option prices.
Frictionless market assumption. The derivation assumes no transaction costs, taxes, or borrowing constraints. In real markets, these frictions create a band around parity within which no profitable arbitrage exists.
Known dividends required. The dividend-adjusted formula requires accurate knowledge of future dividend payments. Uncertain or variable dividends (common with individual stocks) introduce estimation error.
Same strike and expiration required. Parity links one specific call to one specific put — they must share the exact same strike price and expiration date. It does not relate options across different strikes or maturities.
Does not give absolute prices. Put-call parity tells you the relationship between call and put prices, not what either option should cost in isolation. To calculate individual option values, you need a pricing model like the binomial model or Black-Scholes.
Frequently Asked Questions
Disclaimer
This article is for educational and informational purposes only and does not constitute investment advice. Option prices and market data cited are illustrative examples and may not reflect current market conditions. Put-call parity applies strictly to European-style options; applying it to American options requires additional adjustments. Always conduct your own research and consult a qualified financial advisor before making investment decisions.