Home › Investing & Real Estate › Black-Scholes Option Calculator
Black-Scholes Option Calculator
Prices a European call and put with the Black-Scholes-Merton formula from spot, strike, time to expiry, risk-free rate, volatility and a continuous dividend yield, and reports d1, d2 and the Greeks (delta, gamma, vega, theta, rho).
When to use
You need a theoretical European option price or its sensitivities from a given volatility, or want to check put-call parity for quoted prices.
Do not use when: The option is American with early exercise value, the underlying pays discrete dividends, or you need implied volatility from a market price (solve numerically instead). Informational only; not financial advice.
Formula
d1 = [ln(S/K) + (r − q + σ²/2)·T] / (σ·√T); d2 = d1 − σ·√T; C = S·e^(−qT)·N(d1) − K·e^(−rT)·N(d2); P = K·e^(−rT)·N(−d2) − S·e^(−qT)·N(−d1); Δ_call = e^(−qT)·N(d1); Γ = e^(−qT)·φ(d1)/(S·σ·√T); vega = S·e^(−qT)·φ(d1)·√T; Θ_call = −S·e^(−qT)·φ(d1)·σ/(2√T) − r·K·e^(−rT)·N(d2) + q·S·e^(−qT)·N(d1); ρ_call = K·T·e^(−rT)·N(d2), with r, q, σ as decimals
Black-Scholes-Merton model for European options on an asset with lognormal returns, constant volatility and rate, no transaction costs and a continuous dividend yield; N is the standard normal CDF and φ its density. Vega and rho are scaled per percentage point, theta per calendar day (÷365). Informational mathematics only; not financial advice.
Inputs
| Parameter | Type | Unit | Required | Description |
|---|---|---|---|---|
spot_price | number | yes | Current price of the underlying asset. Range: > 0, ≤ 1000000000 | |
strike_price | number | yes | Exercise price of the option. Range: > 0, ≤ 1000000000 | |
time_years | number | years | yes | Time until expiration in years (e.g. 0.25 for 3 months). Range: > 0, ≤ 50 |
risk_free_rate_percent | number | % per year | yes | Continuously compounded annual risk-free interest rate in percent. Range: ≥ -20, ≤ 100 |
volatility_percent | number | % per year | yes | Annualized volatility of the underlying's returns in percent. Range: > 0, ≤ 500 |
dividend_yield_percent | number | % per year | default 0 | Continuous dividend yield of the underlying in percent (0 for a non-dividend stock). Range: ≥ 0, ≤ 100 |
Outputs
| Output | Type | Unit | Description |
|---|---|---|---|
call_price | number | S·e^(−qT)·N(d1) − K·e^(−rT)·N(d2). | |
put_price | number | K·e^(−rT)·N(−d2) − S·e^(−qT)·N(−d1). | |
d1 | number | [ln(S/K) + (r − q + σ²/2)·T] / (σ·√T). | |
d2 | number | d1 − σ·√T. | |
delta_call | number | e^(−qT)·N(d1): price change per 1 unit change in S. | |
delta_put | number | −e^(−qT)·N(−d1). | |
gamma | number | e^(−qT)·φ(d1) / (S·σ·√T): change in delta per 1 unit change in S (same for call and put). | |
vega_per_1pct | number | S·e^(−qT)·φ(d1)·√T / 100: price change per 1 percentage-point rise in volatility. | |
theta_call_per_day | number | Annual call theta / 365: price decay per calendar day. | |
theta_put_per_day | number | Annual put theta / 365. | |
rho_call_per_1pct | number | K·T·e^(−rT)·N(d2) / 100: price change per 1 percentage-point rise in r. | |
rho_put_per_1pct | number | −K·T·e^(−rT)·N(−d2) / 100. | |
put_call_parity_check | string | C − P compared with S·e^(−qT) − K·e^(−rT). |
Example
S 100, K 100, 1 year, r 5 %, σ 20 %: {"spot_price":100,"strike_price":100,"time_years":1,"risk_free_rate_percent":5,"volatility_percent":20} → {"call_price":10.4506,"put_price":5.5735,"d1":0.35,"d2":0.15,"delta_call":0.6368,"delta_put":-0.3632,"gamma":0.018762,"vega_per_1pct":0.3752,"theta_call_per_day":-0.0176,"rho_call_per_1pct":0.5323,"rho_put_per_1pct":-0.4189}
Same option with a 3 % dividend yield: {"spot_price":100,"strike_price":100,"time_years":1,"risk_free_rate_percent":5,"volatility_percent":20,"dividend_yield_percent":3} → {"call_price":8.6525,"put_price":6.7309,"d1":0.2,"d2":0,"delta_call":0.5621,"gamma":0.018974,"vega_per_1pct":0.3795,"theta_call_per_day":-0.0123,"rho_call_per_1pct":0.4756}
GET https://tttkmbb.com/api/v1/calculate/black-scholes?spot_price=100&strike_price=100&time_years=1&risk_free_rate_percent=5&volatility_percent=20
Machine access
- API:
GET https://tttkmbb.com/api/v1/calculate/black-scholes(query parameters) orPOSTwith a JSON body{"inputs": {...}} - Schema: https://tttkmbb.com/api/v1/calculators/black-scholes · Markdown: https://tttkmbb.com/investing/black-scholes.md · JSON definition: https://tttkmbb.com/investing/black-scholes.json
- MCP: server
https://tttkmbb.com/mcp, toolprice_black_scholes_option - OpenAPI operationId:
price_black_scholes_option - Freshness:
static. Authentication: none. Rate limit: fair use (see rate limits).
Sources
FAQ
Which volatility should I enter?
The annualized standard deviation of log returns in percent (20 for 20 %). Implied volatility from quoted options reproduces market prices; historical volatility gives a theoretical value.
Why is theta divided by 365?
The formula gives decay per year; dividing by 365 calendar days gives the commonly quoted per-day theta. Some platforms use 252 trading days, which gives a value about 45 % larger.
Does this work for American options?
Only as an approximation. American calls on non-dividend stocks equal European calls, but American puts and options on dividend-paying assets can be worth more because of early exercise.
Related calculators
- Normal Distribution Calculator — The cumulative normal probabilities N(d1) and N(d2) used in the formula.
- Stock Profit Calculator — Profit on the underlying shares themselves.
- Compound Interest Calculator — Continuous compounding behind the e^(−rT) discount factor.