The finance developer workbenchSearch the reference Development · 0.1.4 · unpublished

Public API / @insiderfinance/totalfinance

@insiderfinance/totalfinance/fundamentals

import from '@insiderfinance/totalfinance/fundamentals'

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

Jump to an export (106)

AltmanComponent · AltmanInput · AltmanResult · AltmanVariant · AnalyzeFundamentalsInput · AnalyzeFundamentalsResult · AnalyzedRatio · BalanceSheet · BalanceSheetRatioInput · BeneishComponent · BeneishInput · BeneishResult · CashFlowStatement · CommonSizeInput · CommonSizeResult · DayMetricRatioInput · DebtServiceCoverageInput · DebtServiceRatioInput · EnterpriseMultipleRatioInput · FinancialStatements · FundamentalGrowthInput · FundamentalGrowthResult · FundamentalPeriod · FundamentalSeries · FundamentalSnapshot · IncomeStatement · IncomeStatementRatioInput · InvestedCapitalRatioInput · MarketMultipleRatioInput · MarketObservation · PairRatioInput · PerShareFundamentalsInput · PerShareFundamentalsResult · PiotroskiInput · PiotroskiResult · PiotroskiSignal · RatioCategory · RatioFacade · RatioInput · RatioPeriodIdentity · RatioReport · RawFundamentalsRecord · ReconcileStatementsInput · ReconciliationCheck · ReconciliationResult · RestatementPolicy · SelectFundamentalSnapshotInput · SingleStatementRatioInput · TrailingTwelveMonthInput · accrualRatio · altmanZScore · analyzeFundamentals · assetTurnover · beneishMScore · bookValuePerShare · cashConversionCycle · cashFlowToNetIncome · cashRatio · cashReturnOnAssets · commonSizeFinancialStatements · currentRatio · daysInventoryOutstanding · daysPayablesOutstanding · daysSalesOutstanding · debtServiceCoverage · debtToAssets · debtToEquity · dividendYield · earningsPerShare · earningsYield · ebitdaMargin · enterpriseValueToEbitda · enterpriseValueToRevenue · freeCashFlowPerShare · freeCashFlowYield · fundamentalGrowth · grossMargin · interestCoverage · inventoryTurnover · isPeriodAvailableAt · netDebtToEbitda · netProfitMargin · operatingMargin · payablesTurnover · perShareFundamentals · piotroskiFScore · priceToBook · priceToEarnings · priceToSales · quickRatio · receivablesTurnover · reconcileFinancialStatements · requireBalanceSheet · requireCashFlowStatement · requireFinancialStatements · requireFundamentalPeriod · requireIncomeStatement · requireMarketObservation · returnOnAssets · returnOnCapitalEmployed · returnOnEquity · returnOnInvestedCapital · revenuePerShare · selectFundamentalSnapshot · statementsAvailableTimestampMs · trailingTwelveMonthStatements

interface

ReconciliationResult

Result of {@link reconcileFinancialStatements}.

