The finance developer workbenchSearch the reference Development · 0.1.4 · unpublished

Public API / @insiderfinance/totalfinance

@insiderfinance/totalfinance/options/black76

import from '@insiderfinance/totalfinance/options/black76'

Every public export in this entry point, including type-only declarations. Search by name or concept.

Jump to an export (11)

Black76ImpliedVolatilityInput · Black76ImpliedVolatilityResult · Black76Input · Black76PriceBoundsInput · Black76TypedInput · black76 · black76ExtendedGreeks · black76Greeks · black76ImpliedVolatility · black76Price · black76PriceBounds

interface

Black76ImpliedVolatilityInput

Public declaration. Read the signature and parameter/member contracts below; no additional behavior is inferred.

export interface Black76ImpliedVolatilityInput {
    price: number;
    forward: number;
    strike: number;
    timeToExpiryYears: number;
    riskFreeRate: number;
    type: OptionType;
}
Fields, parameters & returned members (6)
Name / typeMeaning & unitOptional / default
forward
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
price
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
riskFreeRate
number

decimal rate (0.05 = 5%)
Required / declared member
No @default declared; consult the signature and description.
strike
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
timeToExpiryYears
number

years (decimal)
Required / declared member
No @default declared; consult the signature and description.
type
OptionType

unitless by name
Required / declared member
No @default declared; consult the signature and description.
Stability, warnings & conventions
stable-by-law (pre-1.0; not a 1.0 stability guarantee)

Declared field units are shown above. “Unitless by name” means the name alone does not establish a unit, not that a financial quantity has none. Check source descriptions, conventions, and the returned diagnostics. Errors and warnings are part of the result contract.

interface

Black76ImpliedVolatilityResult

Public declaration. Read the signature and parameter/member contracts below; no additional behavior is inferred.

export interface Black76ImpliedVolatilityResult {
    value: number;
    converged: boolean;
    iterations: number;
    reason?: 'below_intrinsic' | 'above_max_bound' | 'price_below_resolvable' | 'no_bracket' | 'max_iterations';
    /** Explanatory detail when a usable numeric pricing bracket cannot be established. */
    message?: string;
}
Fields, parameters & returned members (5)
Name / typeMeaning & unitOptional / default
converged
boolean

unitless by name
Required / declared member
No @default declared; consult the signature and description.
iterations
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
message
string
Explanatory detail when a usable numeric pricing bracket cannot be established.
unitless by name
Optional
No @default declared; consult the signature and description.
reason
'below_intrinsic' | 'above_max_bound' | 'price_below_resolvable' | 'no_bracket' | 'max_iterations'

unitless by name
Optional
No @default declared; consult the signature and description.
value
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
Stability, warnings & conventions
stable-by-law (pre-1.0; not a 1.0 stability guarantee)

Declared field units are shown above. “Unitless by name” means the name alone does not establish a unit, not that a financial quantity has none. Check source descriptions, conventions, and the returned diagnostics. Errors and warnings are part of the result contract.

interface

Black76Input

Public declaration. Read the signature and parameter/member contracts below; no additional behavior is inferred.

export interface Black76Input {
    forward: number;
    strike: number;
    timeToExpiryYears: number;
    riskFreeRate: number;
    volatility: number;
}
Fields, parameters & returned members (5)
Name / typeMeaning & unitOptional / default
forward
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
riskFreeRate
number

decimal rate (0.05 = 5%)
Required / declared member
No @default declared; consult the signature and description.
strike
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
timeToExpiryYears
number

years (decimal)
Required / declared member
No @default declared; consult the signature and description.
volatility
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
Stability, warnings & conventions
stable-by-law (pre-1.0; not a 1.0 stability guarantee)

Declared field units are shown above. “Unitless by name” means the name alone does not establish a unit, not that a financial quantity has none. Check source descriptions, conventions, and the returned diagnostics. Errors and warnings are part of the result contract.

type

Black76PriceBoundsInput

Public declaration. Read the signature and parameter/member contracts below; no additional behavior is inferred.

export type Black76PriceBoundsInput = Omit<Black76TypedInput, 'volatility'>;
Fields, parameters & returned members (5)
Name / typeMeaning & unitOptional / default
forward
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
riskFreeRate
number

decimal rate (0.05 = 5%)
Required / declared member
No @default declared; consult the signature and description.
strike
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
timeToExpiryYears
number

