quantlab.dataset.crsp.symbology#

PERMNO-to-ticker intervals derived from CRSP’s security-information history.

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; unlike a ticker, it never changes and is never reused. The CRSP price panel uses the PERMNO as its symbol axis, so a ticker is only a display name here, never an identity.

CrspSymbology turns the stksecurityinfohist reference table (CRSP’s history of each security’s descriptive fields) into a table of intervals saying which ticker each PERMNO used over which dates. The conversion writes that table into the ticker sidecar, a JSON file next to the Zarr store, which quantlab.dataset.crsp.tickers reads back. The same table answers the reverse question, which PERMNO a ticker named on a given day (resolve), for a panel whose raw files are keyed by ticker, such as the TAQ NBBO tier.

The daily price table cannot spell a share class on its own (it has no shareclass and no tradingsymbol column), so the names come from the downloaded reference tables rather than from the daily rows.

The naming rule, applied per interval:

  1. base is ticker stripped and upper-cased.

  2. cls is shareclass, unless it is null, empty, "None" or "NONE" (the last two occur as literal text in the live tables).

  3. If cls is set and tradingsymbol == base + cls, the symbol is base.cls (BRK with trading symbol BRKB and class B gives BRK.B). Otherwise it is base (GOOGL, META, FB).

  4. An interval whose ticker is null or empty keeps the previous interval’s symbol for that PERMNO. The interval for a delisting day usually looks like this, and carrying the name forward lets the sidecar name a delisted security on its last day.

Nothing here merges two PERMNOs or decides which rows enter a panel.

Classes

CrspSymbology

Ticker intervals per PERMNO, computed once from stksecurityinfohist.