Discrepancies with EPS#Positive

Hi all,

I was trying to recreate the prebuilt factor EPS#Positive. It is described as follows: “This value is the number of consecutive years that the company reported positive Earnings Per Share starting with the most recent fiscal year.”

Instead of EPS#Positive >=5 I created my own formula looking for stocks with positive EPSExclXor for the last 5 Fiscal Years:

EPS#Positive >=5 —> LoopSum(“EPSExclXor(CTR, ANN)>0”,5)=5

Besides, I used ShowVar(@EPS#Positive,EPS#Positive) & ShowVar(@EPSExclXor0,EPSExclXor(0, ANN)) AND ShowVar(@EPSExclXor1,EPSExclXor(1, ANN)) AND ShowVar(@EPSExclXor2,EPSExclXor(2, ANN)) AND ShowVar(@EPSExclXor3,EPSExclXor(3, ANN)) AND ShowVar(@EPSExclXor4,EPSExclXor(4, ANN)).

As I understand it, when running a screen with LoopSum(“EPSExclXor(CTR, ANN)>0”,5)=5, then all EPS#Positive values should be >=5.

But in the screen results (see below) there are even some stocks showing an EPS#Positive of 0 (which would mean that the eps of the recent fiscal year was negative) although EPSExclXor values of the last 5 years are all positive. I wonder how this is possible? Perhaps somebody has an explanation for this.

Thank you very much in advance.
Michael


Michael - the P123 version probably includes extraordinary items. Just a guess.
Steve

Steve, I also thought about that. So, to check it I created some additional ShowVar rules for epsinclxor as well as epsactual. But for the above stock examples, these factors show positive earnings too, while EPS#Positive remains 0.

Perhaps Marco can tell me what kind of eps figure is used to calculate EPS#Positive.

Make sure you specify the optional parameter NAHandling as KEEPNA, so EPSExclXor doesn’t fall back to the previous period on NA years.
The entire formula:
ShowVar(@eps, LoopSum(“Eval(EPSExclXor(CTR, ANN, KEEPNA) > 0, 1, NA)”, 5, 0, 1, FALSE, TRUE))

That should match EPS#Positive for all EPS#Positive <= 5. But it seems that there may be an issue in the code that affects #APeriods, #QPeriods, DivPS5YAvg, and EPS#Positive which is causing that to not be the case always. We’ll be looking into it and will follow up when we know more.

Should be fixed by tonight. We did find discrepancies because they use different access. Functions like EPSExclXor() use a point-in-time snapshot and can only access up to 10 annuals and 25 interims. Factors like EPS#Positive and #APeriods go straight to the source of all statements ( from where the point in time snapshots are built).

The discrepancies had to do with companies with strange data. For example BATS has contiguous annuals from 2015-2013, 2012 is missing, then has 2011 & 2010. Not sure what the 2010&2011 are, maybe pre-ipo data , and it’s being discontinued in Compustat. In any case, one method was including those the other wasn’t

Thanks for reporting it.

Thanks Marco for fixing EPS#Positive. I tested it again and now everything seems to work as it should :slight_smile: