The finance developer workbenchSearch the reference Development · 0.1.4 · unpublished

interface

AbnormalReturnDelta

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

export interface AbnormalReturnDelta {
    tradingSessionOffset: number;
    baselineAverageAbnormalReturn: number | null;
    candidateAverageAbnormalReturn: number | null;
    absoluteDelta: number | null;
    baselineCumulativeAverageAbnormalReturn: number | null;
    candidateCumulativeAverageAbnormalReturn: number | null;
    cumulativeAbsoluteDelta: number | null;
}
Fields, parameters & returned members (7)
Name / typeMeaning & unitOptional / default
absoluteDelta
number | null

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

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

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

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

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

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

CountDelta

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

export interface CountDelta {
    reason: string;
    baselineCount: number;
    candidateCount: number;
    delta: number;
}
Fields, parameters & returned members (4)
Name / typeMeaning & unitOptional / default
baselineCount
number

count (integer)
Required / declared member
No @default declared; consult the signature and description.
candidateCount
number

count (integer)
Required / declared member
No @default declared; consult the signature and description.
delta
number

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

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

HygieneBacktestOverfitting

`backtestOverfittingProbability`'s result — risk's `BacktestOverfittingProbabilityResult`, structurally.

/** `backtestOverfittingProbability`'s result — risk's `BacktestOverfittingProbabilityResult`, structurally. */
export interface HygieneBacktestOverfitting {
    backtestOverfittingProbability: number;
    combinations: number;
    splits: number;
    observations: number;
    trials: number;
    medianLogit: number;
    assumptions: {
        conventionsVersion: string;
        [k: string]: unknown;
    };
    diagnostics: {
        warnings: QuantWarning[];
    };
}
Fields, parameters & returned members (10)
Name / typeMeaning & unitOptional / default
assumptions
{ [k: string]: unknown; conventionsVersion: string; }

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.
backtestOverfittingProbability
number

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

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.
diagnostics.warnings
QuantWarning[]

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

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

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

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

HygieneDeflatedSharpe

`deflatedSharpeRatio`'s result — risk's `DeflatedSharpeResult`, structurally.

/** `deflatedSharpeRatio`'s result — risk's `DeflatedSharpeResult`, structurally. */
export interface HygieneDeflatedSharpe {
    assumptions: {
        conventionsVersion: string;
        [k: string]: unknown;
    };
    diagnostics: {
        warnings: QuantWarning[];
    };
    /** `null` when the statistics carried no Sharpe (a zero-variance series). */
    deflatedSharpe: number | null;
    probabilisticSharpe: number | null;
    expectedMaxSharpe: number;
    trialCount: number;
}
Fields, parameters & returned members (8)
Name / typeMeaning & unitOptional / default
assumptions
{ [k: string]: unknown; conventionsVersion: string; }

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.
deflatedSharpe
number | null
`null` when the statistics carried no Sharpe (a zero-variance series).
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.
diagnostics.warnings
QuantWarning[]

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

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

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

count (integer)
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

HygieneLeakageReport

`detectLeakage`'s report — risk's `LeakageReport`, structurally.

