Financial
Beneish M-Score formula: 8-variable forensic earnings manipulation screen
Calculate an eight-input Beneish screening score from prepared accounting indices and compare its unrounded value with an explicit review threshold.
Use the M-score as a screening signal, not a fraud verdict
The worksheet applies the eight-variable score to supplied, already prepared accounting indices. It does not extract or verify financial statements. A result above the chosen threshold means investigate further; a result below it does not establish that accounts are accurate. False positives, false negatives and industry or accounting differences matter.
Prepare DSRI, GMI, AQI, SGI, DEPI, SGAI, TATA and LVGI consistently for comparable periods using the chosen model definitions. The numerical size of a coefficient alone does not measure importance because input scales differ. I2 contains the explicitly chosen exercise cutoff of -1.78; threshold choice changes screening results.
| Company Profile | 8 Beneish Inputs (DSRI..LVGI) | Calculated M-Score | Screening result (chosen cutoff -1.78) |
|---|---|---|---|
| Steady Baseline Firm | Indices = 1.00, TATA = 0.00 | M = -2.48 | Below chosen threshold |
| Aggressive Accrual / Receivables Spike | DSRI=1.45, SGI=1.50, TATA=0.08... | M = -1.07 | Review indicated |
Compute the 8-variable Beneish M-Score
A2=DSRI, B2=GMI, C2=AQI, D2=SGI, E2=DEPI, F2=SGAI, G2=TATA, H2=LVGI.
=IF(COUNT(A2:H2)<>8,"Invalid inputs",ROUND(-4.84 + 0.92 * A2 + 0.528 * B2 + 0.404 * C2 + 0.892 * D2 + 0.115 * E2 - 0.172 * F2 + 4.679 * G2 - 0.327 * H2, 2))Compare the unrounded score with a configurable threshold
The comparison uses the unrounded score, not the two-decimal display. A strict greater-than comparison triggers review; equality does not. A threshold is a screening setting, not proof of manipulation or a clean audit opinion.
=IF(COUNT(A2:I2)<>9,"Invalid inputs",LET(m, -4.84 + 0.92 * A2 + 0.528 * B2 + 0.404 * C2 + 0.892 * D2 + 0.115 * E2 - 0.172 * F2 + 4.679 * G2 - 0.327 * H2, IF(m > I2, "Review indicated", "Below chosen threshold")))Try the example
Use the original values or change them to test your understanding.