How many of you uses "StaleStmt = 0"?

In your screen, how many of you use this “StaleStmt = 0” as a must? It doesn’t seem to affect much the total performance in the back test.

I bet Yuval has a good answer for this. I’d like to know the best way to use it too.

I don’t know how many people use it. I use it so that I don’t buy and sell based on stale information. If a stock has StaleStmt = 1 then I neither sell nor buy it. It might not affect backtests, but if the ranking is based on old information and is about to change, why do anything? So I always put StaleStmt = 0 into my universe rules and my sell rules.

I don’t think its working as intended. FOr example, my strategy is telling me to buy ETON this morning. I have a buy rule that says StaleStmt = 0.

But when I check the snapshot page for ETON, it says “Period filings have not been updated with latest data from either press releases or SEC filings.”

Isn’t that what StateStmt = 0 is supposed to be avoiding?

Are you 100% sure of this? When I use a rule that says StaleStmt = 0, ETON is excluded. So I can’t reproduce what you’re seeing. Perhaps you can send me the URL of your strategy? If you want to do so via e-mail, I’m at yuval@portfolio123.com.

I believe its because it wants to rebalance, not buy it as new. It seems as if its a rebalancing as opposed to a new buy it skips the buy rules? Not sure if thats working as intended.

If it is, should rebalance transactions not be restricted by the same buy rules? My rebalancing is based on my ranking, the best stocks get the higher weight. So rebalancing based on stale data is no good…

That’s right. Rebalancing doesn’t pay attention to buy rules, which apply only to initiating a position. We plan to introduce a “do not rebalance if” rule in the formula weight rebalancing tab to take care of this problem.

Ahh ok perfect thanks.

Is this meant to come as a feature in screens? That would be great !! Do you know when it’s coming?

No, this is only for formula weight rebalancing in simulations. Screens are our most basic tool; for anything more complex than periodic rebalancing, we strongly suggest you use simulations.

I have a question.
when StaleStmt = 1 is activated as of 01/31/2022
I can see that Pepsico has stale statement based on p123 but on the other hand when you look at the earnings date here below:

it is 10/02/2022

So my observation that the Pepsico has not yet released earnings, why then p123 says that the statement is staled ?


This is caused by a bug. Thanks for calling it to our attention. We will try to fix it soon. Our apologies for the error.

I have “StaleStatement=1” set as a sell rule, and in my backtests it increases the performance materially. However, today upon rebalancing the suggestion engine told me to sell 4 of 5 positions due to Stale Statement - this never seems to have happened in the backtest, so that was a bit concerning to me (the model always has at least 4/5 positions). This is a small/microcap model (typically sub 500m market cap) so it makes sense there would be more stale statements - however getting this many in one rebalancing was surprising.

A huge number of stocks have announced earnings in the last week or two, and a large number of them have not yet been processed by FactSet (more than 10% of all stocks currently have StaleStmt = 1).

I’m sure you have a very good reason for selling stocks when there’s a stale statement, but I can’t figure it out myself. All it means is that FactSet has not yet processed the data. I have the opposite rule: never sell a stock when there’s a stale statement because you just don’t know what the latest earnings report is going to tell you about it.

If the reason for your rule is that it functions as an indicator of an earnings announcement and you always sell immediately after an earnings announcement, then the rule has a flaw since off-season earnings announcements are often processed overnight and the stale statement flag will never be flown. You might want to consider using LatestNewsDate instead. A sell rule like BarsSince(LatestNewsDate) <= 5 might work well for you if that’s your aim.