The finance developer workbenchSearch the reference Development · 0.1.4 · unpublished

Public API / @insiderfinance/totalfinance

@insiderfinance/totalfinance/options/local-volatility

import from '@insiderfinance/totalfinance/options/local-volatility'

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

Jump to an export (16)

DupireLocalVolatilityInput · DupireOptions · ImpliedVolatilityFunction · LocalVolatilityFunction · LocalVolatilityGridSpecification · LocalVolatilityInput · LocalVolatilityMarket · LocalVolatilityMonteCarloEstimateInput · LocalVolatilityMonteCarloOptions · LocalVolatilityMonteCarloResult · LocalVolatilityPriceMonteCarloRequest · dupireLocalVolatility · localVolatility · localVolatilityGrid · localVolatilityMonteCarloEstimate · localVolatilityMonteCarloPrice

interface

DupireLocalVolatilityInput

One cohesive request for construction of a Dupire local-volatility function.

/** One cohesive request for construction of a Dupire local-volatility function. */
export interface DupireLocalVolatilityInput {
    impliedVolatility: ImpliedVolatilityFunction;
    market: LocalVolatilityMarket;
    options?: DupireOptions;
}
Fields, parameters & returned members (11)
Name / typeMeaning & unitOptional / default
impliedVolatility
ImpliedVolatilityFunction

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

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

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

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

decimal rate (0.05 = 5%)
Optional
No @default declared; consult the signature and description.
market.riskFreeRate
number

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

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

unitless by name
Optional
No @default declared; consult the signature and description.
options.floorVolatility
number
Floor for local vol (default 1e-3) — also the clamp when a local arbitrage drives σ_loc² ≤ 0.
unitless by name
Optional
No @default declared; consult the signature and description.
options.logMoneynessStep
number
Log-moneyness finite-difference step (default 0.01).
unitless by name
Optional
No @default declared; consult the signature and description.
options.timeStepYears
number
Time finite-difference step in years (default 1/365).
years (decimal)
Optional
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

DupireOptions

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

export interface DupireOptions {
    /** Log-moneyness finite-difference step (default 0.01). */
    logMoneynessStep?: number;
    /** Time finite-difference step in years (default 1/365). */
    timeStepYears?: number;
    /** Floor for local vol (default 1e-3) — also the clamp when a local arbitrage drives σ_loc² ≤ 0. */
    floorVolatility?: number;
}
Fields, parameters & returned members (3)
Name / typeMeaning & unitOptional / default
floorVolatility
number
Floor for local vol (default 1e-3) — also the clamp when a local arbitrage drives σ_loc² ≤ 0.
unitless by name
Optional
No @default declared; consult the signature and description.
logMoneynessStep
number
Log-moneyness finite-difference step (default 0.01).
unitless by name
Optional
No @default declared; consult the signature and description.
timeStepYears
number
Time finite-difference step in years (default 1/365).
years (decimal)
Optional
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

ImpliedVolatilityFunction

A market implied-volatility surface as a function of strike and time-to-expiry (years).

/** A market implied-volatility surface as a function of strike and time-to-expiry (years). */
export type ImpliedVolatilityFunction = (strike: number, timeToExpiryYears: number) => number;
Fields, parameters & returned members (2)
Name / typeMeaning & unitOptional / default
(strike)
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(timeToExpiryYears)
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

LocalVolatilityFunction

Local volatility as a function of underlying level and time (years).

/** Local volatility as a function of underlying level and time (years). */
export type LocalVolatilityFunction = (level: number, timeToExpiryYears: number) => number;
Fields, parameters & returned members (2)
Name / typeMeaning & unitOptional / default
(level)
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(timeToExpiryYears)
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

LocalVolatilityGridSpecification

Grid specification for {@link localVolatilityGrid}: strictly-ascending level and time knots.

/** Grid specification for {@link localVolatilityGrid}: strictly-ascending level and time knots. */
export interface LocalVolatilityGridSpecification {
    /** Underlying levels, ascending (e.g. 0.4·S₀ … 2.5·S₀). */
    levels: number[];
    /** Times in years, ascending (e.g. up to the longest expiry priced). */
    times: number[];
}
Fields, parameters & returned members (2)
Name / typeMeaning & unitOptional / default
levels
number[]
Underlying levels, ascending (e.g. 0.4·S₀ … 2.5·S₀).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
times
number[]
Times in years, ascending (e.g. up to the longest expiry priced).
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

