# 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).

- Calculator id: `black-scholes` · Category: Investing & Real Estate (`investing`) · Tool name: `price_black_scholes_option`
- Canonical page: https://tttkmbb.com/investing/black-scholes · This document: https://tttkmbb.com/investing/black-scholes.md · JSON definition: https://tttkmbb.com/investing/black-scholes.json

## Purpose

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).

**Use when:** 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.

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `spot_price` | number |  | required | Current price of the underlying asset. (> 0, max 1000000000) |
| `strike_price` | number |  | required | Exercise price of the option. (> 0, max 1000000000) |
| `time_years` | number | years | required | Time until expiration in years (e.g. 0.25 for 3 months). (> 0, max 50) |
| `risk_free_rate_percent` | number | % per year | required | Continuously compounded annual risk-free interest rate in percent. (min -20, max 100) |
| `volatility_percent` | number | % per year | required | Annualized volatility of the underlying's returns in percent. (> 0, max 500) |
| `dividend_yield_percent` | number | % per year | optional, default 0 | Continuous dividend yield of the underlying in percent (0 for a non-dividend stock). (min 0, max 100) |

## Output

| Field | 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). |

## 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.

## Data Sources

- Black F. & Scholes M. (1973) The Pricing of Options and Corporate Liabilities, Journal of Political Economy 81(3):637-654 — https://doi.org/10.1086/260062 (peer_reviewed, retrieved 2026-09-24)
- Wikipedia – Black–Scholes model — https://en.wikipedia.org/wiki/Black%E2%80%93Scholes_model (reference, retrieved 2026-09-24)
- Wikipedia – Greeks (finance) — https://en.wikipedia.org/wiki/Greeks_(finance) (reference, retrieved 2026-09-24)

Data freshness: `static`. Deterministic formula with fixed constants; results never go stale. Inputs supplied by the caller determine the output.

## API

- `GET https://tttkmbb.com/api/v1/calculate/black-scholes?spot_price=…&strike_price=…&time_years=…&risk_free_rate_percent=…&volatility_percent=…`
- `POST https://tttkmbb.com/api/v1/calculate/black-scholes` with JSON body `{"inputs": {…}}`
- Response: unified envelope (`success`, `request`, `result.values`, `result.units`, `sources`, `freshness`, `timestamp`, `next_actions`, `links`); see https://tttkmbb.com/docs/response-format.md
- Schema: https://tttkmbb.com/api/v1/calculators/black-scholes · OpenAPI operationId `price_black_scholes_option` in https://tttkmbb.com/openapi.json
- Authentication: none. Rate limit: fair use, see https://tttkmbb.com/docs/rate-limits.md.

## MCP

- Server: `https://tttkmbb.com/mcp` (Streamable HTTP, JSON-RPC 2.0, no auth)
- Tool: `price_black_scholes_option` (dedicated) or `run_calculator` with `{"calculator_id": "black-scholes", "inputs": {…}}`

## Example

- S 100, K 100, 1 year, r 5 %, σ 20 %: inputs `{"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: inputs `{"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
```

## Limitations

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. 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. All values are computed from the formula above; no measurement or live data is involved.

## 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

- [Normal Distribution Calculator](https://tttkmbb.com/statistics/normal-distribution.md) — The cumulative normal probabilities N(d1) and N(d2) used in the formula.
- [Stock Profit Calculator](https://tttkmbb.com/finance/stock-profit.md) — Profit on the underlying shares themselves.
- [Compound Interest Calculator](https://tttkmbb.com/finance/compound-interest.md) — Continuous compounding behind the e^(−rT) discount factor.
