HomeInvesting & 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

ParameterTypeUnitRequiredDescription
spot_pricenumberyesCurrent price of the underlying asset. Range: > 0, ≤ 1000000000
strike_pricenumberyesExercise price of the option. Range: > 0, ≤ 1000000000
time_yearsnumberyearsyesTime until expiration in years (e.g. 0.25 for 3 months). Range: > 0, ≤ 50
risk_free_rate_percentnumber% per yearyesContinuously compounded annual risk-free interest rate in percent. Range: ≥ -20, ≤ 100
volatility_percentnumber% per yearyesAnnualized volatility of the underlying's returns in percent. Range: > 0, ≤ 500
dividend_yield_percentnumber% per yeardefault 0Continuous dividend yield of the underlying in percent (0 for a non-dividend stock). Range: ≥ 0, ≤ 100

Outputs

OutputTypeUnitDescription
call_pricenumberS·e^(−qT)·N(d1) − K·e^(−rT)·N(d2).
put_pricenumberK·e^(−rT)·N(−d2) − S·e^(−qT)·N(−d1).
d1number[ln(S/K) + (r − q + σ²/2)·T] / (σ·√T).
d2numberd1 − σ·√T.
delta_callnumbere^(−qT)·N(d1): price change per 1 unit change in S.
delta_putnumber−e^(−qT)·N(−d1).
gammanumbere^(−qT)·φ(d1) / (S·σ·√T): change in delta per 1 unit change in S (same for call and put).
vega_per_1pctnumberS·e^(−qT)·φ(d1)·√T / 100: price change per 1 percentage-point rise in volatility.
theta_call_per_daynumberAnnual call theta / 365: price decay per calendar day.
theta_put_per_daynumberAnnual put theta / 365.
rho_call_per_1pctnumberK·T·e^(−rT)·N(d2) / 100: price change per 1 percentage-point rise in r.
rho_put_per_1pctnumber−K·T·e^(−rT)·N(−d2) / 100.
put_call_parity_checkstringC − 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

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