LocalVolatilityInput

Market inputs for a local-volatility MC price.

/** Market inputs for a local-volatility MC price. */
export interface LocalVolatilityInput {
    spot: number;
    strike: number;
    timeToExpiryYears: number;
    riskFreeRate: number;
    dividendYield?: number;
}
Fields, parameters & returned members (5)
Name / typeMeaning & unitOptional / default
dividendYield
number

decimal rate (0.05 = 5%)
Optional
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.
spot
number

unitless by name
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.
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

LocalVolatilityMarket

Market context the Dupire transform needs to convert strikes to moneyness.

/** Market context the Dupire transform needs to convert strikes to moneyness. */
export interface LocalVolatilityMarket {
    spot: number;
    riskFreeRate: number;
    dividendYield?: number;
}
Fields, parameters & returned members (3)
Name / typeMeaning & unitOptional / default
dividendYield
number

decimal rate (0.05 = 5%)
Optional
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.
spot
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

LocalVolatilityMonteCarloEstimateInput

Complete, assumption-light inputs for one raw local-volatility Monte-Carlo estimate.

/** Complete, assumption-light inputs for one raw local-volatility Monte-Carlo estimate. */
export interface LocalVolatilityMonteCarloEstimateInput {
    type: OptionType;
    spot: number;
    strike: number;
    timeToExpiryYears: number;
    riskFreeRate: number;
    dividendYield: number;
    localVolatility: LocalVolatilityFunction;
    options: LocalVolatilityMonteCarloOptions;
}
Fields, parameters & returned members (18)
Name / typeMeaning & unitOptional / default
dividendYield
number

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

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

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
options.antithetic
boolean
Antithetic variates (pseudo only; ignored for QMC). Default `true`.
unitless by name
Optional
No @default declared; consult the signature and description.
options.brownianBridge
boolean
Brownian-bridge path ordering (QMC only; concentrates variance in the leading dimensions).
unitless by name
Optional
No @default declared; consult the signature and description.
options.confidence
number
Confidence level for the interval (default 0.95).
unitless by name
Optional
No @default declared; consult the signature and description.
options.method
import('@insiderfinance/totalfinance/options').MonteCarloMethod
Sampling method (default `'pseudo'`).
unitless by name
Optional
No @default declared; consult the signature and description.
options.paths
number
Number of paths (antithetic pairs when `antithetic`). Default 50_000.
unitless by name
Optional
No @default declared; consult the signature and description.
options.randomNumberGenerator
import('@insiderfinance/totalfinance/options').MonteCarloRandomNumberGenerator
PRNG for `method: 'pseudo'` (default `'mulberry32'`).
unitless by name
Optional
No @default declared; consult the signature and description.
options.seed
number
Seed — required and echoed for reproducibility.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
options.steps
number
Time steps per path (default 100).
unitless by name
Optional
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.
spot
number

unitless by name
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

LocalVolatilityMonteCarloOptions

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

export interface LocalVolatilityMonteCarloOptions extends MonteCarloSamplingOptions {
    /** Time steps per path (default 100). */
    steps?: number;
}
Fields, parameters & returned members (8)
Name / typeMeaning & unitOptional / default
antithetic
boolean
Antithetic variates (pseudo only; ignored for QMC). Default `true`.
unitless by name
Optional
No @default declared; consult the signature and description.
brownianBridge
boolean
Brownian-bridge path ordering (QMC only; concentrates variance in the leading dimensions).
unitless by name
Optional
No @default declared; consult the signature and description.
confidence
number
Confidence level for the interval (default 0.95).
unitless by name
Optional
No @default declared; consult the signature and description.
method
import('@insiderfinance/totalfinance/options').MonteCarloMethod
Sampling method (default `'pseudo'`).
unitless by name
Optional
No @default declared; consult the signature and description.
paths
number
Number of paths (antithetic pairs when `antithetic`). Default 50_000.
unitless by name
Optional
No @default declared; consult the signature and description.
randomNumberGenerator
import('@insiderfinance/totalfinance/options').MonteCarloRandomNumberGenerator
PRNG for `method: 'pseudo'` (default `'mulberry32'`).
unitless by name
Optional
No @default declared; consult the signature and description.
seed
number
Seed — required and echoed for reproducibility.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
steps
number
Time steps per path (default 100).
unitless by name
Optional
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