years (decimal)
Required / declared member
No @default declared; consult the signature and description.
type
OptionType

unitless by name
Required / declared member
No @default declared; consult the signature and description.
Stability, warnings & conventions
stable-by-law (pre-1.0; not a 1.0 stability guarantee)

Declared field units are shown above. “Unitless by name” means the name alone does not establish a unit, not that a financial quantity has none. Check source descriptions, conventions, and the returned diagnostics. Errors and warnings are part of the result contract.

interface

Black76TypedInput

Public declaration. Read the signature and parameter/member contracts below; no additional behavior is inferred.

export interface Black76TypedInput extends Black76Input {
    type: OptionType;
}
Fields, parameters & returned members (6)
Name / typeMeaning & unitOptional / default
forward
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
riskFreeRate
number

decimal rate (0.05 = 5%)
Required / declared member
No @default declared; consult the signature and description.
strike
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
timeToExpiryYears
number

years (decimal)
Required / declared member
No @default declared; consult the signature and description.
type
OptionType

unitless by name
Required / declared member
No @default declared; consult the signature and description.
volatility
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
Stability, warnings & conventions
stable-by-law (pre-1.0; not a 1.0 stability guarantee)

Declared field units are shown above. “Unitless by name” means the name alone does not establish a unit, not that a financial quantity has none. Check source descriptions, conventions, and the returned diagnostics. Errors and warnings are part of the result contract.

value

black76

The Black-76 facade namespace.

export declare const black76: { call: Facade<Black76Input, number>; extendedGreeks: Facade<Black76TypedInput, ExtendedGreeks>; greeks: Facade<Black76TypedInput, Greeks>; impliedVolatility: Facade<Black76ImpliedVolatilityInput, number, Record<never, never>, number | null>; price: Facade<Black76TypedInput, number>; put: Facade<Black76Input, number>; };
Fields, parameters & returned members (137)
Name / typeMeaning & unitOptional / default
call
Facade<Black76Input, number>

unitless by name
Required / declared member
No @default declared; consult the signature and description.
call(input)
Black76Input

unitless by name
Required / declared member
No @default declared; consult the signature and description.
call(input).forward
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
call(input).riskFreeRate
number

decimal rate (0.05 = 5%)
Required / declared member
No @default declared; consult the signature and description.
call(input).strike
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
call(input).timeToExpiryYears
number

years (decimal)
Required / declared member
No @default declared; consult the signature and description.
call(input).volatility
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
call.explain
(input: Black76Input) => Computed<number, Record<never, never>>

unitless by name
Required / declared member
No @default declared; consult the signature and description.
call.explain().return.assumptions
Assumptions<Record<never, never>>
Every applied convention, echoed back.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
call.explain().return.diagnostics
Diagnostics
How the value was computed, plus any warnings.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
call.explain().return.provenance
import('@insiderfinance/totalfinance/core').Provenance
Optional data lineage when the inputs came from a provider.
unitless by name
Optional
No @default declared; consult the signature and description.
call.explain().return.value
number
The computed value. Never `NaN` or `±Infinity`: a value the model cannot produce is `null` beside a diagnostic that says why (Law 7 — a warning never licenses a non-finite number).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
call.explain(input)
Black76Input

unitless by name
Required / declared member
No @default declared; consult the signature and description.
call.explain(input).forward
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
call.explain(input).riskFreeRate
number

decimal rate (0.05 = 5%)
Required / declared member
No @default declared; consult the signature and description.
call.explain(input).strike
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
call.explain(input).timeToExpiryYears
number

years (decimal)
Required / declared member
No @default declared; consult the signature and description.
call.explain(input).volatility
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks
Facade<Black76TypedInput, ExtendedGreeks>

unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks().return.charm
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks().return.color
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks().return.delta
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks().return.gamma
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks().return.lambda
number | null
Elasticity / effective leverage `Λ = Δ·S / V` (dimensionless). `null` when the price underflows to zero (deep-OTM): elasticity is undefined at V = 0 and is disclosed as null with a `greeks.lambda_undefined` warning on explained paths — never NaN/Infinity (Law 7).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks().return.phi
number
Dividend rho (epsilon) `ε = ∂V/∂q`, per 1% dividend yield (scaled like `rho`).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks().return.rho
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks().return.speed
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks().return.theta
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks().return.ultima
number
`∂vomma/∂σ = ∂³V/∂σ³` (raw).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks().return.vanna
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks().return.vega
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks().return.vera
number
`∂rho/∂σ = ∂²V/∂r∂σ` (raw, per 1.00 σ; rho here is per 1.00 rate).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks().return.veta
number
`∂vega/∂T` (raw, per year of time-to-expiry; vega here is per 1.00 σ) — the ∂/∂T sibling of vega.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks().return.vomma
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks().return.zomma
number
`∂Γ/∂σ = ∂³V/∂S²∂σ` (raw, per 1.00 σ).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks(input)
Black76TypedInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks(input).forward
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks(input).riskFreeRate
number

decimal rate (0.05 = 5%)
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks(input).strike
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks(input).timeToExpiryYears
number

years (decimal)
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks(input).type
OptionType

unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks(input).volatility
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks.explain
(input: Black76TypedInput) => Computed<ExtendedGreeks, Record<never, never>>

unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks.explain().return.assumptions
Assumptions<Record<never, never>>
Every applied convention, echoed back.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks.explain().return.diagnostics
Diagnostics
How the value was computed, plus any warnings.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks.explain().return.provenance
import('@insiderfinance/totalfinance/core').Provenance
Optional data lineage when the inputs came from a provider.
unitless by name
Optional
No @default declared; consult the signature and description.
extendedGreeks.explain().return.value
ExtendedGreeks
The computed value. Never `NaN` or `±Infinity`: a value the model cannot produce is `null` beside a diagnostic that says why (Law 7 — a warning never licenses a non-finite number).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks.explain(input)
Black76TypedInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks.explain(input).forward
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks.explain(input).riskFreeRate
number

decimal rate (0.05 = 5%)
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks.explain(input).strike
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks.explain(input).timeToExpiryYears
number

years (decimal)
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks.explain(input).type
OptionType

unitless by name
Required / declared member
No @default declared; consult the signature and description.
extendedGreeks.explain(input).volatility
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
greeks
Facade<Black76TypedInput, Greeks>

unitless by name
Required / declared member
No @default declared; consult the signature and description.
greeks().return.delta
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
greeks().return.gamma
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
greeks().return.rho
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
greeks().return.theta
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
greeks().return.vega
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
greeks(input)
Black76TypedInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
greeks(input).forward
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
greeks(input).riskFreeRate
number

decimal rate (0.05 = 5%)
Required / declared member
No @default declared; consult the signature and description.
greeks(input).strike
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
greeks(input).timeToExpiryYears
number

years (decimal)
Required / declared member
No @default declared; consult the signature and description.
greeks(input).type
OptionType

unitless by name
Required / declared member
No @default declared; consult the signature and description.
greeks(input).volatility
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
greeks.explain
(input: Black76TypedInput) => Computed<Greeks, Record<never, never>>

unitless by name
Required / declared member
No @default declared; consult the signature and description.
greeks.explain().return.assumptions
Assumptions<Record<never, never>>
Every applied convention, echoed back.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
greeks.explain().return.diagnostics
Diagnostics
How the value was computed, plus any warnings.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
greeks.explain().return.provenance
import('@insiderfinance/totalfinance/core').Provenance
Optional data lineage when the inputs came from a provider.
unitless by name
Optional
No @default declared; consult the signature and description.
greeks.explain().return.value
Greeks
The computed value. Never `NaN` or `±Infinity`: a value the model cannot produce is `null` beside a diagnostic that says why (Law 7 — a warning never licenses a non-finite number).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
greeks.explain(input)
Black76TypedInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
greeks.explain(input).forward
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
greeks.explain(input).riskFreeRate
number

decimal rate (0.05 = 5%)
Required / declared member
No @default declared; consult the signature and description.
greeks.explain(input).strike
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
greeks.explain(input).timeToExpiryYears
number

years (decimal)
Required / declared member
No @default declared; consult the signature and description.
greeks.explain(input).type
OptionType

unitless by name
Required / declared member
No @default declared; consult the signature and description.
greeks.explain(input).volatility
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
impliedVolatility
Facade<Black76ImpliedVolatilityInput, number, Record<never, never>, number | null>

