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

Sloan Accrual Measure

Install and import#

bash
npm install fintech-algorithms
ts
import { sloanAccrualMeasure } from "fintech-algorithms/fundamental-analysis-and-valuation/quality-and-distress/sloan-accrual-measure";

Signature#

sloanAccrualMeasure(data)

Computes Sloan's balance-sheet accrual measure as the change in non-cash working capital less the change in current debt and taxes payable, less depreciation and amortisation, all scaled by average total assets.

Parameters#

NameTypeNotes
data{ current_assets: number; prior_current_assets: number; cash: number; prior_cash: number; current_liabilities: number; prior_current_liabilities: number; short_term_debt: number; prior_short_term_debt: number; taxes_payable: number; prior_taxes_payable: number; depreciation_and_amortization: number; average_total_assets: number }Current and prior balance-sheet values plus the flow items. The function differences current_assets, cash, current_liabilities, short_term_debt and taxes_payable against their prior_ twins, subtracts depreciation_and_amortization, and scales by average_total_assets.

Returns#

{ state: string; method: string; delta_current_assets: number; delta_cash: number; delta_current_liabilities: number; delta_short_term_debt: number; delta_taxes_payable: number; depreciation_and_amortization: number; accrual_amount: number; accrual_measure: number; absolute_accrual_measure: number; interpretation: string }

The five delta_ keys expose each year-over-year change and depreciation_and_amortization is echoed back. accrual_amount is the unscaled accrual, accrual_measure is that amount over average total assets and absolute_accrual_measure is its magnitude. interpretation is income-decreasing-accrual when the measure is negative, income-increasing-accrual when positive and zero-net-accrual at exactly zero. method is sloan-1996-balance-sheet-accrual and state is calculated.

Errors#

  • When data is not a plain object — throws TypeError
  • When any field read is missing or not a finite number — throws TypeError
  • When average_total_assets is zero or negative — throws RangeError
  • When depreciation_and_amortization is negative — 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,
  "prior_current_assets": 450,
  "cash": 100,
  "prior_cash": 90,
  "current_liabilities": 260,
  "prior_current_liabilities": 240,
  "short_term_debt": 70,
  "prior_short_term_debt": 60,
  "taxes_payable": 20,
  "prior_taxes_payable": 18,
  "depreciation_and_amortization": 60,
  "average_total_assets": 950
}

Call#

sloanAccrualMeasure(data)

Returns#

object with 12 fields: state, method, delta_current_assets, delta_cash, delta_current_liabilities, delta_short_term_debt, delta_taxes_payable, depreciation_and_amortization, …

{
  "state": "calculated",
  "method": "sloan-1996-balance-sheet-accrual",
  "delta_current_assets": 50,
  "delta_cash": 10,
  "delta_current_liabilities": 20,
  "delta_short_term_debt": 10,
  "delta_taxes_payable": 2,
  "depreciation_and_amortization": 60,
  "accrual_amount": -28,
  "accrual_measure": -0.029473684210526315,
  "absolute_accrual_measure": 0.029473684210526315,
  "interpretation": "income-decreasing-accrual"
}

Other exports#

This module also exports calculate, altmanZScore, piotroskiFScore, beneishMScore, ohlsonOScore, zmijewskiXScore, springateSScore, tafflerZScore, fulmerHScore, groverGScore, dechowFScoreForMisstatementRisk, dechowDichevAccrualQuality, modifiedJonesDiscretionaryAccrualModel. 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#

Sloan Accrual Measure — evidence clock
Sloan Accrual Measure — model anatomy
Sloan Accrual Measure — system map
Sloan Accrual Measure — threshold and interpretation
Sloan Accrual Measure — 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 Quality and Distress family#