LocalVolatilityMonteCarloResult

A local-volatility MC result enriched with the Monte-Carlo error statistics.

/** A local-volatility MC result enriched with the Monte-Carlo error statistics. */
export interface LocalVolatilityMonteCarloResult extends PriceResult {
    monteCarlo: MonteCarloStatistics;
}
Fields, parameters & returned members (74)
Name / typeMeaning & unitOptional / default
assumptions
Assumptions<Record<never, never>>
Every applied convention, echoed back.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
assumptions.asOf
number

an instant: epoch milliseconds or a YYYY-MM-DD / zoned ISO string (the resolveAsOf convention)
Optional
No @default declared; consult the signature and description.
assumptions.calendar
string

unitless by name
Optional
No @default declared; consult the signature and description.
assumptions.calendarVersion
string

unitless by name
Optional
No @default declared; consult the signature and description.
assumptions.compounding
import('@insiderfinance/totalfinance/core').InterestCompounding

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

per year (count)
Required / declared member
No @default declared; consult the signature and description.
assumptions.compounding.type
'periodic'

unitless by name
Required / declared member
No @default declared; consult the signature and description.
assumptions.conventionsVersion
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
assumptions.dayCount
import('@insiderfinance/totalfinance/core').DayCount

count (integer)
Optional
No @default declared; consult the signature and description.
assumptions.dividendModel
import('@insiderfinance/totalfinance/core').DividendModel

unitless by name
Optional
No @default declared; consult the signature and description.
assumptions.engine
string

unitless by name
Optional
No @default declared; consult the signature and description.
assumptions.expiryConvention
'us-equity-close' | 'explicit-instant'
How the contract's expiry label was resolved to an instant: `'us-equity-close'` when a date-only `YYYY-MM-DD` expiry resolved to the US equity/options close — 16:00 America/New_York, or 13:00 on an early-close day; `'explicit-instant'` when the caller supplied a zoned datetime. Named so the convention is never silent (alignment spec P1.6); instrument builders own the full story in Phase 3.
unitless by name
Optional
No @default declared; consult the signature and description.
assumptions.model
string

unitless by name
Optional
No @default declared; consult the signature and description.
assumptions.seed
number
The randomness seed this result was computed under — REQUIRED echo for a `randomness: 'seeded'` Pricer (Gate C, 2026-08-23): a stochastic result that does not name its seed cannot be replayed from the result alone. Deterministic paths never set it.
unitless by name
Optional
No @default declared; consult the signature and description.
assumptions.timeToExpiryConvention
never

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

years (decimal)
Optional
No @default declared; consult the signature and description.
assumptions.units
import('@insiderfinance/totalfinance/core').GreekUnits

unitless by name
Optional
No @default declared; consult the signature and description.
assumptions.units.rho
import('@insiderfinance/totalfinance/core').RhoUnit

unitless by name
Required / declared member
No @default declared; consult the signature and description.
assumptions.units.theta
import('@insiderfinance/totalfinance/core').ThetaUnit

unitless by name
Required / declared member
No @default declared; consult the signature and description.
assumptions.units.vega
import('@insiderfinance/totalfinance/core').VegaUnit

