The finance developer workbenchSearch the reference Development · 0.1.4 · unpublished

Public API / @insiderfinance/totalfinance

@insiderfinance/totalfinance/fixed-income/cross-currency

import from '@insiderfinance/totalfinance/fixed-income/cross-currency'

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

Jump to an export (6)

CrossCurrencyBasisInput · CrossCurrencyBasisResult · ImpliedCrossCurrencyBasisInput · ImpliedCrossCurrencyBasisResult · crossCurrencyBasisCurve · impliedCrossCurrencyBasis

interface

CrossCurrencyBasisInput

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

export interface CrossCurrencyBasisInput {
    /** FX spot: domestic units per 1 foreign unit. */
    spot: number;
    /** Domestic collateral (OIS) discount curve. */
    domestic: YieldCurve;
    /** Foreign index/OIS discount curve (pre-basis). */
    foreign: YieldCurve;
    /**
     * Cross-currency basis term structure added to the foreign curve (its zero rates ARE the basis
     * spreads). Omit for the pure covered-interest-parity case (no basis): `fxForward` is then
     * `spot · D_for(t)/D_dom(t)` and the collateralized curve is the foreign curve itself.
     */
    basis?: YieldCurve;
}
Fields, parameters & returned members (85)
Name / typeMeaning & unitOptional / default
basis
YieldCurve
Cross-currency basis term structure added to the foreign curve (its zero rates ARE the basis spreads). Omit for the pure covered-interest-parity case (no basis): `fxForward` is then `spot · D_for(t)/D_dom(t)` and the collateralized curve is the foreign curve itself.
unitless by name
Optional
No @default declared; consult the signature and description.
basis.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.
basis.addSpread(spread)
YieldCurve

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
basis.dayCount
import('@insiderfinance/totalfinance/fixed-income').FixedIncomeDayCount

count (integer)
Required / declared member
No @default declared; consult the signature and description.
basis.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.
basis.discount(at)
string | number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
basis.extrapolation
import('@insiderfinance/totalfinance/fixed-income').CurveExtrapolation

