quantlab.dataset.crsp.market#

The CRSP market roster: every listed security, not an index’s members.

CRSP (the Center for Research in Security Prices) is a US stock database sold through WRDS (Wharton Research Data Services). A PERMNO is CRSP’s permanent integer id for one security. A roster is the list of PERMNOs to download, with the dates each one qualifies. A spell is one row of a CRSP history table: an interval of dates over which a security’s descriptive fields stayed the same.

CrspMembership answers “who was in this index”; CrspMarketRoster answers “which securities existed at all”. Both have the same public interface (permno_intervals, permnos_in_range, report) but read different tables, so a caller can use either one the same way.

The roster is read from crsp_a_stock.stksecurityinfohist, which the downloaded reference tables already include for ticker lookups. Each row is one spell of a security’s history and carries the type columns a security filter checks, so a market roster needs no extra download.

The type filter is applied to each spell, and a PERMNO joins the roster if any of its spells qualifies. Which of a security’s daily rows are kept is decided later, by the dataset’s own security filter on the daily table; the roster only decides which securities are downloaded.

permnos_in_range keeps every PERMNO whose qualifying interval overlaps the window, not only those that cover it fully, so a security delisted inside the window stays in the roster. Dropping it would cause survivorship bias (history made to look better by forgetting the companies that failed), and a market roster has far more such securities than any index.

Classes

CrspMarketRoster

Every CRSP security and the dates it was listed, from one reference directory.