unitless by name
Required / declared member
No @default declared; consult the signature and description.
impliedVolatility(input)
Black76ImpliedVolatilityInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
impliedVolatility(input).forward
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
impliedVolatility(input).price
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
impliedVolatility(input).riskFreeRate
number

decimal rate (0.05 = 5%)
Required / declared member
No @default declared; consult the signature and description.
impliedVolatility(input).strike
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
impliedVolatility(input).timeToExpiryYears
number

years (decimal)
Required / declared member
No @default declared; consult the signature and description.
impliedVolatility(input).type
OptionType

unitless by name
Required / declared member
No @default declared; consult the signature and description.
impliedVolatility.explain
(input: Black76ImpliedVolatilityInput) => Computed<number | null, Record<never, never>>

unitless by name
Required / declared member
No @default declared; consult the signature and description.
impliedVolatility.explain().return.assumptions
Assumptions<Record<never, never>>
Every applied convention, echoed back.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
impliedVolatility.explain().return.diagnostics
Diagnostics
How the value was computed, plus any warnings.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
impliedVolatility.explain().return.provenance
import('@insiderfinance/totalfinance/core').Provenance
Optional data lineage when the inputs came from a provider.
unitless by name
Optional
No @default declared; consult the signature and description.
impliedVolatility.explain().return.value
number | null
The computed value. Never `NaN` or `±Infinity`: a value the model cannot produce is `null` beside a diagnostic that says why (Law 7 — a warning never licenses a non-finite number).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
impliedVolatility.explain(input)
Black76ImpliedVolatilityInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
impliedVolatility.explain(input).forward
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
impliedVolatility.explain(input).price
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
impliedVolatility.explain(input).riskFreeRate
number

decimal rate (0.05 = 5%)
Required / declared member
No @default declared; consult the signature and description.
impliedVolatility.explain(input).strike
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
impliedVolatility.explain(input).timeToExpiryYears
number

years (decimal)
Required / declared member
No @default declared; consult the signature and description.
impliedVolatility.explain(input).type
OptionType

unitless by name
Required / declared member
No @default declared; consult the signature and description.
price
Facade<Black76TypedInput, number>

unitless by name
Required / declared member
No @default declared; consult the signature and description.
price(input)
Black76TypedInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
price(input).forward
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
price(input).riskFreeRate
number

decimal rate (0.05 = 5%)
Required / declared member
No @default declared; consult the signature and description.
price(input).strike
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
price(input).timeToExpiryYears
number

years (decimal)
Required / declared member
No @default declared; consult the signature and description.
price(input).type
OptionType

unitless by name
Required / declared member
No @default declared; consult the signature and description.
price(input).volatility
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
price.explain
(input: Black76TypedInput) => Computed<number, Record<never, never>>

unitless by name
Required / declared member
No @default declared; consult the signature and description.
price.explain().return.assumptions
Assumptions<Record<never, never>>
Every applied convention, echoed back.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
price.explain().return.diagnostics
Diagnostics
How the value was computed, plus any warnings.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
price.explain().return.provenance
import('@insiderfinance/totalfinance/core').Provenance
Optional data lineage when the inputs came from a provider.
unitless by name
Optional
No @default declared; consult the signature and description.
price.explain().return.value
number
The computed value. Never `NaN` or `±Infinity`: a value the model cannot produce is `null` beside a diagnostic that says why (Law 7 — a warning never licenses a non-finite number).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
price.explain(input)
Black76TypedInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
price.explain(input).forward
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
price.explain(input).riskFreeRate
number

decimal rate (0.05 = 5%)
Required / declared member
No @default declared; consult the signature and description.
price.explain(input).strike
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
price.explain(input).timeToExpiryYears
number

years (decimal)
Required / declared member
No @default declared; consult the signature and description.
price.explain(input).type
OptionType

unitless by name
Required / declared member
No @default declared; consult the signature and description.
price.explain(input).volatility
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
put
Facade<Black76Input, number>

unitless by name
Required / declared member
No @default declared; consult the signature and description.
put(input)
Black76Input

unitless by name
Required / declared member
No @default declared; consult the signature and description.
put(input).forward
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
put(input).riskFreeRate
number

decimal rate (0.05 = 5%)
Required / declared member
No @default declared; consult the signature and description.
put(input).strike
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
put(input).timeToExpiryYears
number

years (decimal)
Required / declared member
No @default declared; consult the signature and description.
put(input).volatility
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
put.explain
(input: Black76Input) => Computed<number, Record<never, never>>

