fintech-algorithms
Using a coding agent? Give it the skill: npx skills add IslamBaraka90/Fintech-Algorithms-Library What it does →

Balance-Sheet Resilience Score

Install and import#

bash
npm install fintech-algorithms
ts
import { balanceSheetResilienceScore } from "fintech-algorithms/fundamental-analysis-and-valuation/integrated-equity-scoring/balance-sheet-resilience-score";

Signature#

balanceSheetResilienceScore(data)

Scores balance-sheet resilience from the current ratio, net debt against four times EBITDA, EBITDA interest coverage, and the share of debt not maturing within twelve months, each clamped and weighted into one score.

Parameters#

NameTypeNotes
data{ current_assets: number; current_liabilities: number; total_debt: number; ebitda: number; interest_expense: number; cash_and_equivalents: number; debt_due_12m: number }current_assets, current_liabilities, total_debt, ebitda and interest_expense must be positive; cash_and_equivalents and debt_due_12m must not be negative, and debt_due_12m may not exceed total_debt.

Returns#

{ state: string; method: string; components: { liquidity: number; net_leverage: number; interest_coverage: number; maturity_headroom: number }; weights: Record<string, number>; contributions: Record<string, number>; balance_sheet_resilience_score: number; band: string }

components holds the four measures each clamped to 0 to 100, weights gives 0.3 each to liquidity and net_leverage, 0.25 to interest_coverage and 0.15 to maturity_headroom, contributions is each component times its weight, and balance_sheet_resilience_score is their sum. band is strong at 75 or above, watch at 50 or above, otherwise weak.

Errors#

  • When any of the seven inputs is not a finite number — throws TypeError
  • When current_assets, current_liabilities, total_debt, ebitda or interest_expense is not positive — throws RangeError
  • When cash_and_equivalents or debt_due_12m is negative — throws RangeError
  • When debt_due_12m exceeds total_debt — throws RangeError

Complexity: time O(1), space O(1).

Worked example#

executed Captured by running this function on the input its own test provides. Real output of real code — but not asserted against a published figure.

Input#

data
{
  "current_assets": 500,
  "current_liabilities": 250,
  "total_debt": 400,
  "ebitda": 160,
  "interest_expense": 32,
  "cash_and_equivalents": 120,
  "debt_due_12m": 80
}

Call#

balanceSheetResilienceScore(data)

Returns#

object with 7 fields: state, method, components, weights, contributions, balance_sheet_resilience_score, band

{
  "state": "calculated",
  "method": "liquidity-leverage-coverage-maturity-resilience",
  "components": {
    "liquidity": 100,
    "net_leverage": 56.25,
    "interest_coverage": 50,
    "maturity_headroom": 80
  },
  "weights": {
    "liquidity": 0.3,
    "net_leverage": 0.3,
    "interest_coverage": 0.25,
    "maturity_headroom": 0.15
  },
  "contributions": {
    "liquidity": 30,
    "net_leverage": 16.875,
    "interest_coverage": 12.5,
    "maturity_headroom": 12
  },
  "balance_sheet_resilience_score": 71.375,
  "band": "watch"
}

Other exports#

This module also exports calculate, pointInTimeStockScoringInputAssembly, stockScoringPeerCohortResolver, fundamentalMetricDirectionAndPeerNormalization, modelApplicabilityAndVariantRouter, accountingFinancialHealthComposite, earningsQualityComposite, dividendSafetyScore, distressModelEnsemble, crossModelConflictAndDoubleCountingResolver, overallExplainableStockScore, scoreConfidenceMissingDataPenaltyAndAbstention, marketWideStockScreeningAndRanking, stockScoreHistoryMigrationAndChangeAttribution. Every module additionally exports run as an alias of its primary function, and a meta object carrying its catalog id, domain, family, shape and article URL.

Diagrams#

Balance-Sheet Resilience Score — evidence clock
Balance-Sheet Resilience Score — model anatomy
Balance-Sheet Resilience Score — system map
Balance-Sheet Resilience Score — threshold and interpretation
Balance-Sheet Resilience Score — variant boundaries

How it works#

This page states the contract — how to call it correctly. The article explains the concept: why it works, and where it breaks.

Read the article →

References#

The rest of the Integrated Equity Scoring family#