Institutional Ownership Breadth

Chen, Hong and Stein (2002) studies the relationship between institutional ownership breadth and underlying stock returns. This set of code replicates this exercise using Thomson Reuters 13F data. The output of this code includes breadth of ownership, institutional ownership relative to total shares, concentration of ownership, etc.

Start by importing Python packages and establishing connection to WRDS server:



To make sure share holdings across different quarters are compared on the same basis, we need to gather the shares adjustment factors from CRSP to adjust the holding figures reported in 13F data.


Now use shares adjustment factors (cfacshr) to adjust the "shares" figure:


With the adjusted portfolio holdings shares ready, now we can calculate various institutional holdings metrics down at security level:

We follow the Lehavy and Sloan (2008) method to calculate changes in Institutional Breadth:

  • Breadth Condition: institution should exist in Q(t) and Q(t-1)

  • Objective: Mitigate Bias due to Universe Changes - $100M AUM Filing Threshold

  • Breadth = ((numinst(t) - newinst(t)) -(numinst(t-1)-oldinst(t-1))) / total number of 13f filers in Q(t-1) where,

    • NewInst(t): Number of 13F filers that reported in t, but did not report in (t-1)

    • OldInst(t): Number of 13F filers that reported in (t-1), but did not report in t

    • (NumOwners(t)-NewInst(t)): Number of 13F filers holding security in quarter t, that have reported in both quarters t and t-1

    • (NumOwners(t-1)-OldInst(t-1)): number of 13F filers that held the security in quarter (t-1), and have reported in both quarters t and t-1


Now we add back the CRSP shares outstanding data back, and institutional ownership ratio (IOR) is calculated as total shares owned by institutions divided by total shares outstanding.


Prepare the final table and plots time series of various stats:


We now use the IO metrics produced above to form portfolios and examine the performance: