For the complete documentation index, see llms.txt. This page is also available as Markdown.

Black-76 & the Greeks

Learn how Rails calculates option mark prices and Greeks with Black-76.

Rails uses the Black-76 model to calculate option mark prices and the Greeks. Black-76 is a standard model for European options priced from a forward-style reference price. On Rails, the underlying index price is used as that pricing reference.

The mark price is the reference value Rails assigns to each option for unrealized P&L, margin, and liquidations. It is derived from the model rather than the last traded price, which keeps it resistant to manipulation and thin-book noise.

Inputs

The model uses these inputs:

  • FF — pricing reference for the underlying index. At Rails, F=PindexF = P_{index} from our Index Price Sources

  • KK — strike price

  • TT — time to expiry, in years

  • σ\sigma — annualized implied volatility (the mark volatility)

  • rr — risk-free rate

  • N(x)N(x) — cumulative distribution function of the standard normal

  • n(x)n(x) — standard normal density

Black-76 pricing formulas

For a call:

C=erT[FN(d1)KN(d2)]C = e^{-rT}\left[F N(d_1) - K N(d_2)\right]

For a put:

P=erT[KN(d2)FN(d1)]P = e^{-rT}\left[K N(-d_2) - F N(-d_1)\right]

Where:

d1=ln(F/K)+12σ2TσTd_1 = \frac{\ln(F/K) + \frac{1}{2}\sigma^2 T}{\sigma \sqrt{T}}
d2=d1σTd_2 = d_1 - \sigma \sqrt{T}

These formulas convert the forward reference price, strike, time to expiry, and implied volatility into a theoretical option value.

Pricing conventions on Rails

Rate convention

The Black-76 formulas above include a discount factor erTe^{-rT}.

Rails sets r=0r=0, so this simplifies to 1 and the formulas are not discounted.

Put-call parity

Black-76 implies a consistency relationship between calls and puts at the same strike and expiry:

CP=erT(FK)C - P = e^{-rT}(F - K)

With the Rails rate convention r=0r = 0, this becomes:

CP=FKC - P = F - K

Intrinsic value floor

Rails does not let option marks fall below intrinsic value.

For calls:

Markcallmax(FK,0)\text{Mark}_{\text{call}} \geq \max(F - K, 0)

For puts:

Markputmax(KF,0)\text{Mark}_{\text{put}} \geq \max(K - F, 0)

What moves the mark price?

Option marks can update for three main reasons:

  1. The index price changes.

  2. Implied volatility changes.

  3. Time passes.

In practice:

  • a higher FF usually helps calls and hurts puts

  • a higher σ\sigma usually increases both call and put values

  • a lower TT usually reduces time value

The Greeks

The Greeks measure how sensitive the theoretical option value is to changes in the model inputs.

Unless stated otherwise, the Greeks below are sensitivities of the Black-76 option premium. Delta and Gamma are shown with respect to FF.

Delta (Δ\Delta) measures how much the option value changes for a small move in the underlying reference price.

For a call: Δcall=erTN(d1)\Delta_{\text{call}} = e^{-rT} N(d_1)

For a put: Δput=erTN(d1)\Delta_{\text{put}} = -e^{-rT} N(-d_1)

Use Intro to Options for definitions and contract terminology. Use Metrics Guide for payoff, premium, and margin formulas.

Last updated

Was this helpful?