/** Result of {@link reconcileFinancialStatements}. */
export interface ReconciliationResult {
    assumptions: {
        /** Absolute tolerance in reported units, echoed (default 1). */
        toleranceAmount: number;
    };
    diagnostics: {
        /** One warning per failed or unevaluable check. */
        warnings: string[];
    };
    checks: ReconciliationCheck[];
    toleranceAmount: number;
    /** True when every evaluable check is within tolerance. */
    reconciles: boolean;
}
Fields, parameters & returned members (7)
Name / typeMeaning & unitOptional / default
assumptions
{ toleranceAmount: number; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
assumptions.toleranceAmount
number
Absolute tolerance in reported units, echoed (default 1).
currency amount (the field or record currency)
Required / declared member
No @default declared; consult the signature and description.
checks
ReconciliationCheck[]

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
diagnostics.warnings
string[]
One warning per failed or unevaluable check.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
reconciles
boolean
True when every evaluable check is within tolerance.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
toleranceAmount
number

currency amount (the field or record currency)
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

RestatementPolicy

How {@link selectFundamentalSnapshot } resolves multiple visible versions of one period.

/** How {@link selectFundamentalSnapshot} resolves multiple visible versions of one period. */
export type RestatementPolicy = 'latest-available' | 'first-reported';
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

SelectFundamentalSnapshotInput

Input for {@link selectFundamentalSnapshot}.

// ---------------------------------------------------------------------------------------------------
// selectFundamentalSnapshot
// ---------------------------------------------------------------------------------------------------
/** Input for {@link selectFundamentalSnapshot}. */
export interface SelectFundamentalSnapshotInput {
    series: FundamentalSeries;
    /** The observation instant (epoch ms). Only sets whose availability is at or before it qualify. */
    asOf: EpochMs;
    /** How multiple visible versions of one period resolve. */
    restatementPolicy: RestatementPolicy;
}
Fields, parameters & returned members (5)
Name / typeMeaning & unitOptional / default
asOf
number
The observation instant (epoch ms). Only sets whose availability is at or before it qualify.
an instant: epoch milliseconds or a YYYY-MM-DD / zoned ISO string (the resolveAsOf convention)
Required / declared member
No @default declared; consult the signature and description.
restatementPolicy
RestatementPolicy
How multiple visible versions of one period resolve.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
series
FundamentalSeries

unitless by name
Required / declared member
No @default declared; consult the signature and description.
series.entity
string
Optional entity label carried into diagnostics (a symbol, CIK, or internal id).
unitless by name
Optional
No @default declared; consult the signature and description.
series.statements
readonly FinancialStatements[]

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

SingleStatementRatioInput

Single-period heads.

/** Single-period heads. */
export interface SingleStatementRatioInput {
    statements: FinancialStatements;
}
Fields, parameters & returned members (83)
Name / typeMeaning & unitOptional / default
statements
FinancialStatements

unitless by name
Required / declared member
No @default declared; consult the signature and description.
statements.balance
BalanceSheet

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

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

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

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

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

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

unitless by name
Optional
No @default declared; consult the signature and description.
statements.balance.longTermDebt
number
Interest-bearing debt due beyond one year.
unitless by name
Optional
No @default declared; consult the signature and description.
statements.balance.metadata
Record<string, unknown>
Source-specific extras, preserved verbatim and never consumed by compute functions.
unitless by name
Optional
No @default declared; consult the signature and description.
statements.balance.minorityInterest
number

unitless by name
Optional
No @default declared; consult the signature and description.
statements.balance.period
import('@insiderfinance/totalfinance/fundamentals').FundamentalPeriod

unitless by name
Required / declared member
No @default declared; consult the signature and description.
statements.balance.period.accession
string
Source accession identifier, when known.
unitless by name
Optional
No @default declared; consult the signature and description.
statements.balance.period.availableTimestampMs
number
When the data became AVAILABLE to an observer — the point-in-time eligibility instant. A backtest or event study must not see this period before this time; `periodEndDate` never controls eligibility.
epoch milliseconds (UTC instant)
Required / declared member
No @default declared; consult the signature and description.
statements.balance.period.currency
string
ISO 4217 currency of the monetary figures.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
statements.balance.period.filedTimestampMs
number
When the filing was made, when known.
epoch milliseconds (UTC instant)
Optional
No @default declared; consult the signature and description.
statements.balance.period.fiscalQuarter
1 | 2 | 3 | 4

unitless by name
Optional
No @default declared; consult the signature and description.
statements.balance.period.fiscalYear
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
statements.balance.period.form
string
Source form (e.g. `10-Q`), when known.
unitless by name
Optional
No @default declared; consult the signature and description.
statements.balance.period.monetaryScale
1 | 1000 | 1000000
Monetary figures are reported in units of this scale.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
statements.balance.period.periodEndDate
string
Strict `YYYY-MM-DD` calendar date the period ends on.
calendar date (YYYY-MM-DD)
Required / declared member
No @default declared; consult the signature and description.
statements.balance.period.periodStartDate
string
Strict `YYYY-MM-DD` calendar date; optional because some sources report only period ends.
calendar date (YYYY-MM-DD)
Optional
No @default declared; consult the signature and description.
statements.balance.period.periodType
'quarter' | 'year' | 'trailing-twelve-months'

unitless by name
Required / declared member
No @default declared; consult the signature and description.
statements.balance.period.restatementOf
string
When this record restates an earlier one, the accession (or identifier) it restates.
unitless by name
Optional
No @default declared; consult the signature and description.
statements.balance.preferredEquity
number

unitless by name
Optional
No @default declared; consult the signature and description.
statements.balance.propertyPlantEquipmentNet
number
Net property, plant, and equipment.
unitless by name
Optional
No @default declared; consult the signature and description.
statements.balance.retainedEarnings
number

unitless by name
Optional
No @default declared; consult the signature and description.
statements.balance.shortTermDebt
number
Interest-bearing debt due within one year.
unitless by name
Optional
No @default declared; consult the signature and description.
statements.balance.shortTermInvestments
number

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
statements.balance.totalDebt
number
Total interest-bearing debt. When absent and both maturities are present, consumers may derive `shortTermDebt + longTermDebt` and say so; "debt" NEVER silently means total liabilities.
unitless by name
Optional
No @default declared; consult the signature and description.
statements.balance.totalEquity
number

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
statements.cashFlow
import('@insiderfinance/totalfinance/fundamentals').CashFlowStatement

unitless by name
Required / declared member
No @default declared; consult the signature and description.
statements.cashFlow.acquisitions
number
Positive magnitude of cash spent on acquisitions.
unitless by name
Optional
No @default declared; consult the signature and description.
statements.cashFlow.capitalExpenditure
number
Positive magnitude of cash spent on property, plant, and equipment.
unitless by name
Optional
No @default declared; consult the signature and description.
statements.cashFlow.depreciationAndAmortization
number

unitless by name
Optional
No @default declared; consult the signature and description.
statements.cashFlow.dividendsPaid
number
Positive magnitude of cash paid out as dividends.
unitless by name
Optional
No @default declared; consult the signature and description.
statements.cashFlow.financingCashFlow
number

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
statements.cashFlow.metadata
Record<string, unknown>
Source-specific extras, preserved verbatim and never consumed by compute functions.
unitless by name
Optional
No @default declared; consult the signature and description.
statements.cashFlow.operatingCashFlow
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
statements.cashFlow.period
import('@insiderfinance/totalfinance/fundamentals').FundamentalPeriod

unitless by name
Required / declared member
No @default declared; consult the signature and description.
statements.cashFlow.period.accession
string
Source accession identifier, when known.
unitless by name
Optional
No @default declared; consult the signature and description.
statements.cashFlow.period.availableTimestampMs
number
When the data became AVAILABLE to an observer — the point-in-time eligibility instant. A backtest or event study must not see this period before this time; `periodEndDate` never controls eligibility.
epoch milliseconds (UTC instant)
Required / declared member
No @default declared; consult the signature and description.
statements.cashFlow.period.currency
string
ISO 4217 currency of the monetary figures.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
statements.cashFlow.period.filedTimestampMs
number
When the filing was made, when known.
epoch milliseconds (UTC instant)
Optional
No @default declared; consult the signature and description.
statements.cashFlow.period.fiscalQuarter
1 | 2 | 3 | 4

unitless by name
Optional
No @default declared; consult the signature and description.
statements.cashFlow.period.fiscalYear
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
statements.cashFlow.period.form
string
Source form (e.g. `10-Q`), when known.
unitless by name
Optional
No @default declared; consult the signature and description.
statements.cashFlow.period.monetaryScale
1 | 1000 | 1000000
Monetary figures are reported in units of this scale.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
statements.cashFlow.period.periodEndDate
string
Strict `YYYY-MM-DD` calendar date the period ends on.
calendar date (YYYY-MM-DD)
Required / declared member
No @default declared; consult the signature and description.
statements.cashFlow.period.periodStartDate
string
Strict `YYYY-MM-DD` calendar date; optional because some sources report only period ends.
calendar date (YYYY-MM-DD)
Optional
No @default declared; consult the signature and description.
statements.cashFlow.period.periodType
'quarter' | 'year' | 'trailing-twelve-months'

unitless by name
Required / declared member
No @default declared; consult the signature and description.
statements.cashFlow.period.restatementOf
string
When this record restates an earlier one, the accession (or identifier) it restates.
unitless by name
Optional
No @default declared; consult the signature and description.
statements.cashFlow.shareRepurchases
number
Positive magnitude of cash spent repurchasing shares.
unitless by name
Optional
No @default declared; consult the signature and description.
statements.cashFlow.stockBasedCompensation
number

unitless by name
Optional
No @default declared; consult the signature and description.
statements.income
IncomeStatement

unitless by name
Required / declared member
No @default declared; consult the signature and description.
statements.income.costOfRevenue
number
Positive magnitude.
unitless by name
Optional
No @default declared; consult the signature and description.
statements.income.dilutedSharesOutstanding
number
Split-adjusted weighted-average diluted shares for the period.
unitless by name
Optional
No @default declared; consult the signature and description.
statements.income.grossProfit
number
Reported gross profit; when absent, consumers may derive `revenue - costOfRevenue` and say so.
unitless by name
Optional
No @default declared; consult the signature and description.
statements.income.incomeFromContinuingOperations
number
When reported separately from `netIncome` (the Beneish accrual basis prefers it).
unitless by name
Optional
No @default declared; consult the signature and description.
statements.income.incomeTaxExpense
number
Positive magnitude (a net tax benefit is a negative amount and is stated as such).
unitless by name
Optional
No @default declared; consult the signature and description.
statements.income.interestExpense
number
Positive magnitude.
unitless by name
Optional
No @default declared; consult the signature and description.
statements.income.metadata
Record<string, unknown>
Source-specific extras, preserved verbatim and never consumed by compute functions.
unitless by name
Optional
No @default declared; consult the signature and description.
statements.income.netIncome
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
statements.income.operatingExpenses
number
Positive magnitude of total operating expenses below gross profit.
unitless by name
Optional
No @default declared; consult the signature and description.
statements.income.operatingIncome
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
statements.income.period
import('@insiderfinance/totalfinance/fundamentals').FundamentalPeriod

unitless by name
Required / declared member
No @default declared; consult the signature and description.
statements.income.period.accession
string
Source accession identifier, when known.
unitless by name
Optional
No @default declared; consult the signature and description.
statements.income.period.availableTimestampMs
number
When the data became AVAILABLE to an observer — the point-in-time eligibility instant. A backtest or event study must not see this period before this time; `periodEndDate` never controls eligibility.
epoch milliseconds (UTC instant)
Required / declared member
No @default declared; consult the signature and description.
statements.income.period.currency
string
ISO 4217 currency of the monetary figures.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
statements.income.period.filedTimestampMs
number
When the filing was made, when known.
epoch milliseconds (UTC instant)
Optional
No @default declared; consult the signature and description.
statements.income.period.fiscalQuarter
1 | 2 | 3 | 4

unitless by name
Optional
No @default declared; consult the signature and description.
statements.income.period.fiscalYear
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
statements.income.period.form
string
Source form (e.g. `10-Q`), when known.
unitless by name
Optional
No @default declared; consult the signature and description.
statements.income.period.monetaryScale
1 | 1000 | 1000000
Monetary figures are reported in units of this scale.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
statements.income.period.periodEndDate
string
Strict `YYYY-MM-DD` calendar date the period ends on.
calendar date (YYYY-MM-DD)
Required / declared member
No @default declared; consult the signature and description.
statements.income.period.periodStartDate
string
Strict `YYYY-MM-DD` calendar date; optional because some sources report only period ends.
calendar date (YYYY-MM-DD)
Optional
No @default declared; consult the signature and description.
statements.income.period.periodType
'quarter' | 'year' | 'trailing-twelve-months'

unitless by name
Required / declared member
No @default declared; consult the signature and description.
statements.income.period.restatementOf
string
When this record restates an earlier one, the accession (or identifier) it restates.
unitless by name
Optional
No @default declared; consult the signature and description.
statements.income.revenue
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
statements.income.sellingGeneralAdministrativeExpense
number
Positive magnitude (Beneish SGAI consumes it).
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

TrailingTwelveMonthInput

Input for {@link trailingTwelveMonthStatements}.

// ---------------------------------------------------------------------------------------------------
// trailingTwelveMonthStatements
// ---------------------------------------------------------------------------------------------------
/** Input for {@link trailingTwelveMonthStatements}. */
export interface TrailingTwelveMonthInput {
    /** Exactly four consecutive fiscal quarters, period end ascending. */
    statements: readonly FinancialStatements[];
}
Fields, parameters & returned members (1)
Name / typeMeaning & unitOptional / default
statements
readonly FinancialStatements[]
Exactly four consecutive fiscal quarters, period end ascending.
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

accrualRatio

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

export declare const accrualRatio: RatioFacade<PairRatioInput>;
Fields, parameters & returned members (26)
Name / typeMeaning & unitOptional / default
(input)
PairRatioInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).current
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).prior
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain
(input: PairRatioInput) => import('@insiderfinance/totalfinance/fundamentals').RatioReport

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions
{ category: import('@insiderfinance/totalfinance/fundamentals').RatioCategory; conventionsVersion: string; formula: string; period: import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity; priorPeriod?: import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity; ratioName: string; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.category
import('@insiderfinance/totalfinance/fundamentals').RatioCategory

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.formula
string
The fixed formula, stated as prose (also in the generated reference documentation).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.period
import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.priorPeriod
import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity

unitless by name
Optional
No @default declared; consult the signature and description.
explain().return.assumptions.ratioName
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics
{ denominator: { label: string; amount: number; } | null; marketStalenessMs?: number; notes: string[]; numerator: { label: string; amount: number; } | null; reason?: string; warnings: string[]; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator
{ amount: number; label: string; } | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator.amount
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator.label
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.marketStalenessMs
number
For market multiples: how far the price sits after the fundamentals became available.
milliseconds
Optional
No @default declared; consult the signature and description.
explain().return.diagnostics.notes
string[]
Every derivation, omission, and convention the computation relied on.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator
{ amount: number; label: string; } | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator.amount
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator.label
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.reason
string
Present exactly when `value` is null.
unitless by name
Optional
No @default declared; consult the signature and description.
explain().return.diagnostics.warnings
string[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.value
number | null
A decimal ratio (never a displayed percentage), or `null` with `diagnostics.reason`.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain(input)
PairRatioInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain(input).current
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain(input).prior
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

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

altmanZScore

The Altman Z-score with the published coefficients and denominator definitions per variant. `X1` working capital / assets, `X2` retained earnings / assets, `X3` operating income / assets, `X4` the variant's equity basis / total liabilities, `X5` sales / assets where the variant has one. The variant is REQUIRED — there is no default bankruptcy model.

export declare function altmanZScore(input: AltmanInput): AltmanResult;
Fields, parameters & returned members (13)
Name / typeMeaning & unitOptional / default
(input)
AltmanInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).marketEquity
number
REQUIRED for `public-manufacturing` (its X4 uses market equity); rejected otherwise.
unitless by name
Optional
No @default declared; consult the signature and description.
(input).statements
FinancialStatements

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.assumptions
{ equityBasis: 'market' | 'book'; model: string; variant: AltmanVariant; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.assumptions.equityBasis
'market' | 'book'

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.assumptions.model
string
The published model name (a label, deliberately not a literal type).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.assumptions.variant
AltmanVariant

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.components
AltmanComponent[]

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.variant
AltmanVariant

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

function

analyzeFundamentals

The one-call analysis. Missing inputs disable exactly the metrics that need them, each with a stated reason; nothing is guessed, proxied, or silently skipped.

export declare function analyzeFundamentals(input: AnalyzeFundamentalsInput): AnalyzeFundamentalsResult;
Fields, parameters & returned members (41)
Name / typeMeaning & unitOptional / default
(input)
AnalyzeFundamentalsInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).altmanVariant
AltmanVariant
Runs the Altman Z-score under this explicit published variant; absent → reported missing.
unitless by name
Optional
No @default declared; consult the signature and description.
(input).asOf
number

an instant: epoch milliseconds or a YYYY-MM-DD / zoned ISO string (the resolveAsOf convention)
Required / declared member
No @default declared; consult the signature and description.
(input).debtServiceAmount
number
The exact debt-service denominator; absent → debtServiceCoverage is reported missing.
currency amount (the field or record currency)
Optional
No @default declared; consult the signature and description.
(input).marketSnapshot
MarketObservation
The market side for valuation multiples; without it they are reported missing, not guessed.
unitless by name
Optional
No @default declared; consult the signature and description.
(input).maximumStalenessMs
number
Bounds market-observation staleness for the multiples when supplied.
milliseconds
Optional
No @default declared; consult the signature and description.
(input).nonOperatingAssets
number
Separately supplied non-operating assets for enterprise value.
unitless by name
Optional
No @default declared; consult the signature and description.
(input).periodDays
number
Day metrics need the explicit period-day count; absent → they are reported missing.
days
Optional
No @default declared; consult the signature and description.
(input).restatementPolicy
RestatementPolicy

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).statements
readonly FinancialStatements[]
The reported history (restatements included) — the analysis sees only what `asOf` allows.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).taxRate
number
Explicit tax rate for return on invested capital; else the effective rate is derived.
decimal rate (0.05 = 5%)
Optional
No @default declared; consult the signature and description.
return.asOf
number

