Small cap portfolio, stale statements, and database updates

I have a small cap screen and after the end of the quarter, I show about 40 percent of the companies making the cut have characteristics similar to this (Date of the screen is 11/19/2019):

Ticker Name PeriodDateQ LatestFilingDate LatestPeriodDate StaleStmt

CRHM CRH Medical Corp 2019-06-30 2019-11-07 2019-09-30 1

It appears these companies–which have filed their 10q’s–have not been updated by Compustat (as signified by the old PeriodDateQ and the StaleStmt), is that correct? Is this length of delay normal (in this case eleven days) for so many small cap stocks?

If I then use StaleStmt=0 in my screen (which significantly improves performance), and rebalance weekly, won’t I be selling these stocks every quarter and then rebuying them once they are updated by Compustat (assuming they continue to meet the screen parameters)?

If I am understanding how this timing works correctly, I’m curious how others handle this. Thanks in advance for any thoughts. Doug

I have limited experience, but fwiw I have noticed occassionally some stocks can have a stale statement for a long time. I don’t get down into the most illiquid names though and it could be worse there. Recently it seemed like one company got a stale statement flag when they announced a purchase of another, and this seemed independent of a quarterly report, so ymmv.

If you’re using sims, one option to prevent selling is to require StaleStmt = False as part of a sell rule along with your other sell rules. You could also make StaleStmt = True (edit 11.20.2019: oops this was wrong, also make StaleStmt=False to not buy on stale data) as a buy rule if you want to make sure you don’t buy on stale data.

Hope this helps.

Sometimes it takes Compustat weeks to update tiny companies’ 10Qs. Especially if they’re not based in the US. I remember it took them about 8 weeks to update PERI at one point.
Here’s how I handle this. I have a universe rule “StaleStmt = 0”. I also append “and StaleStmt = 0” to all my sell rules. And I use the button that says “Force Positions Into Universe” – Yes.

Thanks you guys. I appreciate your time.

Yuval, just so I understand, let’s say you own PERI and after they report earnings the next quarter (even if it is a great report) you sell PERI because they will have a stale statement. Then, when the database is updated, up to 8 weeks later in this case, you will buy it back (assuming it still meets your criteria.) Is this correct? Thanks, Doug

Hi Doug, if you add “and StaleStmt = 0” to all of your sell rules in your sim you won’t sell it.

For example. You could have a sell rule of:
RankPos > 50 and StaleStmt = 0

and even if the RankPos is greater than 50, it still won’t sell until both conditions are met. So long as StaleStmt = 1 that rule cannot sell.

I do the same thing in putting the stalestatement as criteria for buy and sell. This of course can backfire if their earning report sucks and you end up holding the stock for 8 weeks while it tanks into oblivion only to have a sell signal much later.

Buy Rule = StaleStmt=0
Sell Rule StaleStmt=1

Right?

No. If a stock has a stale statement, I do nothing. I don’t buy and I don’t sell. My formula-weight simulations REBALANCE even with a stale statement, because there’s no way to stop them from doing so, but I’m working on fixing that . . .

No, you want StaleStmt = 0 in both rules so that you do nothing unless the numbers we have match the numbers on the most recent financial statement.

I edited my post above to correct my error on this that was probably causing confusion. Sorry about stating the buy rule incorrectly.

Thanks, now I understand. This brings me to my dilemma. Based on simulation results for my model, if I sell on a stale statement my results are significantly better than holding through the quarter, even with the higher turnover and associated costs. I have come up with four possible solutions:

  1. Do nothing: Except the lower returns but the benefit of lower trading hassles.
  2. Sell every time there is a stale statement and rebuy if the stock returns as a buy candidate: Higher potential returns but more trading.
  3. Sell only if the company misses analysts’ estimates for the quarter: Only works for companies that have analyst coverage.
  4. Sell only if the company’s stock trades down relative to the benchmark on the first trading day after they report earnings (a possible signal of a bad report): I have tried to automate this with only partial success.

Currently, I’m leaning to some combination of options 3 and 4.

[/quote] Sometimes it takes Compustat weeks to update tiny companies’ 10Qs.
[/quote]

Are there any data sources other than Compustat that update small company fundamentals faster? Does Factset rely on Compustat?

FactSet and Compustat are competitors, and FactSet updates on its own schedule. We are in the process of figuring out whether they are faster than Compustat or not–I suspect, at this point, that they are, to some degree, but we’re not yet sure.

If they are faster, this could be a gamechanger for those of us in the microcap space. I often find I’m buying stocks several days after a runup following a good quarterly earnings report.