Minor bug in stocks snapshot

I suspect there is a bug in the reporting of sales of shares by insiders. Below is one typical example (stock=ESIO, but I believe bug is all stocks):
Ownership in millions of shares
Purch Sales Net Purch Owned
Institutions (3-Month) 8.66 6.10 2.55 91.55%
Insiders (6-Month) 0.03 -0.19 0.21 2.77%

A negative number for sales is nonsense. I believe the Insider sales should be +0.19 and the net purchases -0.16. The Institutions row is correct.

Compustat uses -ve numbers for insider sales , but institutional shares sold is +ve. It’s confusing. Unfortunately we took their data as is when we started using Compustat. And when we re-did the institutional/insider functions ( see this post ) we decided not to change it since it would have caused problems with existing system’s rules.

Having said that… The snapshot could be corrected to be all positive so it’s less confusing. And yes, the Insider Net Purchases is wrong. It’s doing a double -ve.

Thanks for reporting this.

Was “Insider Net Purchases” wrong just within the snapshot, or was also incorrect in the engine?

Spoke too soon. We did introduce a bug in the engine with the factor InsNetShrPurch, which is now always +ve. That’s the reason the stock snapshot is wrong.

This is too confusing; to have insider sold shares -ve but institutional shares +ve. We will do these things to eliminate the confusion:

  1. We will make the Stock Snapshot shares sold by institutions & insider both +ve.
  2. The new insider functions will also return +ve numbers for insider shares sold.
  3. We will leave InsNetShrPurch as -ve since this is the old factor and used in existing systems, and make it very clear in the documentation. We will likely create a new set of factors with names consistent with the functions and deprecate the previous names (they will disappear from the reference but still be functional).

Hopefully this resolves the confusion on both sides.

Sorry about this.

RESOLUTION AMENDMENT: we will change Ins#ShrSold to also be +ve. This will break the existing systems that are using it correctly. But we analyzed the usage and the majority are using Ins#ShrSold the wrong way! Most rules are like this

Ins#ShrPurch > Ins#ShrSold
Frank(“Ins#ShrPurch/Ins#ShrSold”,#All,#ASC)

This assumes the factors have the same sign.