New IssueChange() Function to detect change in Primary Issue

Dear All,

As you may be aware, Portfolio123 only cares about Primary Issues since that’s what the Compustat filings are based on. A new function is now available to detect when a stock’s primary issue changes. It is located at FUNDAMENTALS->LATEST FILINGS

IssueChange(quarters)

Returns 0 (FALSE) or the number of quarterly periods ago that there was a change in primary issue.
Parameter ‘quarters’ determines how far back it will look (1-20).

Companies can change primary shares for a variety of reasons. The two most common reasons are when re-emerging from bankruptcy or switching to a new share class due to a reorganization of either the company or the share structure. These changes are problematic for quantitative analysis since a company typically does not restate old interim results. Annuals are usually restated, but not immediately, and sometimes no more than last 2 years. Because there’s no good way to automatically handle these cases, we created a function that lets you avoid companies that have had recent changes. For best accuracy we strongly suggest avoiding companies that have changed primary issues within the past year (maybe even two, depends on your factors)

For example: IssueChange(8) will return 0 if there have been no issue changes for past 8 quarters, otherwise a number from 1-8 indicating how many quarters ago the issue changed. Please see image below for a graphical representation of the output of this function for Six Flags around their (second) bankruptcy reorganization of 2010. You can see the following:

Price - the price for the two stocks active at the point in time. First stock goes to 0. When it jumps that’s the new stock first day of trading
IssueChange(8) - the # of quarters since last issue change
QtrComplete - the latest quarter filing

Let us know of any issues/concerns.

Thanks


CompleteStmt()
StaleStmt()
QtrComplete()
Splits()
DivPS()
IssueChange()

That makes six flags for Six Flags!

Thank you Marco and team!

So, I hate to be a difficult person, but I tried to determine the number of quarters back in a change took place through the following:
setVar(@issueChange, LoopSum(“IssueChange(CTR) != True”,20,0,1,0) )

However, I received the error: “ERROR: Offset must be between 1-20”.

It looks like the function only accepts integers between 1 and 20.

Any way to use this capability without a loss in generality?

Why start at 0? However, no need to use LoopSum , I think. Doesn’t IssueChange(20) do exactly what you want? When it returns a number > 0 it’s telling you how many Q ago the issue changed

Thanks, Marco! I obviously overthought that. You guys thought of everything!

Hi Marco,

This is another example of the great work and continuing improvements p123 has made to its site and service.

Regarding issuechange(), can we say that it is PIT or PIT equivalent? In other words, would it be reliable to include in simulations run over p123’s “max” time period?

Thank you.

Hugh