unitless by name
Required / declared member
No @default declared; consult the signature and description.
diagnostics
Diagnostics
How the value was computed, plus any warnings.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
diagnostics.autoReason
string
When a meta-engine (e.g. `engines.auto()`) selected a delegate, this is a one-sentence, human-readable explanation of WHY that delegate was chosen (`engine` then names the delegate). Absent when no auto-selection took place.
unitless by name
Optional
No @default declared; consult the signature and description.
diagnostics.converged
boolean
Whether an iterative procedure converged. `false` means the value is not trustworthy.
unitless by name
Optional
No @default declared; consult the signature and description.
diagnostics.decomposition
Record<string, number>
Named intermediate quantities the value decomposes into — a par spread's protection leg and risky annuity, a forward variance's near/far legs. The H-series explain paths disclose their arithmetic here so a caller can audit the ratio, not just receive it (3B.3).
unitless by name
Optional
No @default declared; consult the signature and description.
diagnostics.engine
string
Pricing/solver engine name, e.g. `black-scholes-merton`.
unitless by name
Optional
No @default declared; consult the signature and description.
diagnostics.finiteDifferenceBumps
Record<string, number>
Finite-difference engines: the ACTUAL bump sizes used for FD Greeks (spec P2.3) — adaptive near the vol/time boundaries, so the caller can see exactly what was differenced. Keys: `spotStep`, `volatilityStep`, `timeStepYears`, `rateStep`, and — extended Greeks only — `dividendYieldStep`. Each is the actual step differenced, in the unit of the coordinate it bumps. (This doc named the retired `hS`/`hSig`/`hT`/`hR`/`hQ` keys for one release after the emit sites had moved to the semantic names, so a caller following it read `undefined`.)
unitless by name
Optional
No @default declared; consult the signature and description.
diagnostics.iterations
number
Iteration count for iterative methods.
unitless by name
Optional
No @default declared; consult the signature and description.
diagnostics.method
string
Numerical method, e.g. `closed-form`, `brent`, `finite-difference`.
unitless by name
Optional
No @default declared; consult the signature and description.
diagnostics.selection
import('@insiderfinance/totalfinance/core/pricing').SelectionReport
The structured engine-selection report (Gate C, `@insiderfinance/totalfinance/core/pricing`): who was selected, why, and — for automatic selection — every candidate considered with its verdict. This is the machine-readable superset of `engine` + `autoReason` (which remain for compatibility); `selected.name` always agrees with `engine` when both are present.
unitless by name
Optional
No @default declared; consult the signature and description.
diagnostics.selection.candidates
readonly import('@insiderfinance/totalfinance/core/pricing').SelectionCandidate[]
Candidates an automatic selection considered; absent for explicit mode.
unitless by name
Optional
No @default declared; consult the signature and description.
diagnostics.selection.mode
'explicit' | 'automatic'

