bond
Bond | unitless by name | Required / declared member No @default declared; consult the signature and description. |
bond.accrued
(settlementDate: string, context?: import('@insiderfinance/totalfinance/fixed-income').ProjectionContext) => number | Accrued interest at `settlementDate` (per the bond's face value). unitless by name | Required / declared member No @default declared; consult the signature and description. |
bond.accrued(context)
import('@insiderfinance/totalfinance/fixed-income').ProjectionContext | undefined | unitless by name | Optional No @default declared; consult the signature and description. |
bond.accrued(context).forecastCurve
YieldCurve | Forecast curve for projecting floating-rate coupons. unitless by name | Optional No @default declared; consult the signature and description. |
bond.accrued(context).knownFixingRate
number | The index fixing (decimal, e.g. `0.0532` for 5.32%) that ALREADY SET the coupon currently
accruing on a floating-rate note — the one whose accrual period began before the forecast
curve's reference date.
A settled-mid-period FRN has one coupon that is no longer a projection: it was fixed in the
past, on a date the curve does not reach. Asking the curve for it is a query before its
reference date, which throws. Supply the observed fixing (SOFR/EURIBOR print for that reset)
and it is used verbatim for that one coupon; every later coupon still projects off the curve.
The note's quoted `spread` is added on top, exactly as for a projected coupon.
Only the in-progress coupon is substituted. Coupons that both began AND ended before the
curve's reference date are settled history, not projections — one fixing cannot honestly stand
in for a whole strip of past resets, so those are rejected rather than fabricated. decimal rate (0.05 = 5%) | Optional No @default declared; consult the signature and description. |
bond.accrued(context).referenceIndex
(date: string) => number | Price-index level at a date, for inflation-linked indexation. count (integer) | Optional No @default declared; consult the signature and description. |
bond.accrued(settlementDate)
string | unitless by name | Required / declared member No @default declared; consult the signature and description. |
bond.businessDayConvention
import('@insiderfinance/totalfinance/fixed-income').BusinessDayConvention | Business-day convention applied when the payment schedule was generated. unitless by name | Required / declared member No @default declared; consult the signature and description. |
bond.cashflows
(context?: import('@insiderfinance/totalfinance/fixed-income').ProjectionContext) => import('@insiderfinance/totalfinance/fixed-income').CashFlow[] | Every life cash flow (projected via `context` for FRN/inflation). unitless by name | Required / declared member No @default declared; consult the signature and description. |
bond.cashflows(context)
import('@insiderfinance/totalfinance/fixed-income').ProjectionContext | undefined | unitless by name | Optional No @default declared; consult the signature and description. |
bond.cashflows(context).forecastCurve
YieldCurve | Forecast curve for projecting floating-rate coupons. unitless by name | Optional No @default declared; consult the signature and description. |
bond.cashflows(context).knownFixingRate
number | The index fixing (decimal, e.g. `0.0532` for 5.32%) that ALREADY SET the coupon currently
accruing on a floating-rate note — the one whose accrual period began before the forecast
curve's reference date.
A settled-mid-period FRN has one coupon that is no longer a projection: it was fixed in the
past, on a date the curve does not reach. Asking the curve for it is a query before its
reference date, which throws. Supply the observed fixing (SOFR/EURIBOR print for that reset)
and it is used verbatim for that one coupon; every later coupon still projects off the curve.
The note's quoted `spread` is added on top, exactly as for a projected coupon.
Only the in-progress coupon is substituted. Coupons that both began AND ended before the
curve's reference date are settled history, not projections — one fixing cannot honestly stand
in for a whole strip of past resets, so those are rejected rather than fabricated. decimal rate (0.05 = 5%) | Optional No @default declared; consult the signature and description. |
bond.cashflows(context).referenceIndex
(date: string) => number | Price-index level at a date, for inflation-linked indexation. count (integer) | Optional No @default declared; consult the signature and description. |
bond.couponRate
number | decimal rate (0.05 = 5%) | Required / declared member No @default declared; consult the signature and description. |
bond.dayCount
FixedIncomeDayCount | count (integer) | Required / declared member No @default declared; consult the signature and description. |
bond.faceValue
number | currency amount (the field or record currency) | Required / declared member No @default declared; consult the signature and description. |
bond.frequency
number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
bond.futureCashflows
(settlementDate: string, context?: import('@insiderfinance/totalfinance/fixed-income').ProjectionContext) => import('@insiderfinance/totalfinance/fixed-income').CashFlow[] | Cash flows strictly after `settlementDate` — what a buyer settling then receives. unitless by name | Required / declared member No @default declared; consult the signature and description. |
bond.futureCashflows(context)
import('@insiderfinance/totalfinance/fixed-income').ProjectionContext | undefined | unitless by name | Optional No @default declared; consult the signature and description. |
bond.futureCashflows(context).forecastCurve
YieldCurve | Forecast curve for projecting floating-rate coupons. unitless by name | Optional No @default declared; consult the signature and description. |
bond.futureCashflows(context).knownFixingRate
number | The index fixing (decimal, e.g. `0.0532` for 5.32%) that ALREADY SET the coupon currently
accruing on a floating-rate note — the one whose accrual period began before the forecast
curve's reference date.
A settled-mid-period FRN has one coupon that is no longer a projection: it was fixed in the
past, on a date the curve does not reach. Asking the curve for it is a query before its
reference date, which throws. Supply the observed fixing (SOFR/EURIBOR print for that reset)
and it is used verbatim for that one coupon; every later coupon still projects off the curve.
The note's quoted `spread` is added on top, exactly as for a projected coupon.
Only the in-progress coupon is substituted. Coupons that both began AND ended before the
curve's reference date are settled history, not projections — one fixing cannot honestly stand
in for a whole strip of past resets, so those are rejected rather than fabricated. decimal rate (0.05 = 5%) | Optional No @default declared; consult the signature and description. |
bond.futureCashflows(context).referenceIndex
(date: string) => number | Price-index level at a date, for inflation-linked indexation. count (integer) | Optional No @default declared; consult the signature and description. |
bond.futureCashflows(settlementDate)
string | unitless by name | Required / declared member No @default declared; consult the signature and description. |
bond.issueDate
string | calendar date (YYYY-MM-DD) | Required / declared member No @default declared; consult the signature and description. |
bond.kind
import('@insiderfinance/totalfinance/fixed-income').BondKind | unitless by name | Required / declared member No @default declared; consult the signature and description. |
bond.maturityDate
string | calendar date (YYYY-MM-DD) | Required / declared member No @default declared; consult the signature and description. |
bond.schedule
readonly import('@insiderfinance/totalfinance/fixed-income').SchedulePeriod[] | unitless by name | Required / declared member No @default declared; consult the signature and description. |
calls
BondOption[] | Issuer call schedule (caps the bond's value at each strike). unitless by name | Optional No @default declared; consult the signature and description. |
curve
YieldCurve | Calibration/discount curve (its reference date is the valuation date). unitless by name | Required / declared member No @default declared; consult the signature and description. |
curve.addSpread
(spread: YieldCurve) => YieldCurve | Combine with a term-structure spread curve: the continuous zeros ADD at each tenor (equivalently
discount factors multiply, `D(t)·D_spread(t)`). Unions both curves' pillar tenors so the spread's
shape — not just a level — is preserved. Used to discount over `benchmark + spread` (e.g. OIS + a
sector/rating spread) while keeping curve construction out of leaf entrypoints. unitless by name | Required / declared member No @default declared; consult the signature and description. |
curve.addSpread(spread)
YieldCurve | unitless by name | Required / declared member No @default declared; consult the signature and description. |
curve.bumpPillar
(index: number, delta: number) => YieldCurve | Bump a single pillar's continuous zero by `delta` (key-rate risk). unitless by name | Required / declared member No @default declared; consult the signature and description. |
curve.bumpPillar(delta)
number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
curve.bumpPillar(index)
number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
curve.dayCount
FixedIncomeDayCount | count (integer) | Required / declared member No @default declared; consult the signature and description. |
curve.discount
(at: string | number) => number | Discount factor to a date or year fraction. unitless by name | Required / declared member No @default declared; consult the signature and description. |
curve.discount(at)
string | number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
curve.extrapolation
import('@insiderfinance/totalfinance/fixed-income').CurveExtrapolation | unitless by name | Required / declared member No @default declared; consult the signature and description. |
curve.forwardRate
(from: string | number, to: string | number, dayCount?: FixedIncomeDayCount) => number | Simple (money-market) forward rate between two times/dates under `dayCount`. decimal rate (0.05 = 5%) | Required / declared member No @default declared; consult the signature and description. |
curve.forwardRate(dayCount)
FixedIncomeDayCount | undefined | unitless by name | Optional No @default declared; consult the signature and description. |
curve.forwardRate(from)
string | number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
curve.forwardRate(to)
string | number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
curve.instantaneousForward
(at: string | number) => number | Instantaneous (continuously-compounded) forward rate at a time/date. unitless by name | Required / declared member No @default declared; consult the signature and description. |
curve.instantaneousForward(at)
string | number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
curve.interpolation
import('@insiderfinance/totalfinance/fixed-income').CurveInterpolation | unitless by name | Required / declared member No @default declared; consult the signature and description. |
curve.pillars
readonly import('@insiderfinance/totalfinance/fixed-income').CurvePillar[] | unitless by name | Required / declared member No @default declared; consult the signature and description. |
curve.referenceDate
string | calendar date (YYYY-MM-DD) | Required / declared member No @default declared; consult the signature and description. |
curve.shift
(delta: number) => YieldCurve | Parallel shift of every pillar's continuous zero by `delta` (e.g. +0.0001 = +1bp). unitless by name | Required / declared member No @default declared; consult the signature and description. |
curve.shift(delta)
number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
curve.timeTo
(at: string | number) => number | Year fraction from the reference date to a date (or pass a number through unchanged). unitless by name | Required / declared member No @default declared; consult the signature and description. |
curve.timeTo(at)
string | number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
curve.zeroRate
(at: string | number, compounding?: import('@insiderfinance/totalfinance/core').InterestCompounding) => number | Zero rate to a date or year fraction, in the requested compounding (default continuous). decimal rate (0.05 = 5%) | Required / declared member No @default declared; consult the signature and description. |
curve.zeroRate(at)
string | number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
curve.zeroRate(compounding)
import('@insiderfinance/totalfinance/core').InterestCompounding | undefined | unitless by name | Optional No @default declared; consult the signature and description. |
curve.zeroRate(compounding).periodsPerYear
number | per year (count) | Required / declared member No @default declared; consult the signature and description. |
curve.zeroRate(compounding).type
'periodic' | unitless by name | Required / declared member No @default declared; consult the signature and description. |
durationShock
number | Curve shock for the effective duration/convexity, in decimal. Default 1e-4 (1 bp). unitless by name | Optional No @default declared; consult the signature and description. |
marketPrice
number | Market dirty price the OAS and Z-spread are solved to. currency amount (the field or record currency) | Required / declared member No @default declared; consult the signature and description. |
meanReversion
number | Mean reversion and short-rate volatility for the tree model. unitless by name | Required / declared member No @default declared; consult the signature and description. |
model
TreeModel | Tree model (default `hull-white`). unitless by name | Optional No @default declared; consult the signature and description. |
puts
BondOption[] | Holder put schedule (floors the bond's value at each strike). unitless by name | Optional No @default declared; consult the signature and description. |
sigma
number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
spreadCurve
YieldCurve | Optional term-structure spread curve added to `curve` before the spreads are solved. The effective
benchmark becomes `curve` + `spreadCurve` (continuous zeros add ⇔ discount factors multiply), so the
reported OAS and Z-spread are measured OVER a NON-FLAT benchmark — e.g. an OIS discount curve plus a
sector/rating spread curve — rather than the plain `curve`. Its zero rates ARE the spreads (build one
with `curves.fromZeroRates(spreadPillars)`); it must share `curve`'s reference date. unitless by name | Optional No @default declared; consult the signature and description. |
spreadCurve.addSpread
(spread: YieldCurve) => YieldCurve | Combine with a term-structure spread curve: the continuous zeros ADD at each tenor (equivalently
discount factors multiply, `D(t)·D_spread(t)`). Unions both curves' pillar tenors so the spread's
shape — not just a level — is preserved. Used to discount over `benchmark + spread` (e.g. OIS + a
sector/rating spread) while keeping curve construction out of leaf entrypoints. unitless by name | Required / declared member No @default declared; consult the signature and description. |
spreadCurve.addSpread(spread)
YieldCurve | unitless by name | Required / declared member No @default declared; consult the signature and description. |
spreadCurve.bumpPillar
(index: number, delta: number) => YieldCurve | Bump a single pillar's continuous zero by `delta` (key-rate risk). unitless by name | Required / declared member No @default declared; consult the signature and description. |
spreadCurve.bumpPillar(delta)
number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
spreadCurve.bumpPillar(index)
number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
spreadCurve.dayCount
FixedIncomeDayCount | count (integer) | Required / declared member No @default declared; consult the signature and description. |
spreadCurve.discount
(at: string | number) => number | Discount factor to a date or year fraction. unitless by name | Required / declared member No @default declared; consult the signature and description. |
spreadCurve.discount(at)
string | number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
spreadCurve.extrapolation
import('@insiderfinance/totalfinance/fixed-income').CurveExtrapolation | unitless by name | Required / declared member No @default declared; consult the signature and description. |
spreadCurve.forwardRate
(from: string | number, to: string | number, dayCount?: FixedIncomeDayCount) => number | Simple (money-market) forward rate between two times/dates under `dayCount`. decimal rate (0.05 = 5%) | Required / declared member No @default declared; consult the signature and description. |
spreadCurve.forwardRate(dayCount)
FixedIncomeDayCount | undefined | unitless by name | Optional No @default declared; consult the signature and description. |
spreadCurve.forwardRate(from)
string | number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
spreadCurve.forwardRate(to)
string | number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
spreadCurve.instantaneousForward
(at: string | number) => number | Instantaneous (continuously-compounded) forward rate at a time/date. unitless by name | Required / declared member No @default declared; consult the signature and description. |
spreadCurve.instantaneousForward(at)
string | number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
spreadCurve.interpolation
import('@insiderfinance/totalfinance/fixed-income').CurveInterpolation | unitless by name | Required / declared member No @default declared; consult the signature and description. |
spreadCurve.pillars
readonly import('@insiderfinance/totalfinance/fixed-income').CurvePillar[] | unitless by name | Required / declared member No @default declared; consult the signature and description. |
spreadCurve.referenceDate
string | calendar date (YYYY-MM-DD) | Required / declared member No @default declared; consult the signature and description. |
spreadCurve.shift
(delta: number) => YieldCurve | Parallel shift of every pillar's continuous zero by `delta` (e.g. +0.0001 = +1bp). unitless by name | Required / declared member No @default declared; consult the signature and description. |
spreadCurve.shift(delta)
number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
spreadCurve.timeTo
(at: string | number) => number | Year fraction from the reference date to a date (or pass a number through unchanged). unitless by name | Required / declared member No @default declared; consult the signature and description. |
spreadCurve.timeTo(at)
string | number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
spreadCurve.zeroRate
(at: string | number, compounding?: import('@insiderfinance/totalfinance/core').InterestCompounding) => number | Zero rate to a date or year fraction, in the requested compounding (default continuous). decimal rate (0.05 = 5%) | Required / declared member No @default declared; consult the signature and description. |
spreadCurve.zeroRate(at)
string | number | unitless by name | Required / declared member No @default declared; consult the signature and description. |
spreadCurve.zeroRate(compounding)
import('@insiderfinance/totalfinance/core').InterestCompounding | undefined | unitless by name | Optional No @default declared; consult the signature and description. |
spreadCurve.zeroRate(compounding).periodsPerYear
number | per year (count) | Required / declared member No @default declared; consult the signature and description. |
spreadCurve.zeroRate(compounding).type
'periodic' | unitless by name | Required / declared member No @default declared; consult the signature and description. |
stepsPerYear
number | Tree steps per year (default 24, hard outer maximum 1,000,000; total-tree cap may be lower). per year (count) | Optional No @default declared; consult the signature and description. |