an instant: epoch milliseconds or a YYYY-MM-DD / zoned ISO string (the resolveAsOf convention)
Required / declared member
No @default declared; consult the signature and description.
return.assumptions
{ asOf: EpochMs; periodUsed: { periodEndDate: string; periodType: string; fiscalYear: number; }; priorPeriodUsed?: { periodEndDate: string; periodType: string; fiscalYear: number; }; restatementPolicy: RestatementPolicy; }

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

an instant: epoch milliseconds or a YYYY-MM-DD / zoned ISO string (the resolveAsOf convention)
Required / declared member
No @default declared; consult the signature and description.
return.assumptions.periodUsed
{ fiscalYear: number; periodEndDate: string; periodType: string; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.assumptions.periodUsed.fiscalYear
number

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

calendar date (YYYY-MM-DD)
Required / declared member
No @default declared; consult the signature and description.
return.assumptions.periodUsed.periodType
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.assumptions.priorPeriodUsed
{ fiscalYear: number; periodEndDate: string; periodType: string; }

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

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

calendar date (YYYY-MM-DD)
Required / declared member
No @default declared; consult the signature and description.
return.assumptions.priorPeriodUsed.periodType
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.assumptions.restatementPolicy
RestatementPolicy

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.diagnostics.warnings
string[]
One warning per metric that could not be formed (mirrors `missing`).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.missing
{ metric: string; reason: string; }[]
Every metric that could not be formed, with its reason — the honest gaps ledger.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.periodUsed
{ fiscalYear: number; periodEndDate: string; periodType: string; }
The period the single-period metrics used.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.periodUsed.fiscalYear
number

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

calendar date (YYYY-MM-DD)
Required / declared member
No @default declared; consult the signature and description.
return.periodUsed.periodType
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.periodsVisible
number
How many statement sets were visible at `asOf` after restatement resolution.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.priorPeriodUsed
{ fiscalYear: number; periodEndDate: string; periodType: string; }
The prior period the average-balance metrics used, when one was visible.
unitless by name
Optional
No @default declared; consult the signature and description.
return.priorPeriodUsed.fiscalYear
number

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

calendar date (YYYY-MM-DD)
Required / declared member
No @default declared; consult the signature and description.
return.priorPeriodUsed.periodType
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.ratios
Record<string, AnalyzedRatio>

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.restatementPolicy
RestatementPolicy

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.scores
{ altman?: AltmanResult; beneish?: BeneishResult; piotroski?: PiotroskiResult; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.scores.altman
AltmanResult

unitless by name
Optional
No @default declared; consult the signature and description.
return.scores.beneish
BeneishResult

unitless by name
Optional
No @default declared; consult the signature and description.
return.scores.piotroski
PiotroskiResult

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.

function

assetTurnover

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

export declare const assetTurnover: RatioFacade<PairRatioInput>;
Fields, parameters & returned members (26)
Name / typeMeaning & unitOptional / default
(input)
PairRatioInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).current
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).prior
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain
(input: PairRatioInput) => import('@insiderfinance/totalfinance/fundamentals').RatioReport

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions
{ category: import('@insiderfinance/totalfinance/fundamentals').RatioCategory; conventionsVersion: string; formula: string; period: import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity; priorPeriod?: import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity; ratioName: string; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.category
import('@insiderfinance/totalfinance/fundamentals').RatioCategory

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.formula
string
The fixed formula, stated as prose (also in the generated reference documentation).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.period
import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.priorPeriod
import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity

unitless by name
Optional
No @default declared; consult the signature and description.
explain().return.assumptions.ratioName
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics
{ denominator: { label: string; amount: number; } | null; marketStalenessMs?: number; notes: string[]; numerator: { label: string; amount: number; } | null; reason?: string; warnings: string[]; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator
{ amount: number; label: string; } | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator.amount
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator.label
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.marketStalenessMs
number
For market multiples: how far the price sits after the fundamentals became available.
milliseconds
Optional
No @default declared; consult the signature and description.
explain().return.diagnostics.notes
string[]
Every derivation, omission, and convention the computation relied on.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator
{ amount: number; label: string; } | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator.amount
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator.label
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.reason
string
Present exactly when `value` is null.
unitless by name
Optional
No @default declared; consult the signature and description.
explain().return.diagnostics.warnings
string[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.value
number | null
A decimal ratio (never a displayed percentage), or `null` with `diagnostics.reason`.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain(input)
PairRatioInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain(input).current
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain(input).prior
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

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

beneishMScore

The original eight-variable 1999 Beneish equation `-4.84 + 0.920 DSRI + 0.528 GMI + 0.404 AQI + 0.892 SGI + 0.115 DEPI - 0.172 SGAI + 4.679 TATA - 0.327 LVGI`, with the component definitions fixed to the paper. Every variable the model needs must be present in both periods — there is NO five-variable fallback, silent or otherwise.

export declare function beneishMScore(input: BeneishInput): BeneishResult;
Fields, parameters & returned members (10)
Name / typeMeaning & unitOptional / default
(input)
BeneishInput

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.assumptions
{ model: string; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.assumptions.model
string
The published model name (a label, deliberately not a literal type).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.components
BeneishComponent[]

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.diagnostics.warnings
string[]
Conventions the inputs forced (e.g. D&A standing in for pure depreciation) — disclosed.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.mScore
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.notes
string[]
The same disclosures as `diagnostics.warnings` (kept for direct reading).
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

bookValuePerShare

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

export declare const bookValuePerShare: RatioFacade<SingleStatementRatioInput>;
Fields, parameters & returned members (24)
Name / typeMeaning & unitOptional / default
(input)
SingleStatementRatioInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).statements
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain
(input: SingleStatementRatioInput) => import('@insiderfinance/totalfinance/fundamentals').RatioReport

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions
{ category: import('@insiderfinance/totalfinance/fundamentals').RatioCategory; conventionsVersion: string; formula: string; period: import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity; priorPeriod?: import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity; ratioName: string; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.category
import('@insiderfinance/totalfinance/fundamentals').RatioCategory

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.formula
string
The fixed formula, stated as prose (also in the generated reference documentation).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.period
import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.priorPeriod
import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity

unitless by name
Optional
No @default declared; consult the signature and description.
explain().return.assumptions.ratioName
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics
{ denominator: { label: string; amount: number; } | null; marketStalenessMs?: number; notes: string[]; numerator: { label: string; amount: number; } | null; reason?: string; warnings: string[]; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator
{ amount: number; label: string; } | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator.amount
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator.label
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.marketStalenessMs
number
For market multiples: how far the price sits after the fundamentals became available.
milliseconds
Optional
No @default declared; consult the signature and description.
explain().return.diagnostics.notes
string[]
Every derivation, omission, and convention the computation relied on.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator
{ amount: number; label: string; } | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator.amount
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator.label
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.reason
string
Present exactly when `value` is null.
unitless by name
Optional
No @default declared; consult the signature and description.
explain().return.diagnostics.warnings
string[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.value
number | null
A decimal ratio (never a displayed percentage), or `null` with `diagnostics.reason`.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain(input)
SingleStatementRatioInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain(input).statements
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

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

cashConversionCycle

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

export declare const cashConversionCycle: RatioFacade<DayMetricRatioInput>;
Fields, parameters & returned members (28)
Name / typeMeaning & unitOptional / default
(input)
DayMetricRatioInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).current
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

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

days
Required / declared member
No @default declared; consult the signature and description.
(input).prior
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain
(input: DayMetricRatioInput) => import('@insiderfinance/totalfinance/fundamentals').RatioReport

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions
{ category: import('@insiderfinance/totalfinance/fundamentals').RatioCategory; conventionsVersion: string; formula: string; period: import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity; priorPeriod?: import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity; ratioName: string; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.category
import('@insiderfinance/totalfinance/fundamentals').RatioCategory

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.formula
string
The fixed formula, stated as prose (also in the generated reference documentation).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.period
import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.priorPeriod
import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity

unitless by name
Optional
No @default declared; consult the signature and description.
explain().return.assumptions.ratioName
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics
{ denominator: { label: string; amount: number; } | null; marketStalenessMs?: number; notes: string[]; numerator: { label: string; amount: number; } | null; reason?: string; warnings: string[]; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator
{ amount: number; label: string; } | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator.amount
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator.label
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.marketStalenessMs
number
For market multiples: how far the price sits after the fundamentals became available.
milliseconds
Optional
No @default declared; consult the signature and description.
explain().return.diagnostics.notes
string[]
Every derivation, omission, and convention the computation relied on.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator
{ amount: number; label: string; } | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator.amount
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator.label
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.reason
string
Present exactly when `value` is null.
unitless by name
Optional
No @default declared; consult the signature and description.
explain().return.diagnostics.warnings
string[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.value
number | null
A decimal ratio (never a displayed percentage), or `null` with `diagnostics.reason`.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain(input)
DayMetricRatioInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain(input).current
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

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

days
Required / declared member
No @default declared; consult the signature and description.
explain(input).prior
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

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

cashFlowToNetIncome

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

export declare const cashFlowToNetIncome: RatioFacade<SingleStatementRatioInput>;
Fields, parameters & returned members (24)
Name / typeMeaning & unitOptional / default
(input)
SingleStatementRatioInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).statements
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain
(input: SingleStatementRatioInput) => import('@insiderfinance/totalfinance/fundamentals').RatioReport

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions
{ category: import('@insiderfinance/totalfinance/fundamentals').RatioCategory; conventionsVersion: string; formula: string; period: import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity; priorPeriod?: import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity; ratioName: string; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.category
import('@insiderfinance/totalfinance/fundamentals').RatioCategory

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.formula
string
The fixed formula, stated as prose (also in the generated reference documentation).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.period
import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.priorPeriod
import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity

unitless by name
Optional
No @default declared; consult the signature and description.
explain().return.assumptions.ratioName
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics
{ denominator: { label: string; amount: number; } | null; marketStalenessMs?: number; notes: string[]; numerator: { label: string; amount: number; } | null; reason?: string; warnings: string[]; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator
{ amount: number; label: string; } | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator.amount
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator.label
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.marketStalenessMs
number
For market multiples: how far the price sits after the fundamentals became available.
milliseconds
Optional
No @default declared; consult the signature and description.
explain().return.diagnostics.notes
string[]
Every derivation, omission, and convention the computation relied on.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator
{ amount: number; label: string; } | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator.amount
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator.label
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.reason
string
Present exactly when `value` is null.
unitless by name
Optional
No @default declared; consult the signature and description.
explain().return.diagnostics.warnings
string[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.value
number | null
A decimal ratio (never a displayed percentage), or `null` with `diagnostics.reason`.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain(input)
SingleStatementRatioInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain(input).statements
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

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

cashRatio

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

export declare const cashRatio: RatioFacade<BalanceSheetRatioInput<Pick<BalanceSheet, 'period' | 'cashAndCashEquivalents' | 'currentLiabilities'>>>;
Fields, parameters & returned members (64)
Name / typeMeaning & unitOptional / default
(input)
BalanceSheetRatioInput<Pick<BalanceSheet, 'period' | 'cashAndCashEquivalents' | 'currentLiabilities'>>

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).balance
Pick<BalanceSheet, 'period' | 'cashAndCashEquivalents' | 'currentLiabilities'> & Partial<BalanceSheet>

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

unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.accountsReceivable
number

unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.cashAndCashEquivalents
number

unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.currentAssets
number

unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.currentLiabilities
number

unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.inventory
number

unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.longTermDebt
number
Interest-bearing debt due beyond one year.
unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.metadata
Record<string, unknown>
Source-specific extras, preserved verbatim and never consumed by compute functions.
unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.minorityInterest
number

unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.period
import('@insiderfinance/totalfinance/fundamentals').FundamentalPeriod

unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.preferredEquity
number

unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.propertyPlantEquipmentNet
number
Net property, plant, and equipment.
unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.retainedEarnings
number

unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.shortTermDebt
number
Interest-bearing debt due within one year.
unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.shortTermInvestments
number

unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.totalAssets
number

unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.totalDebt
number
Total interest-bearing debt. When absent and both maturities are present, consumers may derive `shortTermDebt + longTermDebt` and say so; "debt" NEVER silently means total liabilities.
unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.totalEquity
number

unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.totalLiabilities
number

unitless by name
Optional
No @default declared; consult the signature and description.
(input).statements
never

unitless by name
Optional
No @default declared; consult the signature and description.
explain
(input: BalanceSheetRatioInput<Pick<BalanceSheet, 'period' | 'cashAndCashEquivalents' | 'currentLiabilities'>>) => import('@insiderfinance/totalfinance/fundamentals').RatioReport

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions
{ category: import('@insiderfinance/totalfinance/fundamentals').RatioCategory; conventionsVersion: string; formula: string; period: import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity; priorPeriod?: import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity; ratioName: string; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.category
import('@insiderfinance/totalfinance/fundamentals').RatioCategory

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.formula
string
The fixed formula, stated as prose (also in the generated reference documentation).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.period
import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.priorPeriod
import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity

unitless by name
Optional
No @default declared; consult the signature and description.
explain().return.assumptions.ratioName
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics
{ denominator: { label: string; amount: number; } | null; marketStalenessMs?: number; notes: string[]; numerator: { label: string; amount: number; } | null; reason?: string; warnings: string[]; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator
{ amount: number; label: string; } | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator.amount
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator.label
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.marketStalenessMs
number
For market multiples: how far the price sits after the fundamentals became available.
milliseconds
Optional
No @default declared; consult the signature and description.
explain().return.diagnostics.notes
string[]
Every derivation, omission, and convention the computation relied on.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator
{ amount: number; label: string; } | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator.amount
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator.label
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.reason
string
Present exactly when `value` is null.
unitless by name
Optional
No @default declared; consult the signature and description.
explain().return.diagnostics.warnings
string[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.value
number | null
A decimal ratio (never a displayed percentage), or `null` with `diagnostics.reason`.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain(input)
BalanceSheetRatioInput<Pick<BalanceSheet, 'period' | 'cashAndCashEquivalents' | 'currentLiabilities'>>

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain(input).balance
Pick<BalanceSheet, 'period' | 'cashAndCashEquivalents' | 'currentLiabilities'> & Partial<BalanceSheet>

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

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.accountsReceivable
number

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.cashAndCashEquivalents
number

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.currentAssets
number

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.currentLiabilities
number

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.inventory
number

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.longTermDebt
number
Interest-bearing debt due beyond one year.
unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.metadata
Record<string, unknown>
Source-specific extras, preserved verbatim and never consumed by compute functions.
unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.minorityInterest
number

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.period
import('@insiderfinance/totalfinance/fundamentals').FundamentalPeriod

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.preferredEquity
number

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.propertyPlantEquipmentNet
number
Net property, plant, and equipment.
unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.retainedEarnings
number

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.shortTermDebt
number
Interest-bearing debt due within one year.
unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.shortTermInvestments
number

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.totalAssets
number

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.totalDebt
number
Total interest-bearing debt. When absent and both maturities are present, consumers may derive `shortTermDebt + longTermDebt` and say so; "debt" NEVER silently means total liabilities.
unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.totalEquity
number

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.totalLiabilities
number

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).statements
never

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.

function

cashReturnOnAssets

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

export declare const cashReturnOnAssets: RatioFacade<PairRatioInput>;
Fields, parameters & returned members (26)
Name / typeMeaning & unitOptional / default
(input)
PairRatioInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).current
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).prior
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain
(input: PairRatioInput) => import('@insiderfinance/totalfinance/fundamentals').RatioReport

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions
{ category: import('@insiderfinance/totalfinance/fundamentals').RatioCategory; conventionsVersion: string; formula: string; period: import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity; priorPeriod?: import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity; ratioName: string; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.category
import('@insiderfinance/totalfinance/fundamentals').RatioCategory

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.formula
string
The fixed formula, stated as prose (also in the generated reference documentation).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.period
import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.priorPeriod
import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity

unitless by name
Optional
No @default declared; consult the signature and description.
explain().return.assumptions.ratioName
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics
{ denominator: { label: string; amount: number; } | null; marketStalenessMs?: number; notes: string[]; numerator: { label: string; amount: number; } | null; reason?: string; warnings: string[]; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator
{ amount: number; label: string; } | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator.amount
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator.label
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.marketStalenessMs
number
For market multiples: how far the price sits after the fundamentals became available.
milliseconds
Optional
No @default declared; consult the signature and description.
explain().return.diagnostics.notes
string[]
Every derivation, omission, and convention the computation relied on.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator
{ amount: number; label: string; } | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator.amount
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator.label
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.reason
string
Present exactly when `value` is null.
unitless by name
Optional
No @default declared; consult the signature and description.
explain().return.diagnostics.warnings
string[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.value
number | null
A decimal ratio (never a displayed percentage), or `null` with `diagnostics.reason`.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain(input)
PairRatioInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain(input).current
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain(input).prior
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

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

commonSizeFinancialStatements

Common-size statements: every reported numeric line divided by its conventional base — income and cash-flow lines by revenue, balance lines by total assets. Fractions, never display percentages. A zero base is an error naming itself, not an Infinity.

export declare function commonSizeFinancialStatements(input: CommonSizeInput): CommonSizeResult;
Fields, parameters & returned members (17)
Name / typeMeaning & unitOptional / default
(input)
CommonSizeInput

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.assumptions
{ balanceBasis: 'totalAssets'; cashFlowBasis: 'revenue'; incomeBasis: 'revenue'; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.assumptions.balanceBasis
'totalAssets'

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.assumptions.cashFlowBasis
'revenue'

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.assumptions.incomeBasis
'revenue'

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.balance
{ basis: 'totalAssets'; lines: Record<string, number>; }
Balance lines over `totalAssets`.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.balance.basis
'totalAssets'

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.balance.lines
Record<string, number>

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.cashFlow
{ basis: 'revenue'; lines: Record<string, number>; }
Cash-flow lines over `revenue`.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.cashFlow.basis
'revenue'

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.cashFlow.lines
Record<string, number>

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

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.income
{ basis: 'revenue'; lines: Record<string, number>; }
Income lines over `revenue`.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
return.income.basis
'revenue'

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

function

currentRatio

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

export declare const currentRatio: RatioFacade<BalanceSheetRatioInput<Pick<BalanceSheet, 'period' | 'currentLiabilities' | 'currentAssets'>>>;
Fields, parameters & returned members (64)
Name / typeMeaning & unitOptional / default
(input)
BalanceSheetRatioInput<Pick<BalanceSheet, 'period' | 'currentLiabilities' | 'currentAssets'>>

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).balance
Pick<BalanceSheet, 'period' | 'currentLiabilities' | 'currentAssets'> & Partial<BalanceSheet>

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

unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.accountsReceivable
number

unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.cashAndCashEquivalents
number

unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.currentAssets
number

unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.currentLiabilities
number

unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.inventory
number

unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.longTermDebt
number
Interest-bearing debt due beyond one year.
unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.metadata
Record<string, unknown>
Source-specific extras, preserved verbatim and never consumed by compute functions.
unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.minorityInterest
number

unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.period
import('@insiderfinance/totalfinance/fundamentals').FundamentalPeriod

unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.preferredEquity
number

unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.propertyPlantEquipmentNet
number
Net property, plant, and equipment.
unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.retainedEarnings
number

unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.shortTermDebt
number
Interest-bearing debt due within one year.
unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.shortTermInvestments
number

unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.totalAssets
number

unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.totalDebt
number
Total interest-bearing debt. When absent and both maturities are present, consumers may derive `shortTermDebt + longTermDebt` and say so; "debt" NEVER silently means total liabilities.
unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.totalEquity
number

unitless by name
Optional
No @default declared; consult the signature and description.
(input).balance.totalLiabilities
number

unitless by name
Optional
No @default declared; consult the signature and description.
(input).statements
never

unitless by name
Optional
No @default declared; consult the signature and description.
explain
(input: BalanceSheetRatioInput<Pick<BalanceSheet, 'period' | 'currentLiabilities' | 'currentAssets'>>) => import('@insiderfinance/totalfinance/fundamentals').RatioReport

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions
{ category: import('@insiderfinance/totalfinance/fundamentals').RatioCategory; conventionsVersion: string; formula: string; period: import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity; priorPeriod?: import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity; ratioName: string; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.category
import('@insiderfinance/totalfinance/fundamentals').RatioCategory

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.formula
string
The fixed formula, stated as prose (also in the generated reference documentation).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.period
import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.priorPeriod
import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity

unitless by name
Optional
No @default declared; consult the signature and description.
explain().return.assumptions.ratioName
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics
{ denominator: { label: string; amount: number; } | null; marketStalenessMs?: number; notes: string[]; numerator: { label: string; amount: number; } | null; reason?: string; warnings: string[]; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator
{ amount: number; label: string; } | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator.amount
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator.label
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.marketStalenessMs
number
For market multiples: how far the price sits after the fundamentals became available.
milliseconds
Optional
No @default declared; consult the signature and description.
explain().return.diagnostics.notes
string[]
Every derivation, omission, and convention the computation relied on.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator
{ amount: number; label: string; } | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator.amount
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator.label
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.reason
string
Present exactly when `value` is null.
unitless by name
Optional
No @default declared; consult the signature and description.
explain().return.diagnostics.warnings
string[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.value
number | null
A decimal ratio (never a displayed percentage), or `null` with `diagnostics.reason`.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain(input)
BalanceSheetRatioInput<Pick<BalanceSheet, 'period' | 'currentLiabilities' | 'currentAssets'>>

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain(input).balance
Pick<BalanceSheet, 'period' | 'currentLiabilities' | 'currentAssets'> & Partial<BalanceSheet>

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

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.accountsReceivable
number

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.cashAndCashEquivalents
number

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.currentAssets
number

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.currentLiabilities
number

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.inventory
number

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.longTermDebt
number
Interest-bearing debt due beyond one year.
unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.metadata
Record<string, unknown>
Source-specific extras, preserved verbatim and never consumed by compute functions.
unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.minorityInterest
number

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.period
import('@insiderfinance/totalfinance/fundamentals').FundamentalPeriod

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.preferredEquity
number

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.propertyPlantEquipmentNet
number
Net property, plant, and equipment.
unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.retainedEarnings
number

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.shortTermDebt
number
Interest-bearing debt due within one year.
unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.shortTermInvestments
number

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.totalAssets
number

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.totalDebt
number
Total interest-bearing debt. When absent and both maturities are present, consumers may derive `shortTermDebt + longTermDebt` and say so; "debt" NEVER silently means total liabilities.
unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.totalEquity
number

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).balance.totalLiabilities
number

unitless by name
Optional
No @default declared; consult the signature and description.
explain(input).statements
never

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.

function

daysInventoryOutstanding

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

export declare const daysInventoryOutstanding: RatioFacade<DayMetricRatioInput>;
Fields, parameters & returned members (28)
Name / typeMeaning & unitOptional / default
(input)
DayMetricRatioInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).current
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

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

days
Required / declared member
No @default declared; consult the signature and description.
(input).prior
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain
(input: DayMetricRatioInput) => import('@insiderfinance/totalfinance/fundamentals').RatioReport

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions
{ category: import('@insiderfinance/totalfinance/fundamentals').RatioCategory; conventionsVersion: string; formula: string; period: import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity; priorPeriod?: import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity; ratioName: string; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.category
import('@insiderfinance/totalfinance/fundamentals').RatioCategory

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.formula
string
The fixed formula, stated as prose (also in the generated reference documentation).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.period
import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.priorPeriod
import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity

unitless by name
Optional
No @default declared; consult the signature and description.
explain().return.assumptions.ratioName
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics
{ denominator: { label: string; amount: number; } | null; marketStalenessMs?: number; notes: string[]; numerator: { label: string; amount: number; } | null; reason?: string; warnings: string[]; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator
{ amount: number; label: string; } | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator.amount
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator.label
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.marketStalenessMs
number
For market multiples: how far the price sits after the fundamentals became available.
milliseconds
Optional
No @default declared; consult the signature and description.
explain().return.diagnostics.notes
string[]
Every derivation, omission, and convention the computation relied on.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator
{ amount: number; label: string; } | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator.amount
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator.label
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.reason
string
Present exactly when `value` is null.
unitless by name
Optional
No @default declared; consult the signature and description.
explain().return.diagnostics.warnings
string[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.value
number | null
A decimal ratio (never a displayed percentage), or `null` with `diagnostics.reason`.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain(input)
DayMetricRatioInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain(input).current
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

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

days
Required / declared member
No @default declared; consult the signature and description.
explain(input).prior
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

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

daysPayablesOutstanding

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

export declare const daysPayablesOutstanding: RatioFacade<DayMetricRatioInput>;
Fields, parameters & returned members (28)
Name / typeMeaning & unitOptional / default
(input)
DayMetricRatioInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).current
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

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

days
Required / declared member
No @default declared; consult the signature and description.
(input).prior
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain
(input: DayMetricRatioInput) => import('@insiderfinance/totalfinance/fundamentals').RatioReport

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions
{ category: import('@insiderfinance/totalfinance/fundamentals').RatioCategory; conventionsVersion: string; formula: string; period: import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity; priorPeriod?: import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity; ratioName: string; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.category
import('@insiderfinance/totalfinance/fundamentals').RatioCategory

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.formula
string
The fixed formula, stated as prose (also in the generated reference documentation).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.period
import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.priorPeriod
import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity

unitless by name
Optional
No @default declared; consult the signature and description.
explain().return.assumptions.ratioName
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics
{ denominator: { label: string; amount: number; } | null; marketStalenessMs?: number; notes: string[]; numerator: { label: string; amount: number; } | null; reason?: string; warnings: string[]; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator
{ amount: number; label: string; } | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator.amount
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator.label
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.marketStalenessMs
number
For market multiples: how far the price sits after the fundamentals became available.
milliseconds
Optional
No @default declared; consult the signature and description.
explain().return.diagnostics.notes
string[]
Every derivation, omission, and convention the computation relied on.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator
{ amount: number; label: string; } | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator.amount
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator.label
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.reason
string
Present exactly when `value` is null.
unitless by name
Optional
No @default declared; consult the signature and description.
explain().return.diagnostics.warnings
string[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.value
number | null
A decimal ratio (never a displayed percentage), or `null` with `diagnostics.reason`.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain(input)
DayMetricRatioInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain(input).current
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

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

days
Required / declared member
No @default declared; consult the signature and description.
explain(input).prior
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

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

daysSalesOutstanding

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

export declare const daysSalesOutstanding: RatioFacade<DayMetricRatioInput>;
Fields, parameters & returned members (28)
Name / typeMeaning & unitOptional / default
(input)
DayMetricRatioInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
(input).current
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

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

days
Required / declared member
No @default declared; consult the signature and description.
(input).prior
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain
(input: DayMetricRatioInput) => import('@insiderfinance/totalfinance/fundamentals').RatioReport

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions
{ category: import('@insiderfinance/totalfinance/fundamentals').RatioCategory; conventionsVersion: string; formula: string; period: import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity; priorPeriod?: import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity; ratioName: string; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.category
import('@insiderfinance/totalfinance/fundamentals').RatioCategory

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

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.formula
string
The fixed formula, stated as prose (also in the generated reference documentation).
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.period
import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.assumptions.priorPeriod
import('@insiderfinance/totalfinance/fundamentals').RatioPeriodIdentity

unitless by name
Optional
No @default declared; consult the signature and description.
explain().return.assumptions.ratioName
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics
{ denominator: { label: string; amount: number; } | null; marketStalenessMs?: number; notes: string[]; numerator: { label: string; amount: number; } | null; reason?: string; warnings: string[]; }

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator
{ amount: number; label: string; } | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator.amount
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.denominator.label
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.marketStalenessMs
number
For market multiples: how far the price sits after the fundamentals became available.
milliseconds
Optional
No @default declared; consult the signature and description.
explain().return.diagnostics.notes
string[]
Every derivation, omission, and convention the computation relied on.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator
{ amount: number; label: string; } | null

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator.amount
number

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.numerator.label
string

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.diagnostics.reason
string
Present exactly when `value` is null.
unitless by name
Optional
No @default declared; consult the signature and description.
explain().return.diagnostics.warnings
string[]

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain().return.value
number | null
A decimal ratio (never a displayed percentage), or `null` with `diagnostics.reason`.
unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain(input)
DayMetricRatioInput

unitless by name
Required / declared member
No @default declared; consult the signature and description.
explain(input).current
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

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

days
Required / declared member
No @default declared; consult the signature and description.
explain(input).prior
import('@insiderfinance/totalfinance/fundamentals').FinancialStatements

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.