Beneish score

My models use the Beneish score as a universe filter. Backtest show that it is a relevant filter for my multi-factor ranking but apparently it also leads to NA or miscalculations that result in stocks being filtered out that are perfectly fine and would score high in my ranking. I noticed it for multiple European stock already. For example, Hove:DNK has a Beneish score of NA after the recent earnings release. I checked it on Gurufocus and there its score is perfectly fine (-2.11). What goes wrong with the calculations? Is this because of delays or missing data in factset? Is this recent or does it also apply to the historical calculations? Are there any solutions, e.g. by making a version of the Beneish score that can deal with NA in any of its parameters? Thanks for your help!

Try Yuvals version of M-Score

For Hove:DNK, all components required for the Beneish M-Score are available except for TATA, which is returning NA. This is due to operating cash flow also being NA. Upon reviewing the FactSet data, the issue appears to stem from missing quarterly values.

As a workaround, I modified the M-Score logic so that when a company has completed the fourth quarter, the calculation uses annual values instead. This produces a result that is very close to the standard M-Score.

For Hove:DNK, QtrCompete=4 so this should serve as a temporary fix. I will follow up with the development team to determine whether a more robust solution can be implemented.

@BeneishMScorewFB:(-4.84 + 0.92*MScoreDSRI + 0.528*MScoreGMI + 0.404*MScoreAQI + 0.892*MScoreSGI +0.115*MScoreDEPI - 0.172*MScoreSGAI - 0.327*MScoreLVGI + 4.679*Eval(QtrComplete=4 & InterimMonths(0)=3, (NetIncBXorA - OperCashFlA)/AstTotQ,MScoreTATA))

The formula gives a value of -2.2 for Hove:DNK so it should pass. However, if I add it to my universe, it still filters out the stock.

Please provide either the Universe name or URL and I'll take a look.

The universe rule I used is below. The other rules do not remove the stock.

(-4.84 + 0.92MScoreDSRI + 0.528MScoreGMI + 0.404MScoreAQI + 0.892MScoreSGI + 0.115MScoreDEPI - 0.172MScoreSGAI - 0.327MScoreLVGI + 4.679IsNA( Eval(QtrComplete=4 & InterimMonths(0)=3, (NetIncBXorA - OperCashFlA)/AstTotQ, MScoreTATA), (NetIncBXorA)/AstTotQ ) ) < -1.78

Not sure what happened to your '*' symbols, but;

(-4.84 + 0.92*MScoreDSRI + 0.528*MScoreGMI + 0.404*MScoreAQI + 0.892*MScoreSGI + 0.115*MScoreDEPI - 0.172*MScoreSGAI - 0.327*MScoreLVGI + 4.679*IsNA( Eval(QtrComplete=4 & InterimMonths(0)=3, (NetIncBXorA - OperCashFlA)/AstTotQ, MScoreTATA), (NetIncBXorA)/AstTotQ ) ) < -1.78

Passes HOVE:DNK for the North Atlantic and Europe Universes.

The easiest way to do this is to add "or BeneishMScore = NA" to your universe filter rule. For example, if your rule is BeneishMScore < -1.75 change it to BeneishMScore < -1.75 or BeneishMScore = NA.