IMPORTANT: new logic released to fix issue with CompleteStmt that affect fallback

Dear All,

We fixed a problem where the flagging of a preliminary filing to final was changing in the past. We saw cases where a preliminary period became complete in the past when the following period data was released. This is a violation of Point in Time and can cause different results in simulations since the fallback mechanism is not active in final filings . In practical terms it meant that some factors that have a value today thanks to fallback become NA when looked again in the future for today’s as of date.

This issue happened because of a workaround we added when a period is not finalized before the next one comes in. We thought it would be a good idea to force it to be final , but this was ill-advised and has the side-effect of changing the past.

Fortunately only relatively smaller and lower quality stocks are affected that have erratic filings. But certainly your simulations may produce different results.

Very sorry about this. Let us know of any issues.

Thanks for the update, Marco, and for the fix! Do you know how long this issue was ongoing?

Long time. I think it was introduced when we switched to Compustat.

Hi Marco, I had trouble using the CompleteStmt function because it seemed to exclude too many companies for extended periods due to NA. (Requiring CompleteStmt to be true was noticeably hurting results when I tested it). Will this update make “NA” less likely to occur in the CompleteStmt field, or more? thanks, (sorry, I was having trouble understanding the impact of above change)

I am sure I speak for many of us when I say that exposing bugs increases our confidence in the team. We know they’re are a ton of nuances to this thing. Personally, I feel that it shows a growth mindset. Nothing is perfect and everything can be made better.

CompleteStmt is never NA . It’s either 0 (false) to indicate the latest filing is preliminary or 1 (true) to indicate it’s final. When the latest filing is incomplete and a ratio evaluates to N/A, it tries to recalculate it excluding the latest period (but still uses the latest prices).

Requiring only stocks with CompleteStmt = true depends on your system. Prelim statements usually have most of the income statement. If your system relies on income statement there’s no reason to eliminate them.

Side note. Unfortunately there aren’t many ways to tweak the fallback behavior unless you code your own factors (which we do not recommend). When we introduce a more proper language to code your own factors you will be able to fine tune the fallback mechanism. However, creating a P123 language is project not even in the incubator .

I second David’s (Primus’) view.

Thank you for being transparent about bugs or issues. It only increases my confidence in the P123 team.

Keep up the good work!

Thanks Marco. I guess I must have been testing CompleteStmt = True (instead of NA). If I recall correctly requiring true was generally not beneficial when I tested, but I’ll retest the new calc. I seem to recall that the requirement was excluding too many companies that would’ve better been retained during the interim. Thanks for the heads up.