unitless by name
Required / declared member
No @default declared; consult the signature and description.
basis.forwardRate
(from: string | number, to: string | number, dayCount?: import('@insiderfinance/totalfinance/fixed-income').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.
basis.forwardRate(dayCount)
import('@insiderfinance/totalfinance/fixed-income').FixedIncomeDayCount | undefined

unitless by name
Optional
No @default declared; consult the signature and description.
basis.forwardRate(from)
string | number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
basis.forwardRate(to)
string | number

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
basis.interpolation
import('@insiderfinance/totalfinance/fixed-income').CurveInterpolation

unitless by name
Required / declared member
No @default declared; consult the signature and description.
basis.pillars
readonly import('@insiderfinance/totalfinance/fixed-income').CurvePillar[]

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

calendar date (YYYY-MM-DD)
Required / declared member
No @default declared; consult the signature and description.
basis.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.
basis.shift(delta)
number

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
basis.zeroRate(compounding)
import('@insiderfinance/totalfinance/core').InterestCompounding | undefined

unitless by name
Optional
No @default declared; consult the signature and description.
basis.zeroRate(compounding).periodsPerYear
number

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
domestic
YieldCurve
Domestic collateral (OIS) discount curve.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
domestic.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.
domestic.addSpread(spread)
YieldCurve

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
domestic.dayCount
import('@insiderfinance/totalfinance/fixed-income').FixedIncomeDayCount

count (integer)
Required / declared member
No @default declared; consult the signature and description.
domestic.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.
domestic.discount(at)
string | number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
domestic.extrapolation
import('@insiderfinance/totalfinance/fixed-income').CurveExtrapolation

unitless by name
Required / declared member
No @default declared; consult the signature and description.
domestic.forwardRate
(from: string | number, to: string | number, dayCount?: import('@insiderfinance/totalfinance/fixed-income').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.
domestic.forwardRate(dayCount)
import('@insiderfinance/totalfinance/fixed-income').FixedIncomeDayCount | undefined

unitless by name
Optional
No @default declared; consult the signature and description.
domestic.forwardRate(from)
string | number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
domestic.forwardRate(to)
string | number

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
domestic.interpolation
import('@insiderfinance/totalfinance/fixed-income').CurveInterpolation

unitless by name
Required / declared member
No @default declared; consult the signature and description.
domestic.pillars
readonly import('@insiderfinance/totalfinance/fixed-income').CurvePillar[]

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

calendar date (YYYY-MM-DD)
Required / declared member
No @default declared; consult the signature and description.
domestic.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.
domestic.shift(delta)
number

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
domestic.zeroRate(compounding)
import('@insiderfinance/totalfinance/core').InterestCompounding | undefined

unitless by name
Optional
No @default declared; consult the signature and description.
domestic.zeroRate(compounding).periodsPerYear
number

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
foreign
YieldCurve
Foreign index/OIS discount curve (pre-basis).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
foreign.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.
foreign.addSpread(spread)
YieldCurve

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
foreign.dayCount
import('@insiderfinance/totalfinance/fixed-income').FixedIncomeDayCount

count (integer)
Required / declared member
No @default declared; consult the signature and description.
foreign.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.
foreign.discount(at)
string | number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
foreign.extrapolation
import('@insiderfinance/totalfinance/fixed-income').CurveExtrapolation

unitless by name
Required / declared member
No @default declared; consult the signature and description.
foreign.forwardRate
(from: string | number, to: string | number, dayCount?: import('@insiderfinance/totalfinance/fixed-income').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.
foreign.forwardRate(dayCount)
import('@insiderfinance/totalfinance/fixed-income').FixedIncomeDayCount | undefined

unitless by name
Optional
No @default declared; consult the signature and description.
foreign.forwardRate(from)
string | number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
foreign.forwardRate(to)
string | number

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
foreign.interpolation
import('@insiderfinance/totalfinance/fixed-income').CurveInterpolation

unitless by name
Required / declared member
No @default declared; consult the signature and description.
foreign.pillars
readonly import('@insiderfinance/totalfinance/fixed-income').CurvePillar[]

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

calendar date (YYYY-MM-DD)
Required / declared member
No @default declared; consult the signature and description.
foreign.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.
foreign.shift(delta)
number

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
foreign.zeroRate(compounding)
import('@insiderfinance/totalfinance/core').InterestCompounding | undefined

unitless by name
Optional
No @default declared; consult the signature and description.
foreign.zeroRate(compounding).periodsPerYear
number

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
spot
number
FX spot: domestic units per 1 foreign unit.
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

CrossCurrencyBasisResult

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

export interface CrossCurrencyBasisResult {
    /** Applied conventions, echoed (Law 2 report grammar). */
    assumptions: {
        conventionsVersion: string;
        [k: string]: unknown;
    };
    /** Structured warnings; always present (possibly empty). */
    diagnostics: {
        warnings: QuantWarning[];
    };
    /** The domestic-collateralized foreign discount curve (`foreign + basis`). Discount foreign cash flows on THIS. */
    collateralizedCurve: YieldCurve;
    /** Market FX forward at `at`, from the collateralized curve: `spot · D_for^dom(at) / D_dom(at)`. */
    fxForward(at: string | number): number;
}
Fields, parameters & returned members (34)
Name / typeMeaning & unitOptional / default
assumptions
{ [k: string]: unknown; conventionsVersion: string; }
Applied conventions, echoed (Law 2 report grammar).
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.
collateralizedCurve
YieldCurve
The domestic-collateralized foreign discount curve (`foreign + basis`). Discount foreign cash flows on THIS.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
collateralizedCurve.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.
collateralizedCurve.addSpread(spread)
YieldCurve

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
collateralizedCurve.dayCount
import('@insiderfinance/totalfinance/fixed-income').FixedIncomeDayCount

count (integer)
Required / declared member
No @default declared; consult the signature and description.
collateralizedCurve.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.
collateralizedCurve.discount(at)
string | number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
collateralizedCurve.extrapolation
import('@insiderfinance/totalfinance/fixed-income').CurveExtrapolation

unitless by name
Required / declared member
No @default declared; consult the signature and description.
collateralizedCurve.forwardRate
(from: string | number, to: string | number, dayCount?: import('@insiderfinance/totalfinance/fixed-income').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.
collateralizedCurve.forwardRate(dayCount)
import('@insiderfinance/totalfinance/fixed-income').FixedIncomeDayCount | undefined

unitless by name
Optional
No @default declared; consult the signature and description.
collateralizedCurve.forwardRate(from)
string | number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
collateralizedCurve.forwardRate(to)
string | number

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
collateralizedCurve.interpolation
import('@insiderfinance/totalfinance/fixed-income').CurveInterpolation

unitless by name
Required / declared member
No @default declared; consult the signature and description.
collateralizedCurve.pillars
readonly import('@insiderfinance/totalfinance/fixed-income').CurvePillar[]

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

calendar date (YYYY-MM-DD)
Required / declared member
No @default declared; consult the signature and description.
collateralizedCurve.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.
collateralizedCurve.shift(delta)
number

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
collateralizedCurve.zeroRate(compounding)
import('@insiderfinance/totalfinance/core').InterestCompounding | undefined

unitless by name
Optional
No @default declared; consult the signature and description.
collateralizedCurve.zeroRate(compounding).periodsPerYear
number

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

unitless by name
Required / declared member
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.
diagnostics.warnings
QuantWarning[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
fxForward
(at: string | number) => number
Market FX forward at `at`, from the collateralized curve: `spot · D_for^dom(at) / D_dom(at)`.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
fxForward(at)
string | 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

ImpliedCrossCurrencyBasisInput

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

export interface ImpliedCrossCurrencyBasisInput {
    /** FX spot: domestic units per 1 foreign unit. */
    spot: number;
    /** Domestic collateral (OIS) discount curve. */
    domestic: YieldCurve;
    /** Foreign index/OIS discount curve (pre-basis). */
    foreign: YieldCurve;
    /** Observed market FX forwards `[date, forward]` (domestic per foreign). */
    forwards: [
        string,
        number
    ][];
}
Fields, parameters & returned members (58)
Name / typeMeaning & unitOptional / default
domestic
YieldCurve
Domestic collateral (OIS) discount curve.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
domestic.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.
domestic.addSpread(spread)
YieldCurve

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
domestic.dayCount
import('@insiderfinance/totalfinance/fixed-income').FixedIncomeDayCount

count (integer)
Required / declared member
No @default declared; consult the signature and description.
domestic.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.
domestic.discount(at)
string | number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
domestic.extrapolation
import('@insiderfinance/totalfinance/fixed-income').CurveExtrapolation

unitless by name
Required / declared member
No @default declared; consult the signature and description.
domestic.forwardRate
(from: string | number, to: string | number, dayCount?: import('@insiderfinance/totalfinance/fixed-income').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.
domestic.forwardRate(dayCount)
import('@insiderfinance/totalfinance/fixed-income').FixedIncomeDayCount | undefined

unitless by name
Optional
No @default declared; consult the signature and description.
domestic.forwardRate(from)
string | number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
domestic.forwardRate(to)
string | number

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
domestic.interpolation
import('@insiderfinance/totalfinance/fixed-income').CurveInterpolation

unitless by name
Required / declared member
No @default declared; consult the signature and description.
domestic.pillars
readonly import('@insiderfinance/totalfinance/fixed-income').CurvePillar[]

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

calendar date (YYYY-MM-DD)
Required / declared member
No @default declared; consult the signature and description.
domestic.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.
domestic.shift(delta)
number

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
domestic.zeroRate(compounding)
import('@insiderfinance/totalfinance/core').InterestCompounding | undefined

unitless by name
Optional
No @default declared; consult the signature and description.
domestic.zeroRate(compounding).periodsPerYear
number

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
foreign
YieldCurve
Foreign index/OIS discount curve (pre-basis).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
foreign.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.
foreign.addSpread(spread)
YieldCurve

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
foreign.dayCount
import('@insiderfinance/totalfinance/fixed-income').FixedIncomeDayCount

count (integer)
Required / declared member
No @default declared; consult the signature and description.
foreign.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.
foreign.discount(at)
string | number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
foreign.extrapolation
import('@insiderfinance/totalfinance/fixed-income').CurveExtrapolation

unitless by name
Required / declared member
No @default declared; consult the signature and description.
foreign.forwardRate
(from: string | number, to: string | number, dayCount?: import('@insiderfinance/totalfinance/fixed-income').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.
foreign.forwardRate(dayCount)
import('@insiderfinance/totalfinance/fixed-income').FixedIncomeDayCount | undefined

unitless by name
Optional
No @default declared; consult the signature and description.
foreign.forwardRate(from)
string | number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
foreign.forwardRate(to)
string | number

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
foreign.interpolation
import('@insiderfinance/totalfinance/fixed-income').CurveInterpolation

unitless by name
Required / declared member
No @default declared; consult the signature and description.
foreign.pillars
readonly import('@insiderfinance/totalfinance/fixed-income').CurvePillar[]

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

calendar date (YYYY-MM-DD)
Required / declared member
No @default declared; consult the signature and description.
foreign.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.
foreign.shift(delta)
number

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
foreign.zeroRate(compounding)
import('@insiderfinance/totalfinance/core').InterestCompounding | undefined

unitless by name
Optional
No @default declared; consult the signature and description.
foreign.zeroRate(compounding).periodsPerYear
number

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
forwards
[string, number][]
Observed market FX forwards `[date, forward]` (domestic per foreign).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
spot
number
FX spot: domestic units per 1 foreign unit.
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

ImpliedCrossCurrencyBasisResult

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

export interface ImpliedCrossCurrencyBasisResult {
    /** Applied conventions, echoed (Law 2 report grammar). */
    assumptions: {
        conventionsVersion: string;
        [k: string]: unknown;
    };
    /** Structured warnings; always present (possibly empty). */
    diagnostics: {
        warnings: QuantWarning[];
    };
    /** Implied continuous cross-currency basis spread at each forward date (collateralized zero − foreign zero). */
    basis: {
        date: string;
        spread: number;
    }[];
}
Fields, parameters & returned members (5)
Name / typeMeaning & unitOptional / default
assumptions
{ [k: string]: unknown; conventionsVersion: string; }
Applied conventions, echoed (Law 2 report grammar).
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.
basis
{ date: string; spread: number; }[]
Implied continuous cross-currency basis spread at each forward date (collateralized zero − foreign zero).
unitless by name
Required / declared member
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.
diagnostics.warnings
QuantWarning[]

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

crossCurrencyBasisCurve

Build the domestic-collateralized foreign discount curve (spec §14.5): the foreign OIS curve plus the cross-currency basis, `D_for^dom = foreign.addSpread(basis)`. This is the curve on which to discount foreign cash flows collateralized in the domestic currency, and it reprices the FX forwards the xccy basis market quotes: `F(0,t) = spot · D_for^dom(t) / D_dom(t)`.

export declare function crossCurrencyBasisCurve(input: CrossCurrencyBasisInput): CrossCurrencyBasisResult;
Fields, parameters & returned members (11)
Name / typeMeaning & unitOptional / default
(input)
CrossCurrencyBasisInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).basis
YieldCurve
Cross-currency basis term structure added to the foreign curve (its zero rates ARE the basis spreads). Omit for the pure covered-interest-parity case (no basis): `fxForward` is then `spot · D_for(t)/D_dom(t)` and the collateralized curve is the foreign curve itself.
unitless by name
Optional
No @default declared; consult the signature and description.
(input).domestic
YieldCurve
Domestic collateral (OIS) discount curve.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).foreign
YieldCurve
Foreign index/OIS discount curve (pre-basis).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).spot
number
FX spot: domestic units per 1 foreign unit.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.assumptions
{ [k: string]: unknown; conventionsVersion: string; }
Applied conventions, echoed (Law 2 report grammar).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.assumptions.conventionsVersion
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.collateralizedCurve
YieldCurve
The domestic-collateralized foreign discount curve (`foreign + basis`). Discount foreign cash flows on THIS.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.diagnostics
{ warnings: QuantWarning[]; }
Structured warnings; always present (possibly empty).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.diagnostics.warnings
QuantWarning[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.fxForward
(at: string | number) => number
Market FX forward at `at`, from the collateralized curve: `spot · D_for^dom(at) / D_dom(at)`.
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

impliedCrossCurrencyBasis

Invert market FX forwards to the cross-currency basis (spec §14.5) — the inverse of {@link crossCurrencyBasisCurve}. From `F(0,t) = spot · D_for^dom(t)/D_dom(t)`, the collateralized foreign discount factor is `D_for^dom(t) = F(0,t)·D_dom(t)/spot`, and the implied basis is its continuous zero minus the foreign curve's own zero.

export declare function impliedCrossCurrencyBasis(input: ImpliedCrossCurrencyBasisInput): ImpliedCrossCurrencyBasisResult;
Fields, parameters & returned members (10)
Name / typeMeaning & unitOptional / default
(input)
ImpliedCrossCurrencyBasisInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).domestic
YieldCurve
Domestic collateral (OIS) discount curve.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).foreign
YieldCurve
Foreign index/OIS discount curve (pre-basis).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).forwards
[string, number][]
Observed market FX forwards `[date, forward]` (domestic per foreign).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).spot
number
FX spot: domestic units per 1 foreign unit.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.assumptions
{ [k: string]: unknown; conventionsVersion: string; }
Applied conventions, echoed (Law 2 report grammar).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.assumptions.conventionsVersion
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.basis
{ date: string; spread: number; }[]
Implied continuous cross-currency basis spread at each forward date (collateralized zero − foreign zero).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.diagnostics
{ warnings: QuantWarning[]; }
Structured warnings; always present (possibly empty).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.diagnostics.warnings
QuantWarning[]

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.