/** `detectLeakage`'s report — risk's `LeakageReport`, structurally. */
export interface HygieneLeakageReport {
    assumptions: {
        conventionsVersion: string;
        [k: string]: unknown;
    };
    diagnostics: {
        warnings: QuantWarning[];
    };
    clean: boolean;
    leaks: Array<{
        split: number;
        overlapCount: number;
        sample: number[];
    }>;
}
Fields, parameters & returned members (6)
Name / typeMeaning & unitOptional / default
assumptions
{ [k: string]: unknown; conventionsVersion: string; }

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.
clean
boolean

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.
diagnostics.warnings
QuantWarning[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
leaks
{ split: number; overlapCount: number; sample: 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

HygieneMultipleTest

`adjustPValues`' result — risk's `MultipleTestResult`, structurally.

/** `adjustPValues`' result — risk's `MultipleTestResult`, structurally. */
export interface HygieneMultipleTest {
    method: 'bonferroni' | 'sidak' | 'holm' | 'benjaminiHochberg';
    alpha: number;
    adjusted: number[];
    rejected: boolean[];
}
Fields, parameters & returned members (4)
Name / typeMeaning & unitOptional / default
adjusted
number[]

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
method
'bonferroni' | 'sidak' | 'holm' | 'benjaminiHochberg'

unitless by name
Required / declared member
No @default declared; consult the signature and description.
rejected
boolean[]

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

HygieneParameterSweep

`parameterSweepDiagnostics`' result — risk's `ParameterSweepResult`, structurally.

/** `parameterSweepDiagnostics`' result — risk's `ParameterSweepResult`, structurally. */
export interface HygieneParameterSweep {
    trialCount: number;
    bestSharpe: number;
    meanSharpe: number;
    varianceSharpe: number;
    expectedMaxSharpe: number;
    /** `null` when the selected statistics carried no Sharpe (a zero-variance series). */
    deflatedSharpe: number | null;
    probabilisticSharpe: number | null;
}
Fields, parameters & returned members (7)
Name / typeMeaning & unitOptional / default
bestSharpe
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
deflatedSharpe
number | null
`null` when the selected statistics carried no Sharpe (a zero-variance series).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
expectedMaxSharpe
number

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

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

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

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

HygieneResearchVerdict

`researchProtocol`'s verdict — risk's `ResearchVerdict`, structurally.

/** `researchProtocol`'s verdict — risk's `ResearchVerdict`, structurally. */
export interface HygieneResearchVerdict {
    verdict: 'significant' | 'inconclusive' | 'likely-overfit';
    /** Sharpe figures are `null` when the returns had zero variance (C hygiene); the verdict is then `inconclusive`. */
    inSample: {
        sharpe: number | null;
        annualizedSharpe: number | null;
        observations: number;
    };
    deflatedSharpe: number | null;
    probabilisticSharpe: number | null;
    expectedMaxSharpe: number;
    trialCount: number;
    /** `Infinity` when the Sharpe is at or below its benchmark — a disclosed non-finite the producing law made legal. */
    minTrackRecordLength: number;
    outOfSample?: {
        sharpe: number | null;
        annualizedSharpe: number | null;
        degradation: number | null;
    };
    rationale: string;
    assumptions: {
        conventionsVersion: string;
        confidence: number;
        periodsPerYear: number;
    };
    diagnostics: {
        warnings: QuantWarning[];
    };
}
Fields, parameters & returned members (21)
Name / typeMeaning & unitOptional / default
assumptions
{ confidence: number; conventionsVersion: string; periodsPerYear: number; }

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

per year (count)
Required / declared member
No @default declared; consult the signature and description.
deflatedSharpe
number | null

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.
diagnostics.warnings
QuantWarning[]

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
inSample
{ annualizedSharpe: number | null; observations: number; sharpe: number | null; }
Sharpe figures are `null` when the returns had zero variance (C hygiene); the verdict is then `inconclusive`.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
inSample.annualizedSharpe
number | null

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
inSample.sharpe
number | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
minTrackRecordLength
number
`Infinity` when the Sharpe is at or below its benchmark — a disclosed non-finite the producing law made legal.
count (integer)
Required / declared member
No @default declared; consult the signature and description.
outOfSample
{ annualizedSharpe: number | null; degradation: number | null; sharpe: number | null; }

unitless by name
Optional
No @default declared; consult the signature and description.
outOfSample.annualizedSharpe
number | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
outOfSample.degradation
number | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
outOfSample.sharpe
number | null

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

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

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

count (integer)
Required / declared member
No @default declared; consult the signature and description.
verdict
'significant' | 'inconclusive' | 'likely-overfit'

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

HygieneVerdictSection

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

export interface HygieneVerdictSection {
    baseline: string;
    candidate: string;
    changed: boolean;
}
Fields, parameters & returned members (3)
Name / typeMeaning & unitOptional / default
baseline
string

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

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

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

IdListSection

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

export interface IdListSection {
    count: number;
    /** Listed up to `limits.listedIds`; the remainder is counted. */
    ids: string[];
    remainderCount: number;
}
Fields, parameters & returned members (3)
Name / typeMeaning & unitOptional / default
count
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
ids
string[]
Listed up to `limits.listedIds`; the remainder is counted.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
remainderCount
number

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

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

type

InputOf

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

export type InputOf<K extends ResearchRunKind> = ResearchRunInputs[K];
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

KeyedDelta

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

export interface KeyedDelta<Key> {
    key: Key;
    baselineValue: number | null;
    candidateValue: number | null;
    absoluteDelta: number | null;
}
Fields, parameters & returned members (4)
Name / typeMeaning & unitOptional / default
absoluteDelta
number | null

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

currency amount (the field or record currency)
Required / declared member
No @default declared; consult the signature and description.
candidateValue
number | null

currency amount (the field or record currency)
Required / declared member
No @default declared; consult the signature and description.
key
Key

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

MembershipSection

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

export interface MembershipSection {
    entered: IdListSection;
    exited: IdListSection;
    kept: IdListSection;
}
Fields, parameters & returned members (12)
Name / typeMeaning & unitOptional / default
entered
IdListSection

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
entered.ids
string[]
Listed up to `limits.listedIds`; the remainder is counted.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
entered.remainderCount
number

count (integer)
Required / declared member
No @default declared; consult the signature and description.
exited
IdListSection

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
exited.ids
string[]
Listed up to `limits.listedIds`; the remainder is counted.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
exited.remainderCount
number

count (integer)
Required / declared member
No @default declared; consult the signature and description.
kept
IdListSection

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
kept.ids
string[]
Listed up to `limits.listedIds`; the remainder is counted.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
kept.remainderCount
number

count (integer)
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

NamedDelta

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

export interface NamedDelta {
    name: string;
    baselineValue: number | null;
    candidateValue: number | null;
    absoluteDelta: number | null;
}
Fields, parameters & returned members (4)
Name / typeMeaning & unitOptional / default
absoluteDelta
number | null

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

currency amount (the field or record currency)
Required / declared member
No @default declared; consult the signature and description.
candidateValue
number | null

currency amount (the field or record currency)
Required / declared member
No @default declared; consult the signature and description.
name
string

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

PortfolioMembership

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

export interface PortfolioMembership {
    quantileIndex: number;
    membership: MembershipSection;
}
Fields, parameters & returned members (14)
Name / typeMeaning & unitOptional / default
membership
MembershipSection

unitless by name
Required / declared member
No @default declared; consult the signature and description.
membership.entered
IdListSection

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
membership.entered.ids
string[]
Listed up to `limits.listedIds`; the remainder is counted.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
membership.entered.remainderCount
number

count (integer)
Required / declared member
No @default declared; consult the signature and description.
membership.exited
IdListSection

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
membership.exited.ids
string[]
Listed up to `limits.listedIds`; the remainder is counted.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
membership.exited.remainderCount
number

count (integer)
Required / declared member
No @default declared; consult the signature and description.
membership.kept
IdListSection

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
membership.kept.ids
string[]
Listed up to `limits.listedIds`; the remainder is counted.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
membership.kept.remainderCount
number

count (integer)
Required / declared member
No @default declared; consult the signature and description.
quantileIndex
number

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

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

value

RESEARCH_RUN_ARTIFACT_TYPE

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

export declare const RESEARCH_RUN_ARTIFACT_TYPE: 'research.run';
Stability, warnings & conventions
stable-by-law (pre-1.0; not a 1.0 stability guarantee)

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

value

RESEARCH_RUN_KINDS

The frozen descriptor per run kind — Program 5's registry metadata without a registry.

export declare const RESEARCH_RUN_KINDS: Readonly<Record<ResearchRunKind, ResearchRunKindDescriptor>>;
Stability, warnings & conventions
stable-by-law (pre-1.0; not a 1.0 stability guarantee)

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

value

RESEARCH_RUN_LIMITS

Decision 9's bounded-work table (core's `ARTIFACT_WORK_LIMITS`, re-exported for this subpath's callers).

export declare const RESEARCH_RUN_LIMITS: Readonly<{ maximumEmbeddedBytes: Readonly<{ default: 1048576; maximum: 8388608; }>; embeddedRowLimit: Readonly<{ default: 5000; maximum: 50000; }>; maximumDifferences: Readonly<{ default: 1000; maximum: 100000; }>; maximumLeaves: Readonly<{ default: 2000000; maximum: 2000000; }>; gridPoints: Readonly<{ default: 256; maximum: 4096; }>; restarts: Readonly<{ maximum: 64; }>; holdoutEvaluations: Readonly<{ maximum: 100000; }>; listedIds: Readonly<{ default: 200; maximum: 10000; }>; }>;
Fields, parameters & returned members (22)
Name / typeMeaning & unitOptional / default
embeddedRowLimit
Readonly<{ default: 5000; maximum: 50000; }>

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
embeddedRowLimit.maximum
50000

unitless by name
Required / declared member
No @default declared; consult the signature and description.
gridPoints
Readonly<{ default: 256; maximum: 4096; }>

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
gridPoints.maximum
4096

unitless by name
Required / declared member
No @default declared; consult the signature and description.
holdoutEvaluations
Readonly<{ maximum: 100000; }>

unitless by name
Required / declared member
No @default declared; consult the signature and description.
holdoutEvaluations.maximum
100000

unitless by name
Required / declared member
No @default declared; consult the signature and description.
listedIds
Readonly<{ default: 200; maximum: 10000; }>

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
listedIds.maximum
10000

unitless by name
Required / declared member
No @default declared; consult the signature and description.
maximumDifferences
Readonly<{ default: 1000; maximum: 100000; }>

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
maximumDifferences.maximum
100000

unitless by name
Required / declared member
No @default declared; consult the signature and description.
maximumEmbeddedBytes
Readonly<{ default: 1048576; maximum: 8388608; }>

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
maximumEmbeddedBytes.maximum
8388608

unitless by name
Required / declared member
No @default declared; consult the signature and description.
maximumLeaves
Readonly<{ default: 2000000; maximum: 2000000; }>

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
maximumLeaves.maximum
2000000

unitless by name
Required / declared member
No @default declared; consult the signature and description.
restarts
Readonly<{ maximum: 64; }>

unitless by name
Required / declared member
No @default declared; consult the signature and description.
restarts.maximum
64

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

RankMove

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

export interface RankMove {
    instrumentId: string;
    baselineRank: number;
    candidateRank: number;
    /** candidate − baseline (positive = moved down the ranking). */
    delta: number;
}
Fields, parameters & returned members (4)
Name / typeMeaning & unitOptional / default
baselineRank
number

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
delta
number
candidate − baseline (positive = moved down the ranking).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
instrumentId
string

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

RankMovesSection

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

export interface RankMovesSection {
    /** Instruments ranked on both sides whose rank changed. */
    movedCount: number;
    /** The largest movers by |delta|, listed up to `limits.listedIds`. */
    movers: RankMove[];
    remainderCount: number;
}
Fields, parameters & returned members (3)
Name / typeMeaning & unitOptional / default
movedCount
number
Instruments ranked on both sides whose rank changed.
count (integer)
Required / declared member
No @default declared; consult the signature and description.
movers
RankMove[]
The largest movers by |delta|, listed up to `limits.listedIds`.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
remainderCount
number

count (integer)
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

ReadResearchRunResult

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

export interface ReadResearchRunResult<Kind extends ResearchRunKind = ResearchRunKind> {
    report: ResearchRunReport<Kind>;
    artifact: AnalysisArtifact;
    /** Envelope-level migrations applied by the Gate B read door. */
    migrationsApplied: AppliedMigration[];
    /** Report-level (run-version) migrations applied under `research.run:<kind>` — the same echo shape as the fitted-model read doors. */
    modelMigrationsApplied: AppliedMigration[];
}
Fields, parameters & returned members (119)
Name / typeMeaning & unitOptional / default
artifact
AnalysisArtifact

unitless by name
Required / declared member
No @default declared; consult the signature and description.
artifact.artifactType
string
Dot-namespaced artifact type, e.g. `'options.chain-analysis'` — names the result schema.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
artifact.conventionsVersion
string
The library conventions revision the artifact was CREATED under — stamped from core's `CONVENTIONS_VERSION` (the market snapshot's law, one law), never an echo of the result and never caller-set. Covered by the id; validated as a non-empty string on read.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
artifact.createdFrom
string[]
Parent artifact ids this one was derived from, oldest first.
unitless by name
Optional
No @default declared; consult the signature and description.
artifact.id
string
Content hash of the body (everything but `id` and `provenance`) — stamped at creation.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
artifact.inputs
import('@insiderfinance/totalfinance/core/artifacts').ArtifactInputs

unitless by name
Required / declared member
No @default declared; consult the signature and description.
artifact.inputs.inputsHash
string
Hash of everything replay needs: `{ snapshotHash, parameters }` — stamped, not caller-set, and RECOMPUTED from the stored fields on every validation pass (create and read), so a tampered hash or tampered inputs are refused even when the outer id was re-minted to match.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
artifact.inputs.parameters
unknown
The small, JSON-safe call parameters, embedded verbatim. Reference big inputs via tables.
unitless by name
Optional
No @default declared; consult the signature and description.
artifact.inputs.snapshotHash
string
`marketSnapshotContentHash(...)` of the snapshot the analysis read, when one was used.
unitless by name
Optional
No @default declared; consult the signature and description.
artifact.kind
'totalfinance.analysis-artifact'

unitless by name
Required / declared member
No @default declared; consult the signature and description.
artifact.producedBy
import('@insiderfinance/totalfinance/core/artifacts').ArtifactProducedBy

unitless by name
Required / declared member
No @default declared; consult the signature and description.
artifact.producedBy.libraryVersion
string
The TotalFinance version that produced it, when the caller knows it (e.g. from package.json).
unitless by name
Optional
No @default declared; consult the signature and description.
artifact.producedBy.operation
string
The public operation name, e.g. `'analyzeChain'` or `'options.blackScholes.explain'`.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
artifact.provenance
Provenance
Data lineage, caller-supplied, outside the id (labels are not identity).
unitless by name
Optional
No @default declared; consult the signature and description.
artifact.provenance.asOf
number

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

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

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

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

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

unitless by name
Optional
No @default declared; consult the signature and description.
artifact.provenance.warnings
QuantWarning[]

unitless by name
Optional
No @default declared; consult the signature and description.
artifact.result
Record<string, unknown>
The producing call's return value, verbatim: `{ …, assumptions, diagnostics }`.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
artifact.schemaVersion
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
artifact.tables
Record<string, TableHandle>
Named large-table references — rows live where storage puts them, identity lives here.
unitless by name
Optional
No @default declared; consult the signature and description.
migrationsApplied
AppliedMigration[]
Envelope-level migrations applied by the Gate B read door.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
modelMigrationsApplied
AppliedMigration[]
Report-level (run-version) migrations applied under `research.run:<kind>` — the same echo shape as the fitted-model read doors.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
report
ResearchRunReport<Kind>

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.assumptions
{ conventionsVersion: string; kind: Kind; runVersion: number; operation: string; replayable: boolean; nonReplayableField: string | null; inputPolicy: 'embedded' | 'referenced'; embeddedRowLimit: number; projection: string; }

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.assumptions.inputPolicy
'embedded' | 'referenced'

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.assumptions.kind
Kind

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.assumptions.nonReplayableField
string | null
The callback field that made the run non-replayable, when one did.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.assumptions.operation
string

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.assumptions.replayable
boolean
`false` exactly when a non-serializable callback participated.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.assumptions.runVersion
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.diagnostics
{ warnings: QuantWarning[]; embeddedRows: number; referencedRows: number; runWarningCount: number; }

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

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

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

count (integer)
Required / declared member
No @default declared; consult the signature and description.
report.diagnostics.warnings
QuantWarning[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene
ResearchHygieneBlock | null
Statistical-hygiene results the caller attached, verbatim — computed by @insiderfinance/totalfinance/risk, never here.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.backtestOverfitting
import('@insiderfinance/totalfinance/research/artifacts').HygieneBacktestOverfitting

unitless by name
Optional
No @default declared; consult the signature and description.
report.hygiene.backtestOverfitting.assumptions
{ [k: string]: unknown; conventionsVersion: string; }

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.backtestOverfitting.backtestOverfittingProbability
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.backtestOverfitting.combinations
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.backtestOverfitting.diagnostics
{ warnings: QuantWarning[]; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.backtestOverfitting.diagnostics.warnings
QuantWarning[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.backtestOverfitting.medianLogit
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.backtestOverfitting.observations
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.backtestOverfitting.splits
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.backtestOverfitting.trials
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.deflatedSharpe
import('@insiderfinance/totalfinance/research/artifacts').HygieneDeflatedSharpe

unitless by name
Optional
No @default declared; consult the signature and description.
report.hygiene.deflatedSharpe.assumptions
{ [k: string]: unknown; conventionsVersion: string; }

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.deflatedSharpe.deflatedSharpe
number | null
`null` when the statistics carried no Sharpe (a zero-variance series).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.deflatedSharpe.diagnostics
{ warnings: QuantWarning[]; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.deflatedSharpe.diagnostics.warnings
QuantWarning[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.deflatedSharpe.expectedMaxSharpe
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.deflatedSharpe.probabilisticSharpe
number | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.deflatedSharpe.trialCount
number

count (integer)
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.leakage
import('@insiderfinance/totalfinance/research/artifacts').HygieneLeakageReport

unitless by name
Optional
No @default declared; consult the signature and description.
report.hygiene.leakage.assumptions
{ [k: string]: unknown; conventionsVersion: string; }

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.leakage.clean
boolean

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.leakage.diagnostics
{ warnings: QuantWarning[]; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.leakage.diagnostics.warnings
QuantWarning[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.leakage.leaks
{ split: number; overlapCount: number; sample: number[]; }[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.multipleTesting
import('@insiderfinance/totalfinance/research/artifacts').HygieneMultipleTest

unitless by name
Optional
No @default declared; consult the signature and description.
report.hygiene.multipleTesting.adjusted
number[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.multipleTesting.alpha
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.multipleTesting.method
'bonferroni' | 'sidak' | 'holm' | 'benjaminiHochberg'

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.multipleTesting.rejected
boolean[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.parameterSweep
import('@insiderfinance/totalfinance/research/artifacts').HygieneParameterSweep

unitless by name
Optional
No @default declared; consult the signature and description.
report.hygiene.parameterSweep.bestSharpe
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.parameterSweep.deflatedSharpe
number | null
`null` when the selected statistics carried no Sharpe (a zero-variance series).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.parameterSweep.expectedMaxSharpe
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.parameterSweep.meanSharpe
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.parameterSweep.probabilisticSharpe
number | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.parameterSweep.trialCount
number

count (integer)
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.parameterSweep.varianceSharpe
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.protocol
import('@insiderfinance/totalfinance/research/artifacts').HygieneResearchVerdict

unitless by name
Optional
No @default declared; consult the signature and description.
report.hygiene.protocol.assumptions
{ conventionsVersion: string; confidence: number; periodsPerYear: number; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.protocol.assumptions.confidence
number

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.protocol.assumptions.periodsPerYear
number

per year (count)
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.protocol.deflatedSharpe
number | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.protocol.diagnostics
{ warnings: QuantWarning[]; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.protocol.diagnostics.warnings
QuantWarning[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.protocol.expectedMaxSharpe
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.protocol.inSample
{ sharpe: number | null; annualizedSharpe: number | null; observations: number; }
Sharpe figures are `null` when the returns had zero variance (C hygiene); the verdict is then `inconclusive`.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.protocol.inSample.annualizedSharpe
number | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.protocol.inSample.observations
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.protocol.inSample.sharpe
number | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.protocol.minTrackRecordLength
number
`Infinity` when the Sharpe is at or below its benchmark — a disclosed non-finite the producing law made legal.
count (integer)
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.protocol.outOfSample
{ sharpe: number | null; annualizedSharpe: number | null; degradation: number | null; }

unitless by name
Optional
No @default declared; consult the signature and description.
report.hygiene.protocol.outOfSample.annualizedSharpe
number | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.protocol.outOfSample.degradation
number | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.protocol.outOfSample.sharpe
number | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.protocol.probabilisticSharpe
number | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.protocol.rationale
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.protocol.trialCount
number

count (integer)
Required / declared member
No @default declared; consult the signature and description.
report.hygiene.protocol.verdict
'significant' | 'inconclusive' | 'likely-overfit'

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.inputs
Referenced<InputOf<Kind>>
The operation's input with bulk rows either embedded or replaced by verified table references.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.kind
Kind

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.recipe
FactorRecipe | null
The versioned recipe the caller says produced the factor, when one did.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.recipe.direction
'higher-is-better' | 'lower-is-better'

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.recipe.disclosure
string
The disclosure every canonical recipe carries: a definition, not the definition.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.recipe.features
readonly import('@insiderfinance/totalfinance/research').FactorRecipeFeature[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.recipe.lagTradingSessions
number
Sessions between the information date and use — the lookahead guard.
trading sessions
Required / declared member
No @default declared; consult the signature and description.
report.recipe.missingValuePolicy
'exclude' | 'renormalize-weights'

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.recipe.neutralization
'none' | 'sector' | 'sector-and-size'

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.recipe.recipeName
string

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.referencedData
Record<string, TableHandle>
Table references for every bulk row set that was not embedded (Gate B TableHandle).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.run
RunOf<Kind>
The direct operation's result, verbatim.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
report.runVersion
number

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

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

type

Referenced

The stored form of an input: every bulk array may be a `TableHandle` instead of its rows, and a caller function is never stored (the run is recorded non-replayable and the field omitted).

/**
 * The stored form of an input: every bulk array may be a `TableHandle` instead of its rows, and a
 * caller function is never stored (the run is recorded non-replayable and the field omitted).
 */
export type Referenced<T> = T extends (...args: never[]) => unknown ? never : T extends readonly (infer Element)[] ? readonly Referenced<Element>[] | TableHandle : T extends object ? {
    [P in keyof T]: Referenced<T[P]>;
} : T;
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

ResearchHygieneBlock

The closed block: every member optional, every present member verbatim.

/** The closed block: every member optional, every present member verbatim. */
export interface ResearchHygieneBlock {
    protocol?: HygieneResearchVerdict;
    deflatedSharpe?: HygieneDeflatedSharpe;
    backtestOverfitting?: HygieneBacktestOverfitting;
    leakage?: HygieneLeakageReport;
    parameterSweep?: HygieneParameterSweep;
    multipleTesting?: HygieneMultipleTest;
}
Fields, parameters & returned members (62)
Name / typeMeaning & unitOptional / default
backtestOverfitting
HygieneBacktestOverfitting

unitless by name
Optional
No @default declared; consult the signature and description.
backtestOverfitting.assumptions
{ [k: string]: unknown; conventionsVersion: string; }

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

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
backtestOverfitting.diagnostics
{ warnings: QuantWarning[]; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
backtestOverfitting.diagnostics.warnings
QuantWarning[]

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

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

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

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

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

unitless by name
Optional
No @default declared; consult the signature and description.
deflatedSharpe.assumptions
{ [k: string]: unknown; conventionsVersion: string; }

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
deflatedSharpe.deflatedSharpe
number | null
`null` when the statistics carried no Sharpe (a zero-variance series).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
deflatedSharpe.diagnostics
{ warnings: QuantWarning[]; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
deflatedSharpe.diagnostics.warnings
QuantWarning[]

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
deflatedSharpe.probabilisticSharpe
number | null

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

count (integer)
Required / declared member
No @default declared; consult the signature and description.
leakage
HygieneLeakageReport

unitless by name
Optional
No @default declared; consult the signature and description.
leakage.assumptions
{ [k: string]: unknown; conventionsVersion: string; }

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
leakage.diagnostics
{ warnings: QuantWarning[]; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
leakage.diagnostics.warnings
QuantWarning[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
leakage.leaks
{ split: number; overlapCount: number; sample: number[]; }[]

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

unitless by name
Optional
No @default declared; consult the signature and description.
multipleTesting.adjusted
number[]

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
multipleTesting.method
'bonferroni' | 'sidak' | 'holm' | 'benjaminiHochberg'

unitless by name
Required / declared member
No @default declared; consult the signature and description.
multipleTesting.rejected
boolean[]

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
parameterSweep.deflatedSharpe
number | null
`null` when the selected statistics carried no Sharpe (a zero-variance series).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
parameterSweep.expectedMaxSharpe
number

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
parameterSweep.probabilisticSharpe
number | null

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

count (integer)
Required / declared member
No @default declared; consult the signature and description.
parameterSweep.varianceSharpe
number

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

unitless by name
Optional
No @default declared; consult the signature and description.
protocol.assumptions
{ confidence: number; conventionsVersion: string; periodsPerYear: number; }

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

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

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

per year (count)
Required / declared member
No @default declared; consult the signature and description.
protocol.deflatedSharpe
number | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
protocol.diagnostics
{ warnings: QuantWarning[]; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
protocol.diagnostics.warnings
QuantWarning[]

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
protocol.inSample
{ annualizedSharpe: number | null; observations: number; sharpe: number | null; }
Sharpe figures are `null` when the returns had zero variance (C hygiene); the verdict is then `inconclusive`.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
protocol.inSample.annualizedSharpe
number | null

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
protocol.inSample.sharpe
number | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
protocol.minTrackRecordLength
number
`Infinity` when the Sharpe is at or below its benchmark — a disclosed non-finite the producing law made legal.
count (integer)
Required / declared member
No @default declared; consult the signature and description.
protocol.outOfSample
{ annualizedSharpe: number | null; degradation: number | null; sharpe: number | null; }

unitless by name
Optional
No @default declared; consult the signature and description.
protocol.outOfSample.annualizedSharpe
number | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
protocol.outOfSample.degradation
number | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
protocol.outOfSample.sharpe
number | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
protocol.probabilisticSharpe
number | null

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

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

count (integer)
Required / declared member
No @default declared; consult the signature and description.
protocol.verdict
'significant' | 'inconclusive' | 'likely-overfit'

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

ResearchRunArtifactInput

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

export interface ResearchRunArtifactInput<Kind extends ResearchRunKind> {
    kind: Kind;
    /** The direct operation's result, verbatim. */
    run: RunOf<Kind>;
    /** The operation's input as it was called — rows included; a caller function is recorded and not stored. */
    input: InputOf<Kind>;
    /** Concrete row-set labels (`observations`, `horizons[0].forwardReturns`) to store by `TableHandle` instead of embedding. */
    referenceRowSets?: readonly string[];
    /** Storage locators to stamp on the minted handles, keyed by row-set label. */
    locators?: Record<string, string>;
    /** Up to six verbatim @insiderfinance/totalfinance/risk results — validated structurally, stored verbatim, never recomputed. */
    hygiene?: ResearchHygieneBlock;
    /** The versioned factor recipe that produced the factor, stored verbatim (covered by the artifact id). */
    recipe?: FactorRecipe;
    snapshotHash?: string;
    libraryVersion?: string;
    /** Parent artifact ids (a transform, a prior study, a portfolio set) so lineage is walkable. */
    createdFrom?: string[];
    provenance?: Provenance;
    limits?: ResearchRunArtifactLimits;
}
Fields, parameters & returned members (91)
Name / typeMeaning & unitOptional / default
createdFrom
string[]
Parent artifact ids (a transform, a prior study, a portfolio set) so lineage is walkable.
unitless by name
Optional
No @default declared; consult the signature and description.
hygiene
ResearchHygieneBlock
Up to six verbatim @insiderfinance/totalfinance/risk results — validated structurally, stored verbatim, never recomputed.
unitless by name
Optional
No @default declared; consult the signature and description.
hygiene.backtestOverfitting
import('@insiderfinance/totalfinance/research/artifacts').HygieneBacktestOverfitting

unitless by name
Optional
No @default declared; consult the signature and description.
hygiene.backtestOverfitting.assumptions
{ [k: string]: unknown; conventionsVersion: string; }

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

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.backtestOverfitting.diagnostics
{ warnings: QuantWarning[]; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.backtestOverfitting.diagnostics.warnings
QuantWarning[]

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

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

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.deflatedSharpe
import('@insiderfinance/totalfinance/research/artifacts').HygieneDeflatedSharpe

unitless by name
Optional
No @default declared; consult the signature and description.
hygiene.deflatedSharpe.assumptions
{ [k: string]: unknown; conventionsVersion: string; }

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.deflatedSharpe.deflatedSharpe
number | null
`null` when the statistics carried no Sharpe (a zero-variance series).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.deflatedSharpe.diagnostics
{ warnings: QuantWarning[]; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.deflatedSharpe.diagnostics.warnings
QuantWarning[]

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.deflatedSharpe.probabilisticSharpe
number | null

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

count (integer)
Required / declared member
No @default declared; consult the signature and description.
hygiene.leakage
import('@insiderfinance/totalfinance/research/artifacts').HygieneLeakageReport

unitless by name
Optional
No @default declared; consult the signature and description.
hygiene.leakage.assumptions
{ [k: string]: unknown; conventionsVersion: string; }

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.leakage.clean
boolean

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.leakage.diagnostics
{ warnings: QuantWarning[]; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.leakage.diagnostics.warnings
QuantWarning[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.leakage.leaks
{ split: number; overlapCount: number; sample: number[]; }[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.multipleTesting
import('@insiderfinance/totalfinance/research/artifacts').HygieneMultipleTest

unitless by name
Optional
No @default declared; consult the signature and description.
hygiene.multipleTesting.adjusted
number[]

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.multipleTesting.method
'bonferroni' | 'sidak' | 'holm' | 'benjaminiHochberg'

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.multipleTesting.rejected
boolean[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.parameterSweep
import('@insiderfinance/totalfinance/research/artifacts').HygieneParameterSweep

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.parameterSweep.deflatedSharpe
number | null
`null` when the selected statistics carried no Sharpe (a zero-variance series).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.parameterSweep.expectedMaxSharpe
number

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.parameterSweep.probabilisticSharpe
number | null

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

count (integer)
Required / declared member
No @default declared; consult the signature and description.
hygiene.parameterSweep.varianceSharpe
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.protocol
import('@insiderfinance/totalfinance/research/artifacts').HygieneResearchVerdict

unitless by name
Optional
No @default declared; consult the signature and description.
hygiene.protocol.assumptions
{ confidence: number; conventionsVersion: string; periodsPerYear: number; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.protocol.assumptions.confidence
number

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.protocol.assumptions.periodsPerYear
number

per year (count)
Required / declared member
No @default declared; consult the signature and description.
hygiene.protocol.deflatedSharpe
number | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.protocol.diagnostics
{ warnings: QuantWarning[]; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.protocol.diagnostics.warnings
QuantWarning[]

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.protocol.inSample
{ annualizedSharpe: number | null; observations: number; sharpe: number | null; }
Sharpe figures are `null` when the returns had zero variance (C hygiene); the verdict is then `inconclusive`.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.protocol.inSample.annualizedSharpe
number | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.protocol.inSample.observations
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.protocol.inSample.sharpe
number | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.protocol.minTrackRecordLength
number
`Infinity` when the Sharpe is at or below its benchmark — a disclosed non-finite the producing law made legal.
count (integer)
Required / declared member
No @default declared; consult the signature and description.
hygiene.protocol.outOfSample
{ annualizedSharpe: number | null; degradation: number | null; sharpe: number | null; }

unitless by name
Optional
No @default declared; consult the signature and description.
hygiene.protocol.outOfSample.annualizedSharpe
number | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.protocol.outOfSample.degradation
number | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.protocol.outOfSample.sharpe
number | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.protocol.probabilisticSharpe
number | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
hygiene.protocol.rationale
string

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

count (integer)
Required / declared member
No @default declared; consult the signature and description.
hygiene.protocol.verdict
'significant' | 'inconclusive' | 'likely-overfit'

unitless by name
Required / declared member
No @default declared; consult the signature and description.
input
InputOf<Kind>
The operation's input as it was called — rows included; a caller function is recorded and not stored.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
kind
Kind

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

unitless by name
Optional
No @default declared; consult the signature and description.
limits
ResearchRunArtifactLimits

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

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

unitless by name
Optional
No @default declared; consult the signature and description.
locators
Record<string, string>
Storage locators to stamp on the minted handles, keyed by row-set label.
unitless by name
Optional
No @default declared; consult the signature and description.
provenance
Provenance

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

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

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

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

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

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

unitless by name
Optional
No @default declared; consult the signature and description.
provenance.warnings
QuantWarning[]

unitless by name
Optional
No @default declared; consult the signature and description.
recipe
FactorRecipe
The versioned factor recipe that produced the factor, stored verbatim (covered by the artifact id).
unitless by name
Optional
No @default declared; consult the signature and description.
recipe.direction
'higher-is-better' | 'lower-is-better'

unitless by name
Required / declared member
No @default declared; consult the signature and description.
recipe.disclosure
string
The disclosure every canonical recipe carries: a definition, not the definition.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
recipe.features
readonly import('@insiderfinance/totalfinance/research').FactorRecipeFeature[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
recipe.lagTradingSessions
number
Sessions between the information date and use — the lookahead guard.
trading sessions
Required / declared member
No @default declared; consult the signature and description.
recipe.missingValuePolicy
'exclude' | 'renormalize-weights'

unitless by name
Required / declared member
No @default declared; consult the signature and description.
recipe.neutralization
'none' | 'sector' | 'sector-and-size'

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
referenceRowSets
readonly string[]
Concrete row-set labels (`observations`, `horizons[0].forwardReturns`) to store by `TableHandle` instead of embedding.
unitless by name
Optional
No @default declared; consult the signature and description.
run
RunOf<Kind>
The direct operation's result, verbatim.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
snapshotHash
string

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

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

interface

ResearchRunArtifactLimits

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

export interface ResearchRunArtifactLimits {
    maximumEmbeddedBytes?: number;
    embeddedRowLimit?: number;
}
Fields, parameters & returned members (2)
Name / typeMeaning & unitOptional / default
embeddedRowLimit
number

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

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

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