unitless by name
Required / declared member
No @default declared; consult the signature and description.
diagnostics.selection.reason
string
Why the selected engine answers this request.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
diagnostics.selection.selected
{ name: string; version?: string; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
diagnostics.selection.selected.name
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
diagnostics.selection.selected.version
string

unitless by name
Optional
No @default declared; consult the signature and description.
diagnostics.timingMs
number
Wall-clock timing in milliseconds, when measured.
milliseconds
Optional
No @default declared; consult the signature and description.
diagnostics.warmup
number
Series facades: number of leading output slots that are warmup sentinels (null/NaN) while the computation seeds. Equals the input length when the indicator never emitted.
unitless by name
Optional
No @default declared; consult the signature and description.
diagnostics.warnings
import('@insiderfinance/totalfinance/core').QuantWarning[]
Structured warnings; always present (possibly empty).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
greeks
import('@insiderfinance/totalfinance/options').Greeks | import('@insiderfinance/totalfinance/options').ExtendedGreeks

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

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

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
greeks.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.
greeks.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.
greeks.rho
number

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

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

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
greeks.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.
greeks.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.
greeks.vomma
number

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarlo.confidenceInterval
[number, number] | null
Confidence interval at the requested level (default 95%); null for unsupported QMC uncertainty or unrepresentable endpoints (disclosed with nonconvergence), even when standardError is positive.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarlo.method
import('@insiderfinance/totalfinance/options').MonteCarloMethod
The sampling method actually used (may differ from the request if QMC fell back to pseudo).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarlo.paths
number
Number of paths actually evaluated (antithetic pairs count as one path).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarlo.seed
number
The seed, echoed for reproducibility.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarlo.standardError
number | null
Standard error of the mean estimate — `null` for the QUASI-random methods (`sobol`, `halton`). The sample-variance formula `√(s²/n)` assumes independent draws. A low-discrepancy sequence is deterministic and negatively correlated by construction, so that formula does not estimate its error: at 16k Sobol points on a European call it overstated the true deviation by ~75×, and a confidence interval built from it was neither a confidence nor an interval. QMC error is estimated by RANDOMIZING the sequence (scrambling/shifting) and taking the variance ACROSS independent randomizations — which this estimator does not do, so it reports `null` and says so.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarlo.varianceReduction
import('@insiderfinance/totalfinance/options').VarianceReduction
Which variance-reduction techniques were applied.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarlo.varianceReduction.antithetic
boolean

unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarlo.varianceReduction.brownianBridge
boolean

unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarlo.varianceReduction.controlVariate
boolean

unitless by name
Required / declared member
No @default declared; consult the signature and description.
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.
provenance.asOf
number

an instant: epoch milliseconds or a YYYY-MM-DD / zoned ISO string (the resolveAsOf convention)
Optional
No @default declared; consult the signature and description.
provenance.dataset
string

unitless by name
Optional
No @default declared; consult the signature and description.
provenance.provider
string

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

unitless by name
Optional
No @default declared; consult the signature and description.
provenance.requestId
string

unitless by name
Optional
No @default declared; consult the signature and description.
provenance.sourceVersion
string

unitless by name
Optional
No @default declared; consult the signature and description.
provenance.warnings
import('@insiderfinance/totalfinance/core').QuantWarning[]

unitless by name
Optional
No @default declared; consult the signature and description.
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.
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

LocalVolatilityPriceMonteCarloRequest

One cohesive request for the validated local-volatility Monte-Carlo pricer.

/** One cohesive request for the validated local-volatility Monte-Carlo pricer. */
export interface LocalVolatilityPriceMonteCarloRequest {
    type: OptionType;
    input: LocalVolatilityInput;
    localVolatility: LocalVolatilityFunction;
    options: LocalVolatilityMonteCarloOptions;
}
Fields, parameters & returned members (19)
Name / typeMeaning & unitOptional / default
input
LocalVolatilityInput

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

decimal rate (0.05 = 5%)
Optional
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.spot
number

unitless by name
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.
localVolatility
LocalVolatilityFunction

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

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
options.antithetic
boolean
Antithetic variates (pseudo only; ignored for QMC). Default `true`.
unitless by name
Optional
No @default declared; consult the signature and description.
options.brownianBridge
boolean
Brownian-bridge path ordering (QMC only; concentrates variance in the leading dimensions).
unitless by name
Optional
No @default declared; consult the signature and description.
options.confidence
number
Confidence level for the interval (default 0.95).
unitless by name
Optional
No @default declared; consult the signature and description.
options.method
import('@insiderfinance/totalfinance/options').MonteCarloMethod
Sampling method (default `'pseudo'`).
unitless by name
Optional
No @default declared; consult the signature and description.
options.paths
number
Number of paths (antithetic pairs when `antithetic`). Default 50_000.
unitless by name
Optional
No @default declared; consult the signature and description.
options.randomNumberGenerator
import('@insiderfinance/totalfinance/options').MonteCarloRandomNumberGenerator
PRNG for `method: 'pseudo'` (default `'mulberry32'`).
unitless by name
Optional
No @default declared; consult the signature and description.
options.seed
number
Seed — required and echoed for reproducibility.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
options.steps
number
Time steps per path (default 100).
unitless by name
Optional
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.

function

dupireLocalVolatility

Build the Dupire local-volatility function σ_loc(level, t) from an implied-vol surface. The returned function is pure and can be evaluated anywhere on the (level, t) plane; out-of-range or locally arbitrageable points are floored at `floorVolatility` rather than returning NaN. Expert kernel form (model-subpath surface) — the curated root surface is {@link localVolatility.fromImplied}.

export declare function dupireLocalVolatility(input: DupireLocalVolatilityInput): LocalVolatilityFunction;
Fields, parameters & returned members (4)
Name / typeMeaning & unitOptional / default
(input)
DupireLocalVolatilityInput

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

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

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

unitless by name
Optional
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

localVolatility

The local-volatility namespace — the grouped, discoverable surface over the flat local-volatility functions. `localVolatility.fromImplied` / `localVolatility.grid` / `localVolatility.monteCarloPrice` / `localVolatility.monteCarloEstimate` are the same functions; prefer the namespace over the deprecated flat exports.

export declare const localVolatility: { readonly fromImplied: (input: DupireLocalVolatilityInput) => LocalVolatilityFunction; readonly grid: (localVolatility: LocalVolatilityFunction, specification: LocalVolatilityGridSpecification) => LocalVolatilityFunction; readonly monteCarloEstimate: (input: LocalVolatilityMonteCarloEstimateInput) => MonteCarloEstimate; readonly monteCarloPrice: (request: LocalVolatilityPriceMonteCarloRequest) => LocalVolatilityMonteCarloResult; };
Fields, parameters & returned members (57)
Name / typeMeaning & unitOptional / default
fromImplied
(input: DupireLocalVolatilityInput) => LocalVolatilityFunction

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

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

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

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

unitless by name
Optional
No @default declared; consult the signature and description.
grid
(localVolatility: LocalVolatilityFunction, specification: LocalVolatilityGridSpecification) => LocalVolatilityFunction

unitless by name
Required / declared member
No @default declared; consult the signature and description.
grid(localVolatility)
LocalVolatilityFunction

unitless by name
Required / declared member
No @default declared; consult the signature and description.
grid(specification)
LocalVolatilityGridSpecification

unitless by name
Required / declared member
No @default declared; consult the signature and description.
grid(specification).levels
number[]
Underlying levels, ascending (e.g. 0.4·S₀ … 2.5·S₀).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
grid(specification).times
number[]
Times in years, ascending (e.g. up to the longest expiry priced).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarloEstimate
(input: LocalVolatilityMonteCarloEstimateInput) => MonteCarloEstimate

unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarloEstimate().return.confidenceInterval
[number, number] | null
Confidence interval at the requested level (default 95%); null for unsupported QMC uncertainty or unrepresentable endpoints (disclosed with nonconvergence), even when standardError is positive.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarloEstimate().return.converged
boolean
Whether the estimate is trustworthy (finite value and standard error).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarloEstimate().return.method
import('@insiderfinance/totalfinance/options').MonteCarloMethod
The sampling method actually used (may differ from the request if QMC fell back to pseudo).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarloEstimate().return.paths
number
Number of paths actually evaluated (antithetic pairs count as one path).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarloEstimate().return.seed
number
The seed, echoed for reproducibility.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarloEstimate().return.standardError
number | null
Standard error of the mean estimate — `null` for the QUASI-random methods (`sobol`, `halton`). The sample-variance formula `√(s²/n)` assumes independent draws. A low-discrepancy sequence is deterministic and negatively correlated by construction, so that formula does not estimate its error: at 16k Sobol points on a European call it overstated the true deviation by ~75×, and a confidence interval built from it was neither a confidence nor an interval. QMC error is estimated by RANDOMIZING the sequence (scrambling/shifting) and taking the variance ACROSS independent randomizations — which this estimator does not do, so it reports `null` and says so.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarloEstimate().return.value
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarloEstimate().return.varianceReduction
import('@insiderfinance/totalfinance/options').VarianceReduction
Which variance-reduction techniques were applied.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarloEstimate().return.warnings
import('@insiderfinance/totalfinance/core').QuantWarning[]
Structured warnings (e.g. a QMC dimension fallback).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarloEstimate(input)
LocalVolatilityMonteCarloEstimateInput

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

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

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

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

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

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

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarloPrice
(request: LocalVolatilityPriceMonteCarloRequest) => LocalVolatilityMonteCarloResult

currency amount (the field or record currency)
Required / declared member
No @default declared; consult the signature and description.
monteCarloPrice().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.
monteCarloPrice().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.
monteCarloPrice().return.greeks
import('@insiderfinance/totalfinance/options').Greeks | import('@insiderfinance/totalfinance/options').ExtendedGreeks

unitless by name
Optional
No @default declared; consult the signature and description.
monteCarloPrice().return.greeks.charm
number

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

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarloPrice().return.greeks.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.
monteCarloPrice().return.greeks.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.
monteCarloPrice().return.greeks.rho
number

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

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

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarloPrice().return.greeks.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.
monteCarloPrice().return.greeks.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.
monteCarloPrice().return.greeks.vomma
number

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarloPrice().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.
monteCarloPrice().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.
monteCarloPrice(request)
LocalVolatilityPriceMonteCarloRequest

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarloPrice(request).localVolatility
LocalVolatilityFunction

unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarloPrice(request).options
LocalVolatilityMonteCarloOptions

unitless by name
Required / declared member
No @default declared; consult the signature and description.
monteCarloPrice(request).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.

function

localVolatilityGrid

Precompute a local-volatility function onto a (level × time) grid and return a fast bilinear-interpolating `LocalVolatilityFunction`. The exact `dupireLocalVolatility` does ~4 surface evaluations per call — far too slow to run inside a Monte-Carlo step loop — so cache it once on a grid and interpolate. Off-grid queries clamp to the nearest edge (a documented, no-NaN extrapolation). Expert kernel form (model-subpath surface) — the curated root surface is {@link localVolatility.grid}.

export declare function localVolatilityGrid(localVolatility: LocalVolatilityFunction, specification: LocalVolatilityGridSpecification): LocalVolatilityFunction;
Fields, parameters & returned members (4)
Name / typeMeaning & unitOptional / default
(localVolatility)
LocalVolatilityFunction

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(specification)
LocalVolatilityGridSpecification

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(specification).levels
number[]
Underlying levels, ascending (e.g. 0.4·S₀ … 2.5·S₀).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
(specification).times
number[]
Times in years, ascending (e.g. up to the longest expiry priced).
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

localVolatilityMonteCarloEstimate

Low-level kernel: local-volatility Monte-Carlo estimate of the discounted European payoff. Expert kernel form (model-subpath surface) — the curated root surface is {@link localVolatility.monteCarloEstimate }.

export declare function localVolatilityMonteCarloEstimate(input: LocalVolatilityMonteCarloEstimateInput): MonteCarloEstimate;
Fields, parameters & returned members (18)
Name / typeMeaning & unitOptional / default
(input)
LocalVolatilityMonteCarloEstimateInput

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

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

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

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

unitless by name
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.confidenceInterval
[number, number] | null
Confidence interval at the requested level (default 95%); null for unsupported QMC uncertainty or unrepresentable endpoints (disclosed with nonconvergence), even when standardError is positive.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.converged
boolean
Whether the estimate is trustworthy (finite value and standard error).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.method
import('@insiderfinance/totalfinance/options').MonteCarloMethod
The sampling method actually used (may differ from the request if QMC fell back to pseudo).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.paths
number
Number of paths actually evaluated (antithetic pairs count as one path).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.seed
number
The seed, echoed for reproducibility.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.standardError
number | null
Standard error of the mean estimate — `null` for the QUASI-random methods (`sobol`, `halton`). The sample-variance formula `√(s²/n)` assumes independent draws. A low-discrepancy sequence is deterministic and negatively correlated by construction, so that formula does not estimate its error: at 16k Sobol points on a European call it overstated the true deviation by ~75×, and a confidence interval built from it was neither a confidence nor an interval. QMC error is estimated by RANDOMIZING the sequence (scrambling/shifting) and taking the variance ACROSS independent randomizations — which this estimator does not do, so it reports `null` and says so.
unitless by name
Required / declared member
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.
return.varianceReduction
import('@insiderfinance/totalfinance/options').VarianceReduction
Which variance-reduction techniques were applied.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.warnings
import('@insiderfinance/totalfinance/core').QuantWarning[]
Structured warnings (e.g. a QMC dimension fallback).
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

localVolatilityMonteCarloPrice

Price a European option under a local-volatility diffusion by Monte-Carlo. Pass a `LocalVolatilityFunction` (typically from {@link dupireLocalVolatility}); the result carries MC error statistics on `result.mc`. Expert kernel form (model-subpath surface) — the curated root surface is {@link localVolatility.monteCarloPrice }.

export declare function localVolatilityMonteCarloPrice(request: LocalVolatilityPriceMonteCarloRequest): LocalVolatilityMonteCarloResult;
Fields, parameters & returned members (27)
Name / typeMeaning & unitOptional / default
(request)
LocalVolatilityPriceMonteCarloRequest

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(request).localVolatility
LocalVolatilityFunction

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(request).options
LocalVolatilityMonteCarloOptions

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(request).type
OptionType

unitless by name
Required / declared member
No @default declared; consult the signature and description.
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.
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.
return.greeks
import('@insiderfinance/totalfinance/options').Greeks | import('@insiderfinance/totalfinance/options').ExtendedGreeks

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

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

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.greeks.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.greeks.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.greeks.rho
number

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

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

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.greeks.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.greeks.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.greeks.vomma
number

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
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.
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.
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.