How this instrument works
The Black-Scholes model prices a European option — one that can only be exercised at expiry, never before — from five observable inputs: the stock price, the strike, volatility, the risk-free rate, and time to expiry. It assumes the stock's return over that stretch is lognormally distributed with constant volatility, no dividends, and no transaction costs — assumptions no real market fully satisfies, which is why a quoted option premium drifts from the model's output even when nobody disputes the inputs.
d1 and d2 are the two intermediate figures the formula builds before it prices anything. d1 measures how far in the money the option is expected to land, scaled by how much the stock could plausibly move before expiry; d2 subtracts one volatility-time unit, σ√T, from d1 and stands for the risk-neutral probability that the option finishes in the money. Both feed into N(·), the cumulative normal distribution, which turns a distance measured in standard deviations into a probability between 0 and 1.
This sheet estimates N(x) with a logistic curve, 1⁄(1+e^(−1.702x)), rather than the true cumulative normal — a shortcut real-time pricing systems favor because it needs no integral and stays within about 1% of the exact figure across the range that matters for pricing. Options desks, market makers, and traders checking a quoted premium use a model like this one not to declare a price correct, but to see whether it sits in the right neighborhood given the volatility the market is implying.
- Set Current stock price and Strike price — the two dollar figures the contract is written against.
- Enter Risk-free rate as a percent, typically close to the yield on a Treasury bill maturing near expiry.
- Set Volatility, the annualized standard deviation of the stock's returns, as a percent.
- Set Time to expiry in years — three months is 0.25, six months is 0.5.
- Read d1, d2, Call option price and Put option price in the results panel.
Worked example — pricing an at-the-money option
Take a stock trading at $100 with a strike also set at $100 — an at-the-money option — a 5% risk-free rate, 20% annualized volatility, and one year to expiry. The formula first builds d1 = 0.35 and d2 = 0.15: both positive, so the model leans slightly toward the call finishing in the money, which tracks with the drift term (r + σ²/2) pushing the expected stock price a little above the strike over the year.
Feeding d1 and d2 through the logistic approximation to N(·) and the discount factor e^(−rT) gives a call price of $10.87 and a put price of $5.99. The $4.87 gap between them is not arbitrary — it equals the stock price minus the present value of the strike, the put-call parity relationship that holds regardless of volatility, and checking that identity is a quick way to confirm two quoted option prices are at least internally consistent.
Questions
What do d1 and d2 actually represent?
d1 measures how far in the money the option is expected to land, scaled by the stock's volatility and time to expiry; d2 subtracts one unit of σ√T from d1 and stands for the risk-neutral probability the option finishes in the money. Both are inputs to N(·), which converts each distance into a probability between 0 and 1 used to weight the payoff.
Why does the calculator approximate N(x) instead of computing it exactly?
The true cumulative normal distribution needs an integral with no closed form, which is slow to run on every quote. This sheet uses the logistic approximation N(x) ≈ 1⁄(1+e^(−1.702x)), accurate to roughly 1% across the range that matters for pricing — the same shortcut many real-time trading systems use rather than call an error-function routine on every tick.
Why does raising volatility always raise the option price?
Higher volatility widens the range of prices the stock could land at by expiry, and because an option's payoff is floored at zero, more spread on the upside adds value without adding matching downside cost. Both the call and the put get pricier as volatility rises — it is the one input where call and put prices always move the same direction instead of opposite ways.
Does Black-Scholes work for American options?
Not directly — the model assumes exercise can only happen at expiry, which is what defines a European option. American options carry the added right to exercise early, worth something extra when the stock pays a dividend, so this sheet's output is a lower bound on an American option's fair value rather than an exact price.
Why does my broker's quoted price differ from this result?
Small gaps are ordinary — a broker's volatility figure is implied from live trading and can differ from a volatility you typed in by hand, and real quotes carry a bid-ask spread this model skips. Large gaps usually mean the volatility assumption here does not match what the market is pricing in; adjust Volatility until the call price matches the quote to back out that implied figure.
What happens to the price as time to expiry shrinks toward zero?
The option's value collapses toward its intrinsic worth — the stock price minus the strike for a call, floored at zero — since no time remains for the stock to move further. Set Time to expiry to a small figure like 0.001 and watch d1 and d2 converge while the call and put prices settle at what the option would pay if exercised right now.
References
- SEC Investor.gov — Options (investing basics glossary)
- Federal Reserve Bank of St. Louis — FRED: 1-Year Treasury Rate
Read this first: This instrument shows arithmetic, not advice. Real offers add fees, taxes and terms that vary by lender and place — verify the figures against your actual paperwork before deciding anything.