Options

Black-Scholes Calculator

Enter the five inputs the model needs and get both sides of the contract, the time value inside the price, and the chance the option finishes in the money.

The contract

Market inputs

Annualised, as quoted on the option chain.
Leave at 0 for an index or a non-payer. Omitting a real yield overprices calls.
Call value
Put value
Call intrinsic / time value
Put-call parity check
d1
Chance of finishing in the money (call)

European exercise, continuous dividend yield, constant volatility. Real chains violate the last assumption visibly — every strike carries its own implied volatility, which is the skew. Feed the strike’s own IV, not an at-the-money figure, or the value returned is for an option nobody is trading.

FreeNo signupNothing leaves your browser

The model

d₁ = [ ln(S/K) + (r − q + σ²/2)·T ] ÷ (σ·√T)
d₂ = d₁ − σ·√T

Call = S·e^(−qT)·N(d₁) − K·e^(−rT)·N(d₂)
Put  = K·e^(−rT)·N(−d₂) − S·e^(−qT)·N(−d₁)

Five inputs: spot, strike, time, volatility, and the two rates — risk-free and dividend yield. N() is the cumulative normal distribution.

A $100 stock, a $100 strike, 30 days out, 35% implied volatility and a 4% risk-free rate gives a call worth about $4.16 and a put about $3.83.

Why the dividend yield is not optional here

Most free calculators omit it, and the omission runs one way: it overprices calls and underprices puts.

The reasoning is straightforward. A dividend transfers value out of the share, so the expected forward price is lower than the spot compounded at the risk-free rate. A call on a stock that pays 4% a year is worth meaningfully less than a call on an identical non-payer, and the gap grows with time to expiry.

For an index option, use the index's yield rather than zero. For a non-payer, zero is correct. Leaving it at zero for a 3% yielder is the most common quiet error in retail option pricing.

The parity row, and what it is for

Put-call parity is an arbitrage identity, not a model assumption:

C − P = S·e^(−qT) − K·e^(−rT)

It must hold exactly. The calculator shows the residual, and it should read as zero. That row exists as a self-check: if a sign or a discount factor were wrong anywhere in the implementation, parity would break and you would see it, instead of receiving a plausible price that is quietly wrong.

It is also useful on real chains. When a broker's quoted call and put visibly violate parity, the cause is nearly always a stale quote on one leg, a hard-to-borrow stock, or an early-exercise premium — not free money.

Where the model is wrong, and it matters

Volatility is not constant. Every strike on a real chain trades at its own implied volatility — the skew. Feeding an at-the-money IV to price a far out-of-the-money strike returns the value of an option nobody is trading. Use the strike's own IV.

Exercise is European. American calls on non-dividend payers are equivalent, so no error there. American puts, and calls on dividend payers before an ex-date, can be worth exercising early, and the model does not price that.

N(d₂) is not quite the real-world probability. The row labelled "chance of finishing in the money" is the risk-neutral probability, which is what the model uses to price. It is a good rough guide and it is not a forecast.

FAQ

What is the Black-Scholes formula?

A closed-form price for a European option from five inputs: spot, strike, time to expiry, volatility, and the risk-free and dividend rates. It discounts the expected payoff under a risk-neutral distribution.

Why does my broker's price differ?

Usually the implied volatility. The market sets prices and volatility is what falls out of them, so feeding a different IV produces a different value by construction. Also check the dividend yield, the exact days to expiry, and whether the quote you compared against was stale.

Does Black-Scholes work for American options?

For calls on non-dividend-paying stocks, yes — early exercise is never optimal, so the values coincide. For puts, and for calls across an ex-dividend date, early exercise can have value the model does not capture, and a binomial model is the usual alternative.

What volatility should I enter?

The implied volatility of the specific strike and expiry you are pricing, taken from the chain. Historical volatility answers a different question — what the stock did, rather than what the market is charging for what it might do.

Why is N(d₂) not the probability of profit?

It is the probability of finishing in the money under the risk-neutral measure, which is a pricing device rather than a forecast. It also ignores the premium: an option can finish in the money and still lose, which is what the [payoff calculator](/tools/options-profit-calculator) shows.

This is the plan. What did you actually do?

A calculator tells you the size you should have taken. It cannot tell you the size you took at 2pm after two losers, or how often your stop moved once price went against you. Drop in a statement from MT4/MT5, a broker CSV or a crypto export and see the answer for your own last 90 trades.

Import my trades — free