unitless by name
Required / declared member
No @default declared; consult the signature and description.
put.explain().return.assumptions
Assumptions<Record<never, never>>
Every applied convention, echoed back.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
put.explain().return.diagnostics
Diagnostics
How the value was computed, plus any warnings.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
put.explain().return.provenance
import('@insiderfinance/totalfinance/core').Provenance
Optional data lineage when the inputs came from a provider.
unitless by name
Optional
No @default declared; consult the signature and description.
put.explain().return.value
number
The computed value. Never `NaN` or `±Infinity`: a value the model cannot produce is `null` beside a diagnostic that says why (Law 7 — a warning never licenses a non-finite number).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
put.explain(input)
Black76Input

unitless by name
Required / declared member
No @default declared; consult the signature and description.
put.explain(input).forward
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
put.explain(input).riskFreeRate
number

decimal rate (0.05 = 5%)
Required / declared member
No @default declared; consult the signature and description.
put.explain(input).strike
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
put.explain(input).timeToExpiryYears
number

years (decimal)
Required / declared member
No @default declared; consult the signature and description.
put.explain(input).volatility
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
Stability, warnings & conventions
stable-by-law (pre-1.0; not a 1.0 stability guarantee)

Declared field units are shown above. “Unitless by name” means the name alone does not establish a unit, not that a financial quantity has none. Check source descriptions, conventions, and the returned diagnostics. Errors and warnings are part of the result contract.

function

black76ExtendedGreeks

Black-76 higher-order Greeks (w.r.t. the forward `F`). The forward-price derivatives (vanna, charm, vomma, speed, color, zomma, veta, ultima) coincide with BSM's at `S = F`, `q = r` — Black-76 has the same `d1`/`d2` and discount as that BSM instance — so they are borrowed from {@link blackScholesExtendedGreeks}; the forward-model-specific ones are computed directly: - `vera` = ∂rho/∂σ = ∂(−T·price)/∂σ = −T·vega, - `phi` = 0 (the forward model has no dividend yield; carry is embedded in `F`), - `lambda` = Δ·F/V. First-order fields (theta/rho) come from {@link black76Greeks}, which are the Black-76 conventions.

export declare function black76ExtendedGreeks(input: Black76TypedInput): ExtendedGreeks;
Fields, parameters & returned members (23)
Name / typeMeaning & unitOptional / default
(input)
Black76TypedInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).forward
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).riskFreeRate
number

decimal rate (0.05 = 5%)
Required / declared member
No @default declared; consult the signature and description.
(input).strike
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).timeToExpiryYears
number

years (decimal)
Required / declared member
No @default declared; consult the signature and description.
(input).type
OptionType

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).volatility
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.charm
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.color
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.delta
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.gamma
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.lambda
number | null
Elasticity / effective leverage `Λ = Δ·S / V` (dimensionless). `null` when the price underflows to zero (deep-OTM): elasticity is undefined at V = 0 and is disclosed as null with a `greeks.lambda_undefined` warning on explained paths — never NaN/Infinity (Law 7).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.phi
number
Dividend rho (epsilon) `ε = ∂V/∂q`, per 1% dividend yield (scaled like `rho`).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.rho
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.speed
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.theta
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.ultima
number
`∂vomma/∂σ = ∂³V/∂σ³` (raw).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.vanna
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.vega
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.vera
number
`∂rho/∂σ = ∂²V/∂r∂σ` (raw, per 1.00 σ; rho here is per 1.00 rate).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.veta
number
`∂vega/∂T` (raw, per year of time-to-expiry; vega here is per 1.00 σ) — the ∂/∂T sibling of vega.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.vomma
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.zomma
number
`∂Γ/∂σ = ∂³V/∂S²∂σ` (raw, per 1.00 σ).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
Stability, warnings & conventions
stable-by-law (pre-1.0; not a 1.0 stability guarantee)

Declared field units are shown above. “Unitless by name” means the name alone does not establish a unit, not that a financial quantity has none. Check source descriptions, conventions, and the returned diagnostics. Errors and warnings are part of the result contract.

function

black76Greeks

Black-76 first-order Greeks (theta/day, vega/1%, rho/1%; delta/gamma w.r.t. the forward).

