Appearance
Beneish M-Score
Eight-index probabilistic earnings-manipulation detector (Beneish 1999). M > -1.78 flags potential manipulator; ≤ -1.78 reads as clean. Built from YoY indices on receivables, gross margin, asset quality, sales growth, depreciation, SG&A, leverage, and total accruals.
Direction: Lower better Category: forensic
Inputs (XBRL fallback chains):
- current_assets:
AssetsCurrent - net_income:
NetIncomeLoss->ProfitLoss - operating_cash_flow:
NetCashProvidedByUsedInOperatingActivities - ppe_net:
PropertyPlantAndEquipmentNet - sga_expense:
SellingGeneralAndAdministrativeExpense->GeneralAndAdministrativeExpense
Returns None when: Returns None when prior-year anchor isn't reachable or any of the index inputs is non-positive (the ratios assume positive endpoints).
Source code
Implementation: beneish_m_score in src/eqtytrk/metrics/ratios.py (or valuation.py for multiples).
See also
For full methodology — decomposition, thresholds, when each score lights up vs the others, citations to original papers — see the Forensic screening essay.