Put-Call Parity: A Built-In Sanity Check for Option Prices
The relationship that has to hold
Pick any strike and any expiration. Look up the call price and the put price at that strike. Those two numbers are not independent — they're locked to each other, and to the stock price, by a simple identity called put-call parity:
Call price − Put price = Stock price − Strike price × e^(−r × T)
The e^(−r × T) term just discounts the strike back to today's dollars using the risk-free rate (r) and time to expiration (T) — for short-dated options it's close enough to ignore, so a simplified version is often good enough for a gut check: Call − Put ≈ Stock − Strike. If a call and put at the same strike and expiration are quoted in a way that violates this, something is either mispriced or there's a reason (dividends, borrow cost) that explains the gap.
Why arbitrage forces it to hold
Parity isn't a market observation — it's a consequence of two portfolios having identical payoffs at expiration, no matter where the stock lands. Buy the stock and buy a put at strike K, and at expiration you own either the stock (if it's above K) or K in cash (if you exercised the put). Buy a call at strike K and set aside enough cash to grow to K by expiration, and you get the exact same outcome: the stock if it finished above K, or K in cash if it didn't. Two portfolios with identical payoffs in every scenario must cost the same today, or a trader could sell the expensive one, buy the cheap one, pocket the difference risk-free, and collect it again at expiration regardless of where the stock goes. That risk-free trade is called a conversion (or a reversal running the other direction), and the fact that traders are willing to do it at scale is exactly what keeps parity from drifting far out of line.
Synthetic positions fall right out of the formula
Rearrange the equation and you get a menu of equivalent positions built from different pieces. Long stock plus a long put at strike K behaves like a long call at K — that's a synthetic call. Long a call and short a put at the same strike behaves like long stock — a synthetic long stock position, which is exactly the combination market makers use to hedge without touching the underlying directly. Short stock plus a long call is a synthetic put. None of these are tricks; they're the same identity read in different directions, and they're the reason a market maker can price a put once they already have a reliable call price at that strike and a stock quote — they don't need a second, independent model.
What actually breaks it in practice
The textbook formula assumes European-style exercise, no dividends, and frictionless borrowing. Real markets deviate on all three, and the deviations are informative rather than random:
Dividends lower the forward price of the stock, which pulls call prices down and put prices up relative to the no-dividend formula — a full version of parity subtracts the present value of expected dividends from the stock price term. Early exercise on American-style equity options (which is what almost all U.S. single-stock options are) means a deep ITM put can be worth exercising before expiration when interest rates are high enough, which the simple parity identity doesn't account for. Hard-to-borrow stocks — names where shorting is expensive or restricted — widen the gap further, since the arbitrage that enforces parity often requires shorting the stock. When you see calls and puts at the same strike quietly disagreeing with parity by more than a few cents, one of these three is almost always the reason, not mispricing.
Where this shows up in ordinary trades
Parity is why a covered call and a cash-secured put at the same strike have essentially identical payoff diagrams — long stock plus short call, versus short put, are two sides of the same equation. It's also a fast sanity check when you're scanning an option chain: if the numbers for a call and put at the same strike look wildly inconsistent with stock price and strike, check the dividend calendar and borrow cost before assuming there's an edge. Real, tradable dislocations from parity do exist, but they're usually a specialist's game — thin, fast-closing windows that retail order flow rarely reaches before market makers do.
You can see live call and put quotes side by side, strike by strike, in OptionScope's option chain view, or brush up on the underlying terms in the glossary.