Put-Call Parity
Put-call parity is a fundamental relationship between call and put prices. It states that a call and put with the same strike and expiry must be priced consistently. If they are not, there is free money on the table.
Interactive Parity Calculator
Adjust the inputs and watch how the parity relationship holds across different market conditions. Click on "PUT-CALL PARITY" to see the formula with your current values.
Why It Works
The insight is that two portfolios with identical payoffs at expiry must have the same value today.
| Portfolio A | Portfolio B |
|---|---|
| Long call | Long put |
| + Cash worth PV(K) | + Long underlying |
At expiry, both portfolios are worth max(S, K):
- If S > K: Portfolio A exercises the call, Portfolio B holds the stock
- If S < K: Portfolio A keeps the cash (now worth K), Portfolio B exercises the put
Same payoff = same price today. Any difference is an arbitrage opportunity.
No-Arbitrage Implications
Put-call parity is a no-arbitrage condition. If violated:
| If... | Then... | Arbitrage |
|---|---|---|
| C - P > S - PV(K) | Calls overpriced vs puts | Sell call, buy put, buy stock, borrow PV(K) |
| C - P < S - PV(K) | Puts overpriced vs calls | Buy call, sell put, sell stock, lend PV(K) |
In practice, small deviations exist due to:
- Bid-ask spreads
- Transaction costs
- Borrowing costs
- Execution risk
But large deviations get arbitraged away quickly.
Practical Uses
1. Sanity Check Pricing
If you see a call and put with the same strike, you can verify they are priced consistently:
If they are not, something is off: maybe stale quotes or a data error.
2. Synthetic Positions
Put-call parity lets you create synthetic positions:
| Want This | Build It With |
|---|---|
| Long call | Long put + Long stock - Borrow PV(K) |
| Long put | Long call + Short stock + Lend PV(K) |
| Long stock | Long call + Short put + Lend PV(K) |
This is useful when one leg is cheaper or more liquid than the direct position.
3. Understanding Skew
The relationship also implies a connection to the forward price:
This connects option prices to the forward, which is key for understanding volatility skew.
Connection to Other Concepts
Put-call parity connects several important ideas:
- Forward pricing: The relationship implies a forward price
- No-arbitrage: Violations create risk-free profit opportunities
- Synthetic replication: Any position can be built from others
- Delta hedging: A delta-neutral portfolio earns the risk-free rate
Understanding parity helps you see that calls and puts are not independent. They are two views of the same underlying uncertainty.
When Parity Breaks
Put-call parity is exact in theory but approximate in practice. Several forces cause persistent or temporary deviations:
Pin Risk and Parity
At expiry, when spot is very close to the strike, parity can appear to break because the delta of the ATM option oscillates between 0 and 1. A call and put both near 50-delta create maximum uncertainty about whether they finish in or out of the money. The exercise decision itself introduces risk that the theoretical parity relationship does not account for. See Pin Risk for more.
Conversion and Reversal Arbitrage
The classic trades that enforce put-call parity are the conversion and the reversal:
Conversion (when calls are overpriced relative to puts):
- Sell the call
- Buy the put (same strike and expiry)
- Buy the underlying
This creates a riskless position that locks in the parity difference. At expiry, you deliver the underlying regardless of where spot ends up. The profit is the amount by which the call was overpriced relative to the put.
Reversal (when puts are overpriced relative to calls):
- Buy the call
- Sell the put (same strike and expiry)
- Sell the underlying
Same logic in reverse. You receive the underlying at expiry regardless of spot.
Synthetic Positions
Put-call parity enables the construction of synthetic positions -- replicating one instrument using others:
| Synthetic Position | Construction | When to Use |
|---|---|---|
| Synthetic long call | Long put + Long underlying | When puts are cheaper or more liquid than calls at the same strike |
| Synthetic long put | Long call + Short underlying | When calls are cheaper or more liquid than puts |
| Synthetic long underlying | Long call + Short put (same strike) | When you want spot exposure using options only (no margin on the underlying) |
| Synthetic short underlying | Short call + Long put (same strike) | Creating short exposure without borrowing the asset |
Synthetic positions are useful whenever one leg is cheaper, more liquid, or more capital-efficient than the direct position. In crypto, where spot borrowing is limited and options and perps live on different venues, synthetics can unlock trades that are otherwise impractical.
Crypto-Specific Parity Deviations
Several crypto-specific factors cause put-call parity to deviate more than in traditional markets:
High funding rates: When perp funding is extremely high (bullish markets), the cost of carrying a short position in the underlying is elevated. This makes reversals more expensive and allows puts to trade at a relative premium.
Basis blowouts: When the basis between futures/perps and spot diverges significantly, the forward price embedded in options (which reference settlement, not spot) can differ from the forward implied by the perp market. This creates apparent parity violations that are actually rational pricing of different reference rates.
Cross-venue fragmentation: Options trade primarily on Deribit, while spot and perps are distributed across Binance, Bybit, OKX, and others. Since you cannot atomically execute a conversion across venues, the parity band is wider than in traditional markets where options and the underlying trade on the same exchange.
Settlement mechanics: Crypto options typically settle in the underlying (inverse) or in USD (linear). The settlement method affects how to calculate parity correctly. An inverse-settled BTC option has different carry costs than a linear-settled one.
💡 Tip: Try answering each question yourself before revealing the answer.
Building mathematical intuition
Learn put-call parity from scratchInteractive lesson · no prerequisitesThe interactive lesson covers the identity C − P = S − K·e⁻ʳᵀ, why it must hold (two portfolios with identical payoffs), how to use it to convert between calls and puts, how to spot parity violations and the arbitrage trades they imply, and why small violations appear in crypto markets.
Open source implementations
| Repo | Why inspect it |
|---|---|
| QuantLib | PCP verification and conversion arbitrage |
| py_vollib | Call-put conversion utilities |
Related:
- Black-Scholes Model - Pricing model that respects put-call parity
- Implied Volatility - Both legs should imply the same IV
- Premium - Understanding option prices
- Exercise Styles - European vs American options
- Pin Risk - Where parity breaks down near expiry
- Basis Trades - Basis and its effect on forward pricing
- Perp Funding - How funding rates create parity deviations