Put-Call Parity Calculator
Put-call parity links the price of a European call option, a European put option, the underlying spot price, the strike price, the risk-free rate, and time to expiry in a single no-arbitrage equation. Enter any five of the six variables and this calculator instantly solves for the sixth, checks for parity violations, and walks through the arithmetic step by step. A dividend yield field handles stocks that pay continuous dividends.
Formula
Worked example
A European call on a stock costs $10.50. The stock trades at $100, strike is $95, the risk-free rate is 5% per year, and expiry is 1 year (no dividends). The parity put price is P = 10.50 - 100*e^(-0*1) + 95*e^(-0.05*1) = 10.50 - 100 + 90.24 = 0.74. If the put is quoted at $5.00 instead, the parity difference is 5.00 - 0.74 = 4.26, indicating the put is overpriced relative to the call.
What is put-call parity?
Put-call parity is a fundamental no-arbitrage relationship in options pricing. It states that the price difference between a European call and a European put on the same underlying asset, with identical strike and expiry, must equal the difference between the current spot price (adjusted for dividends) and the present value of the strike price. Written compactly: C - P = S*e^(-qT) - K*e^(-rT), where C is the call price, P is the put price, S is the spot price, K is the strike, r is the continuously compounded risk-free rate, q is the continuous dividend yield, and T is the time to expiry in years. If this equality breaks down, a risk-free profit can be locked in by simultaneously trading the call, put, and underlying, which arbitrageurs quickly eliminate in liquid markets.
How to use this calculator
Select the variable you want to solve for from the dropdown at the top. The calculator will hide that field and use all other inputs to compute its no-arbitrage value. For example, to find an implied put price, select "Put price (P)", enter the call price, spot price, strike, risk-free rate, time to expiry, and dividend yield, then read off the result. You can also enter all six known market values to check whether parity holds: the parity difference output tells you the exact size and direction of any mispricing. A positive difference means the call side is overpriced; a negative difference means the put side is overpriced.
The arbitrage mechanics
When parity is violated, a textbook arbitrage has two forms. If C - P > S*e^(-qT) - K*e^(-rT) (call too expensive relative to put), the trade is: sell the call, buy the put, buy e^(-qT) units of the stock (to fund dividends), and borrow K*e^(-rT) at the risk-free rate. This portfolio costs zero today and delivers zero at expiry, yet earns the parity difference as a risk-free profit. The opposite violation runs the mirror trade. In practice, transaction costs, bid-ask spreads, short-selling constraints, and margin requirements often absorb small violations before a trade can be executed profitably.
Continuous compounding and dividend adjustments
This calculator uses the continuous-compounding form of put-call parity, consistent with the Black-Scholes framework. The present value of the strike is K*e^(-rT) and the dividend-adjusted spot is S*e^(-qT), where q is the continuously reinvested dividend yield. For non-dividend-paying stocks, set q to 0 and the formula reduces to C - P = S - K*e^(-rT). For discrete dividends, use the present value of dividends to reduce the spot price before entering it, or convert to an equivalent continuous yield. The parity holds exactly only for European options - American options embed an early-exercise premium that breaks the strict equality.
Put-call parity rearrangements
| Solve for | Formula | Inputs needed |
|---|---|---|
| Call price C | C = P + S*e^(-qT) - K*e^(-rT) | P, S, K, r, T, q |
| Put price P | P = C - S*e^(-qT) + K*e^(-rT) | C, S, K, r, T, q |
| Spot price S | S = (C - P + K*e^(-rT)) * e^(qT) | C, P, K, r, T, q |
| Strike price K | K = (S*e^(-qT) - C + P) * e^(rT) | C, P, S, r, T, q |
| Risk-free rate r | r = -ln((S*e^(-qT) - C + P) / K) / T | C, P, S, K, T, q |
| Time to expiry T | Solved numerically | C, P, S, K, r, q |
Each row shows how to rearrange the core equation C - P = S*e^(-qT) - K*e^(-rT) to solve for one variable.
Frequently asked questions
Does put-call parity apply to American options?
No - put-call parity in its exact form applies only to European options, which can be exercised only at expiry. American options carry an early-exercise premium that introduces an inequality rather than an equality: C - P is bounded between S*e^(-qT) - K and S - K*e^(-rT) for non-dividend-paying stocks. Using this calculator with American option prices will generally show a non-zero parity difference even in a well-functioning market.
What does a non-zero parity difference mean?
A non-zero parity difference can arise for several reasons: the options may be American-style (early exercise premium), there may be discrete rather than continuous dividends, transaction costs or bid-ask spreads may make the arbitrage unprofitable, or the options may genuinely be mispriced. In liquid, well-functioning markets the difference is usually well within trading costs. A large, persistent violation in liquid European options is a red flag worth investigating.
What is the right risk-free rate to use?
Use a continuously compounded rate matching the option's expiry. In practice, practitioners use overnight index swap (OIS) rates or Treasury yields for the relevant tenor. If you have an annualised rate quoted with discrete compounding (e.g. a Treasury yield), convert it: r_continuous = ln(1 + r_discrete). Small rate differences have a modest effect for short-dated options but can matter significantly for long-dated LEAPS.
Can I use this for currency options?
Yes, with an adjustment. For currency options (foreign exchange), the dividend yield q is replaced by the foreign risk-free rate r_f. The parity becomes C - P = S*e^(-r_f*T) - K*e^(-r_d*T), where r_d is the domestic risk-free rate. Enter r_f in the dividend yield field and r_d in the risk-free rate field to get the correct result under the Garman-Kohlhagen framework.
How do I convert the solved time to months or days?
The calculator returns time in years, consistent with the standard convention. Multiply by 12 to get months or by 365 to get calendar days. For example, a solved time of 0.5 years equals 6 months or about 182.5 days. When inputting time, use 0.25 for a 3-month option, 0.5 for 6 months, and so on.
Why does the solved value differ slightly from my broker's quoted price?
Broker quotes include a bid-ask spread and may reflect supply-demand imbalances, early-exercise premiums (American options), or corporate event risk not captured in a simple parity model. Put-call parity gives the theoretical no-arbitrage price assuming continuous trading, no taxes, and borrowing at the risk-free rate - conditions that are never perfectly met in practice.