export declare function black76Greeks(input: Black76TypedInput): Greeks;
Fields, parameters & returned members (12)
Name / typeMeaning & unitOptional / default
(input)
Black76TypedInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).forward
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).riskFreeRate
number

decimal rate (0.05 = 5%)
Required / declared member
No @default declared; consult the signature and description.
(input).strike
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).timeToExpiryYears
number

years (decimal)
Required / declared member
No @default declared; consult the signature and description.
(input).type
OptionType

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).volatility
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.delta
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.gamma
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.rho
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.theta
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.vega
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
Stability, warnings & conventions
stable-by-law (pre-1.0; not a 1.0 stability guarantee)

Declared field units are shown above. “Unitless by name” means the name alone does not establish a unit, not that a financial quantity has none. Check source descriptions, conventions, and the returned diagnostics. Errors and warnings are part of the result contract.

function

black76ImpliedVolatility

Solve Black-76 implied volatility. Reports failure honestly; never fabricates a value. Bounds and endpoint acceptance follow the same RELATIVE-tolerance rules as the BSM kernel (see {@link impliedVolatilityPriceTolerance}): a target below the σ→0 price floor fails as `price_below_resolvable`, and a target at the σ→∞ upper bound as `above_max_bound`.

export declare function black76ImpliedVolatility(input: Black76ImpliedVolatilityInput): Black76ImpliedVolatilityResult;
Fields, parameters & returned members (12)
Name / typeMeaning & unitOptional / default
(input)
Black76ImpliedVolatilityInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).forward
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).price
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).riskFreeRate
number

decimal rate (0.05 = 5%)
Required / declared member
No @default declared; consult the signature and description.
(input).strike
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).timeToExpiryYears
number

years (decimal)
Required / declared member
No @default declared; consult the signature and description.
(input).type
OptionType

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.converged
boolean

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.iterations
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.message
string
Explanatory detail when a usable numeric pricing bracket cannot be established.
unitless by name
Optional
No @default declared; consult the signature and description.
return.reason
'below_intrinsic' | 'above_max_bound' | 'price_below_resolvable' | 'no_bracket' | 'max_iterations'

unitless by name
Optional
No @default declared; consult the signature and description.
return.value
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
Stability, warnings & conventions
stable-by-law (pre-1.0; not a 1.0 stability guarantee)

Declared field units are shown above. “Unitless by name” means the name alone does not establish a unit, not that a financial quantity has none. Check source descriptions, conventions, and the returned diagnostics. Errors and warnings are part of the result contract.

function

black76Price

Black-76 price. The second seed defect named in the spec, and the same shape as the first: omitting `volatility` made `sigma` `undefined`, `d1` `NaN`, and the returned price `NaN` — a success-typed wrong number.

export declare function black76Price(input: Black76TypedInput): number;
Fields, parameters & returned members (7)
Name / typeMeaning & unitOptional / default
(input)
Black76TypedInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).forward
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).riskFreeRate
number

decimal rate (0.05 = 5%)
Required / declared member
No @default declared; consult the signature and description.
(input).strike
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).timeToExpiryYears
number

years (decimal)
Required / declared member
No @default declared; consult the signature and description.
(input).type
OptionType

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).volatility
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
Stability, warnings & conventions
stable-by-law (pre-1.0; not a 1.0 stability guarantee)

Declared field units are shown above. “Unitless by name” means the name alone does not establish a unit, not that a financial quantity has none. Check source descriptions, conventions, and the returned diagnostics. Errors and warnings are part of the result contract.

function

black76PriceBounds

No-arbitrage price bounds for Black-76.

export declare function black76PriceBounds(input: Black76PriceBoundsInput): { lower: number; upper: number; };
Fields, parameters & returned members (8)
Name / typeMeaning & unitOptional / default
(input)
Black76PriceBoundsInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).forward
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).riskFreeRate
number

decimal rate (0.05 = 5%)
Required / declared member
No @default declared; consult the signature and description.
(input).strike
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).timeToExpiryYears
number

years (decimal)
Required / declared member
No @default declared; consult the signature and description.
(input).type
OptionType

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.lower
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.upper
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
Stability, warnings & conventions
stable-by-law (pre-1.0; not a 1.0 stability guarantee)

Declared field units are shown above. “Unitless by name” means the name alone does not establish a unit, not that a financial quantity has none. Check source descriptions, conventions, and the returned diagnostics. Errors and warnings are part of the result contract.