Put-Call Parity from zero
1/5The identity
Put-call parity is not a model. It is not an approximation. It is an identity — a mathematical fact enforced by arbitrage.
S = spot price. K·e⁻ʳᵀ = present value of the strike.
The left side is the difference between a call and a put at the same strike and expiry. The right side is spot minus the discounted strike. They are always equal. If they diverge, someone is giving away free money.
Move the sliders below. Watch both sides. They always match — because the call and put prices are computed from the same underlying reality.
No matter how you move spot, strike, volatility, or rates, the two sides stay locked. This is not a coincidence. It is a consequence of the fact that calls and puts are not independent instruments — they are two views of the same forward.
Why it must hold
Build two portfolios. Show they have identical payoffs at expiry. If two things pay the same in every scenario, they cost the same today.
At expiry, both portfolios pay max(S, K):
If S > K: Portfolio A exercises the call, gets the stock worth S. The cash (now K) is not needed. Total: S. Portfolio B lets the put expire, holds the stock worth S. Total: S.
If S < K: Portfolio A lets the call expire, keeps the cash (now K). Total: K. Portfolio B exercises the put, sells the stock at K. Total: K.
Same payoff in every state of the world. Same cost today. That is put-call parity.
The two lines overlap perfectly. Move the strike — they still overlap. Toggle "Show individual payoffs" to see the components. The call and cash combine to match the put and stock exactly.
Using it to convert
Know any four of {C, P, S, K, r} and the time to expiry. Parity gives you the fifth for free.
This is the most practical use. You see a call price and want to know the fair put. Or you see a put and want to back out the implied call. Rearrange the identity:
Pick which variable to solve for. Enter the others. The calculator does the rest.
Spotting violations
When parity breaks, there is free money. The question is whether the violation is large enough to cover transaction costs.
The classic arbitrage trades that enforce parity are the conversion and the reversal.
If C − P > S − PV(K): Calls are overpriced. Execute a conversion — sell the call, buy the put, buy the stock, borrow PV(K).
If C − P < S − PV(K): Puts are overpriced. Execute a reversal — buy the call, sell the put, sell the stock, lend PV(K).
Set the prices below to create a violation. The detector shows you exactly which trades to make and the risk-free profit. Try setting the call price too high relative to the put.
In practice, the arbitrage is not free. You need margin for the short option and the underlying. Execution risk means prices can move between legs. Cross-venue positions add counterparty risk. The violation must exceed all frictions combined. This is why small deviations persist — they are inside the no-arbitrage band.
PCP in practice
Crypto markets sometimes show parity violations that would be arbed away in seconds in equities. Here is why.
Funding rates. When perp funding is extremely positive (bullish market), carrying a short position in the underlying is expensive. Reversals cost more. This lets puts trade at a relative premium, creating apparent parity violations that reflect real carrying costs.
Cross-venue fragmentation. Options live on Deribit. Spot lives on Binance, Bybit, OKX. You cannot atomically execute all legs of a conversion on one venue. The legs sit on different exchanges with different margin systems. This widens the no-arbitrage band.
Margin costs. Both the short option and the underlying position require margin. Capital locked in a conversion earns a small return but cannot be deployed elsewhere. The opportunity cost of capital is a real friction.
Settlement mechanics. Crypto options can settle in the underlying (inverse) or in USD (linear). The settlement method changes the carry calculation. An inverse-settled BTC option has different economics than a linear one, even at the same strike.
A $0.50 violation on a $100 strike is 0.5%. That is within normal bid-ask spread for crypto options. Not a real violation.
A $5.00 violation on a $100 strike is 5%. That is either a stale quote, a data error, or genuine mispricing that will be arbed within minutes. Before trading it, verify the quotes are live on both sides.
The rule of thumb: if the violation is smaller than the sum of bid-ask spreads on all three legs (call, put, underlying), it is noise. If it is larger, check your data. If the data is right, someone is leaving money on the table.
Where to go next:
Black-Scholes — the pricing model that respects parity
Implied volatility — both legs should imply the same IV
Basis trades — how basis affects the forward and parity