(request)
ExposureInput<undefined> | unitless by name | Required / declared member No @default declared; consult the signature and description. |
(request).config
ExposureConfig | unitless by name | Required / declared member No @default declared; consult the signature and description. |
(request).market
ExposureMarket | unitless by name | Required / declared member No @default declared; consult the signature and description. |
(request).metrics
undefined | The exposures to compute, e.g. `['gex']` or `['gex', 'dex', 'vanna']`. Omit it for the full
profile (every metric, exactly as before). A selection — explicit, nonempty, each name once —
computes only those metrics and the Black–Scholes outputs they need, and is echoed in
`assumptions.metrics`; uncomputed metrics are absent from the result, never zero. unitless by name | Optional No @default declared; consult the signature and description. |
(request).quotes
OptionQuote[] | unitless by name | Required / declared member No @default declared; consult the signature and description. |
aggregate
ExposureAggregate<G, P> | unitless by name | Required / declared member No @default declared; consult the signature and description. |
assumptions
Assumptions<{ timeDecayDirection: 'perCalendarDayElapsed'; scanVolatilityPolicy: 'stickyStrike'; convention: { name: string; calls: number; puts: number; }; gammaUnit: GammaUnit; priceSource: PriceSource; minTimeToExpiry: number; defaultMultiplier: number; metrics?: readonly ExposureMetric[]; }> | 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.convention
{ name: string; calls: number; puts: number; } | The resolved sign convention (echoed; its caveat rides `diagnostics.warnings`). unitless by name | Required / declared member No @default declared; consult the signature and description. |
assumptions.convention.calls
number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
assumptions.convention.name
string | unitless by name | Required / declared member No @default declared; consult the signature and description. |
assumptions.convention.puts
number | 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.defaultMultiplier
number | Contract multiplier applied when a quote omits one. decimal fraction / multiple | Required / declared member 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.gammaUnit
GammaUnit | GEX unit: `per1PercentMove` (spec formula) or `perPoint`. unitless by name | Required / declared member No @default declared; consult the signature and description. |
assumptions.metrics
readonly ExposureMetric[] | The metrics this profile computed, as requested. Present only when `metrics` was passed; a
profile without it is the full profile (every metric). unitless by name | Optional No @default declared; consult the signature and description. |
assumptions.minTimeToExpiry
number | Contracts with time-to-expiry (years) at/below this were skipped. unitless by name | Required / declared member No @default declared; consult the signature and description. |
assumptions.model
string | unitless by name | Optional No @default declared; consult the signature and description. |
assumptions.priceSource
PriceSource | Quote price used for the IV fallback when a quote has no usable `impliedVolatility`. unitless by name | Required / declared member No @default declared; consult the signature and description. |
assumptions.scanVolatilityPolicy
'stickyStrike' | Spot-shift scans (zeroGamma, scenarioMap) hold each contract's IV fixed (sticky-strike). unitless by name | Required / declared member 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.timeDecayDirection
'perCalendarDayElapsed' | Charm/color are reported per calendar day ELAPSED (`−∂/∂T`), matching the passage of time. unitless by name | Required / declared member 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. |
atSpot
(spot: number) => AtSpotExposure<G, P> | Per-tick fast path: re-evaluate NET dollar-gamma (`gex`) and NET dollar-delta (`dex`) exposure at
a new `spot`, holding each contract's IV, time-to-expiry, and open interest FIXED (sticky-strike,
echoed in `assumptions.scanVolatilityPolicy`) — only spot moves and gamma/delta are re-evaluated. This is
the intraday dashboard path (one cheap greek pass per tick); a full {@link exposure} re-run — which
re-derives IV, the extended greeks, and levels — is the per-refresh path. At the profile's original
spot this reproduces `aggregate.gex`/`aggregate.dex` exactly (same operations, same order).
A selective profile re-evaluates only what it selected: a {@link gammaExposure} profile returns
`{ gex }` and computes gamma alone. A profile that selected neither `gex` nor `dex` refuses. unitless by name | Required / declared member No @default declared; consult the signature and description. |
atSpot(spot)
number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
byExpiry
<M extends ExposureMetric = G>(metrics?: readonly M[]) => ExpiryRow<M>[] | Chart-ready by-expiry profile (one row per expiry), narrowed to `metrics` — by default this
profile's own metrics. A metric this profile did not compute is refused. unitless by name | Required / declared member No @default declared; consult the signature and description. |
byExpiry(metrics)
readonly M[] | undefined | unitless by name | Optional No @default declared; consult the signature and description. |
byStrike
<M extends ExposureMetric = G>(metrics?: readonly M[]) => StrikeRow<M>[] | Chart-ready by-strike profile (one row per strike, totals summed), narrowed to `metrics` —
by default this profile's own metrics (every metric for a full profile). When
`'gex'` is requested each row ALSO carries the call/put split — `callGex`/`putGex`/`callOpenInterest`/`putOpenInterest`
(the {@link GexSplit} columns) — for the canonical dashboard chart (call bars up, put bars down).
`callGex + putGex` equals the row's net `gex` and `callOpenInterest + putOpenInterest` the strike's total OI (WS4.5).
A metric this profile did not compute is refused, not reported as zero. unitless by name | Required / declared member No @default declared; consult the signature and description. |
byStrike(metrics)
readonly M[] | undefined | unitless by name | Optional No @default declared; consult the signature and description. |
contracts
readonly Readonly<ContractExposureRow<G, P>>[] | Frozen result rows — a profile is a snapshot; mutate a copy, never the result. unitless by name | Required / declared member No @default declared; consult the signature and description. |
diagnostics
Diagnostics | 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
QuantWarning[] | Structured warnings; always present (possibly empty). unitless by name | Required / declared member No @default declared; consult the signature and description. |
levels
(options?: { pinRiskBand?: number; }) => Levels | Dealer-positioning levels (walls, zero-gamma, max pain, pin risk). On a selective profile this
computes what it reads — per-contract gex, gamma, vanna and charm at the profile's spot, plus a
gamma-only zero-gamma sweep — and returns exactly what a full profile returns. unitless by name | Required / declared member No @default declared; consult the signature and description. |
levels().return.callWall
number | null | Strike with the largest summed |call GEX| across ALL expiries (resistance). Magnitude, not signed:
the wall is where the most call gamma sits, which is the same strike whichever way the convention
signs it. unitless by name | Required / declared member No @default declared; consult the signature and description. |
levels().return.charmWall
number | null | unitless by name | Required / declared member No @default declared; consult the signature and description. |
levels().return.gammaFlips
number[] | All interpolated gamma-flip levels in [0.8·spot, 1.2·spot], sorted ascending (may be empty). unitless by name | Required / declared member No @default declared; consult the signature and description. |
levels().return.gammaRegime
'positive' | 'negative' | null | Direction at the current spot: `positive` (mean-reverting) or `negative` (trending), or null. unitless by name | Required / declared member No @default declared; consult the signature and description. |
levels().return.largestCallOpenInterest
number | null | unitless by name | Required / declared member No @default declared; consult the signature and description. |
levels().return.largestPutOpenInterest
number | null | unitless by name | Required / declared member No @default declared; consult the signature and description. |
levels().return.maxGammaStrike
number | null | unitless by name | Required / declared member No @default declared; consult the signature and description. |
levels().return.maxPain
number | null | Strike minimizing total in-the-money option value to holders (max writer profit), computed for the
NEAREST expiry only — max pain is expiry-specific and cannot be aggregated across expirations. unitless by name | Required / declared member No @default declared; consult the signature and description. |
levels().return.minGammaStrike
number | null | unitless by name | Required / declared member No @default declared; consult the signature and description. |
levels().return.monthlyOpexWall
number | null | Largest net-|GEX| strike (calls + puts summed per strike) in the nearest monthly OPEX (3rd-Friday). unitless by name | Required / declared member No @default declared; consult the signature and description. |
levels().return.pinRisk
{ strike: number; atRisk: boolean; } | null | Nearest high-gamma strike to spot, with `atRisk` true when spot is within `pinRiskBand`. unitless by name | Required / declared member No @default declared; consult the signature and description. |
levels().return.pinRisk.atRisk
boolean | unitless by name | Required / declared member No @default declared; consult the signature and description. |
levels().return.pinRisk.strike
number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
levels().return.putWall
number | null | Strike with the largest summed |put GEX| across ALL expiries, under the convention (support). unitless by name | Required / declared member No @default declared; consult the signature and description. |
levels().return.vannaWall
number | null | unitless by name | Required / declared member No @default declared; consult the signature and description. |
levels().return.weeklyOpexWall
number | null | Largest net-|GEX| strike (calls + puts summed per strike) in the nearest Friday (weekly) expiry. unitless by name | Required / declared member No @default declared; consult the signature and description. |
levels().return.zeroDaysToExpiryWall
number | null | Largest net-|GEX| strike (calls + puts summed per strike) among 0DTE contracts — expiring on the
snapshot's own **America/New_York** trading date (not its UTC date: after 20:00 ET the UTC date is
already tomorrow, which flagged the NEXT session's expiry as 0DTE). unitless by name | Required / declared member No @default declared; consult the signature and description. |
levels().return.zeroGamma
number | null | Spot level where net GEX flips sign, chosen as the interpolated gamma-flip NEAREST spot when the
profile has more than one flip in [0.8·spot, 1.2·spot]. Null when no flip exists in range. unitless by name | Required / declared member No @default declared; consult the signature and description. |
levels(options)
{ pinRiskBand?: number; } | unitless by name | Optional No @default declared; consult the signature and description. |
levels(options).pinRiskBand
number | unitless by name | Optional No @default declared; consult the signature and description. |
netDrift
() => NetDrift | Net dealer-hedging drift estimate (spec §11.5): the gamma regime (pinning vs trending), the
zero-gamma attractor, and the aggregate charm/vanna hedging flows that push spot over time and as
vol moves. An ESTIMATE from the positioning model — not a price forecast. An empty or
identically-zero book has no gamma structure: `zeroGamma`/`distanceToZeroGamma`/`gammaRegime`/
`bias` are all `null` (never fabricated), and the charm/vanna flows echo the (zero) aggregate.
On a selective profile the charm and vanna aggregates are computed here if they were not selected. unitless by name | Required / declared member No @default declared; consult the signature and description. |
netDrift().return.bias
'trend' | 'pin' | null | `pin` (gamma pulls spot toward zero-gamma) / `trend` (pushes away) / null. unitless by name | Required / declared member No @default declared; consult the signature and description. |
netDrift().return.charmFlowPerDay
number | Aggregate charm exposure: signed dealer delta to re-hedge as ONE calendar day ELAPSES (drift into
expiry). Positive ⇒ dealers accumulate long delta day-over-day. Uses the elapsed-time sign
(`−∂DEX/∂T` per day), so it reads the same direction as the passage of time. unitless by name | Required / declared member No @default declared; consult the signature and description. |
netDrift().return.distanceToZeroGamma
number | null | Signed distance from spot to zero-gamma as a fraction of spot (positive ⇒ flip is above spot). unitless by name | Required / declared member No @default declared; consult the signature and description. |
netDrift().return.gammaRegime
'positive' | 'negative' | null | `positive` (mean-reverting/pinning) or `negative` (trending), or null. unitless by name | Required / declared member No @default declared; consult the signature and description. |
netDrift().return.vannaFlowPerVolatilityPoint
number | Aggregate vanna exposure: signed dealer delta to re-hedge per +1 VOL POINT (a +0.01 move in
implied volatility), matching the per-1%-move convention `gex` uses. The unit is in the name
because the value is 100x smaller than a per-unit-volatility reading of the same greek. unitless by name | Required / declared member No @default declared; consult the signature and description. |
netDrift().return.zeroGamma
number | null | The zero-gamma level (gamma flip) — the attractor in positive gamma, repeller in negative. unitless by name | Required / declared member No @default declared; consult the signature and description. |
return.aggregate
ExposureAggregate<G, P> | unitless by name | Required / declared member No @default declared; consult the signature and description. |
return.assumptions
Assumptions<{ timeDecayDirection: 'perCalendarDayElapsed'; scanVolatilityPolicy: 'stickyStrike'; convention: { name: string; calls: number; puts: number; }; gammaUnit: GammaUnit; priceSource: PriceSource; minTimeToExpiry: number; defaultMultiplier: number; metrics?: readonly ExposureMetric[]; }> | unitless by name | Required / declared member No @default declared; consult the signature and description. |
return.atSpot
(spot: number) => AtSpotExposure<G, P> | Per-tick fast path: re-evaluate NET dollar-gamma (`gex`) and NET dollar-delta (`dex`) exposure at
a new `spot`, holding each contract's IV, time-to-expiry, and open interest FIXED (sticky-strike,
echoed in `assumptions.scanVolatilityPolicy`) — only spot moves and gamma/delta are re-evaluated. This is
the intraday dashboard path (one cheap greek pass per tick); a full {@link exposure} re-run — which
re-derives IV, the extended greeks, and levels — is the per-refresh path. At the profile's original
spot this reproduces `aggregate.gex`/`aggregate.dex` exactly (same operations, same order).
A selective profile re-evaluates only what it selected: a {@link gammaExposure} profile returns
`{ gex }` and computes gamma alone. A profile that selected neither `gex` nor `dex` refuses. unitless by name | Required / declared member No @default declared; consult the signature and description. |
return.byExpiry
<M extends ExposureMetric = G>(metrics?: readonly M[]) => ExpiryRow<M>[] | Chart-ready by-expiry profile (one row per expiry), narrowed to `metrics` — by default this
profile's own metrics. A metric this profile did not compute is refused. unitless by name | Required / declared member No @default declared; consult the signature and description. |
return.byStrike
<M extends ExposureMetric = G>(metrics?: readonly M[]) => StrikeRow<M>[] | Chart-ready by-strike profile (one row per strike, totals summed), narrowed to `metrics` —
by default this profile's own metrics (every metric for a full profile). When
`'gex'` is requested each row ALSO carries the call/put split — `callGex`/`putGex`/`callOpenInterest`/`putOpenInterest`
(the {@link GexSplit} columns) — for the canonical dashboard chart (call bars up, put bars down).
`callGex + putGex` equals the row's net `gex` and `callOpenInterest + putOpenInterest` the strike's total OI (WS4.5).
A metric this profile did not compute is refused, not reported as zero. unitless by name | Required / declared member No @default declared; consult the signature and description. |
return.contracts
readonly Readonly<ContractExposureRow<G, P>>[] | Frozen result rows — a profile is a snapshot; mutate a copy, never the result. unitless by name | Required / declared member No @default declared; consult the signature and description. |
return.diagnostics
Diagnostics | unitless by name | Required / declared member No @default declared; consult the signature and description. |
return.levels
(options?: { pinRiskBand?: number; }) => Levels | Dealer-positioning levels (walls, zero-gamma, max pain, pin risk). On a selective profile this
computes what it reads — per-contract gex, gamma, vanna and charm at the profile's spot, plus a
gamma-only zero-gamma sweep — and returns exactly what a full profile returns. unitless by name | Required / declared member No @default declared; consult the signature and description. |
return.netDrift
() => NetDrift | Net dealer-hedging drift estimate (spec §11.5): the gamma regime (pinning vs trending), the
zero-gamma attractor, and the aggregate charm/vanna hedging flows that push spot over time and as
vol moves. An ESTIMATE from the positioning model — not a price forecast. An empty or
identically-zero book has no gamma structure: `zeroGamma`/`distanceToZeroGamma`/`gammaRegime`/
`bias` are all `null` (never fabricated), and the charm/vanna flows echo the (zero) aggregate.
On a selective profile the charm and vanna aggregates are computed here if they were not selected. unitless by name | Required / declared member No @default declared; consult the signature and description. |
return.scenarioMap
<M extends ExposureMetric = DefaultScenarioMetric>(options?: ScenarioMapOptions<M>) => ScenarioMap<M> | Recompute aggregate metrics across a spot × volatilityShock × time grid. With no `metrics` the default
set is `['gex','dex','vanna','charm']` — and the return type narrows to exactly those, so it never
over-claims the metrics not actually computed (WS2.4). Each cell evaluates only the Black–Scholes
outputs its metrics need, in one shared pass (`['gex']` evaluates gamma alone). A scenario is an
explicitly requested analysis, so it may use any metric, whatever this profile selected. unitless by name | Required / declared member No @default declared; consult the signature and description. |
return.spot
number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
scenarioMap
<M extends ExposureMetric = DefaultScenarioMetric>(options?: ScenarioMapOptions<M>) => ScenarioMap<M> | Recompute aggregate metrics across a spot × volatilityShock × time grid. With no `metrics` the default
set is `['gex','dex','vanna','charm']` — and the return type narrows to exactly those, so it never
over-claims the metrics not actually computed (WS2.4). Each cell evaluates only the Black–Scholes
outputs its metrics need, in one shared pass (`['gex']` evaluates gamma alone). A scenario is an
explicitly requested analysis, so it may use any metric, whatever this profile selected. unitless by name | Required / declared member No @default declared; consult the signature and description. |
scenarioMap().return.cells
ScenarioCell<M>[] | unitless by name | Required / declared member No @default declared; consult the signature and description. |
scenarioMap().return.evaluations
number | Total greek recomputations performed (for the acceleration-need benchmark). unitless by name | Required / declared member No @default declared; consult the signature and description. |
scenarioMap().return.metrics
M[] | unitless by name | Required / declared member No @default declared; consult the signature and description. |
scenarioMap(options)
ScenarioMapOptions<M> | unitless by name | Optional No @default declared; consult the signature and description. |
scenarioMap(options).metrics
readonly M[] | Which metrics to compute. Default `['gex','dex','vanna','charm']`. unitless by name | Optional No @default declared; consult the signature and description. |
scenarioMap(options).spot
number[] | { from: number; to: number; steps: number; } | Spot grid: explicit prices, or `{ from, to, steps }`. Defaults to ±10% around spot, 41 steps. unitless by name | Optional No @default declared; consult the signature and description. |
scenarioMap(options).spot.from
number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
scenarioMap(options).spot.steps
number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
scenarioMap(options).spot.to
number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
scenarioMap(options).timeAdvance
number[] | Years to advance time (reducing each T), e.g. `[0, 1/365]`. Default `[0]`. unitless by name | Optional No @default declared; consult the signature and description. |
scenarioMap(options).volatilityShock
number[] | Additive vol shocks (decimal), e.g. `[-0.05, 0, 0.05]`. Default `[0]`. unitless by name | Optional No @default declared; consult the signature and description. |
spot
number | unitless by name | Required / declared member No @default declared; consult the signature and description. |