Price European call and put options, compute implied volatility, or solve for the implied stock price using the classic Black-Scholes model.
For more details on the documentation and methodology, follow the Python script.
The Black-Scholes model (also known as Black-Scholes-Merton) is a mathematical framework for pricing European-style options. It was developed by Fischer Black, Myron Scholes, and Robert Merton in the early 1970s, with the seminal paper published in 1973. Scholes and Merton were awarded the Nobel Prize in Economics in 1997 for this work (Black had passed away in 1995). The model revolutionized quantitative finance by providing the first widely adopted closed-form solution for option pricing, and it remains a cornerstone of modern derivatives theory.
The model assumes that the underlying asset follows a geometric Brownian motion with constant volatility and drift. Under these assumptions, the price of a European option can be expressed as:
Key variables:
The term \(N(d_1)\) represents the probability, under the stock-price measure, that the option expires in the money. It is closely related to the option's delta (hedge ratio): the call delta is \(\Delta_C = e^{-qT}\,N(d_1)\) and the put delta is \(\Delta_P = -e^{-qT}\,N(-d_1)\). When there are no dividends (\(q = 0\)), the call delta simplifies to \(N(d_1)\) directly.
The term \(N(d_2)\) represents the risk-neutral probability that the option will be exercised at expiration, meaning the probability that \(S_T > K\) for a call or \(S_T < K\) for a put. It is used to weight the expected payment of the strike price in the pricing formula.
The Black-Scholes formula is one of the primary methods used to extract implied volatility (IV) from observed market prices. While the formula directly computes the option premium given all inputs (\(S, K, T, r, q, \sigma\)), the inverse problem of finding the volatility \(\sigma\) that makes the theoretical price match an observed market price has no closed-form solution. This inverse value is called the implied volatility.
Because the BS price is a monotonically increasing function of \(\sigma\) (higher volatility always produces a higher option price), the implied volatility for any valid market price is guaranteed to be unique. This property allows it to be solved numerically. This calculator uses Brent's method (specifically, the brentq algorithm from scipy), a root-finding algorithm that combines bisection, secant, and inverse quadratic interpolation. It is highly robust and converges quickly, making it the standard choice for IV solvers in practice.
The solver takes the option premium as input and returns the implied volatility as output, searching within the no-arbitrage boundaries. The lower bound is the present-value intrinsic, which represents the minimum theoretical price when \(\sigma \to 0\). A market price below this level would require a negative volatility, which is impossible. The upper bound is the theoretical maximum price when \(\sigma \to \infty\), equal to \(S\,e^{-qT}\) for a call or \(K\,e^{-rT}\) for a put. Any observed market price between these bounds corresponds to exactly one implied volatility value. Prices outside these bounds violate no-arbitrage conditions and cannot be produced by the BS model.