quantlab.dataset.sharadar.share_class#
The security whose filings carry each Sharadar security’s firm values, keyed by permaticker.
A firm with several traded share classes (Alphabet’s GOOGL and GOOG,
Berkshire’s BRK.B and BRK.A) has one SF1 security, the primary class:
its DAILY marketcap is the firm’s total market cap (GOOGL’s $2,251B on
2024-06-28 is every share of both classes) and its SF1 rows the firm’s
fundamentals. A secondary class (TICKERS category ending in
“Secondary Class”) has SEP rows only.
SharadarShareClassDataset stores one float variable, firm: the
permaticker whose DAILY and SF1 rows hold the security’s firm values.
A security that is not a secondary class is its own firm.
A secondary class’s firm is the SF1 security with the same SEC CIK (the
CIK=of TICKERSsecfilings) that is priced on the day, between its TICKERSfirstpricedateandlastpricedate. A CIK can name successive issuers (a company restructured into a new security), so the firm can change from one day to the next.The firm is NaN on a day where no such SF1 security is priced, on a day where two or more are, and for a secondary class without a CIK. Each day is decided from that day’s issuers alone, so the panel holds no look-ahead.
On the 2026-10-05 pull, 1,334 of the 1,338 domestic secondary classes have
exactly one SF1 security with their CIK; three have no CIK, and one
(OSGB) has two, priced in turn. The CIK was checked against TICKERS
relatedtickers on GOOG/GOOGL, BRK.A/BRK.B and FOX/FOXA (issue #186).
Like any spell panel (quantlab.dataset.sharadar.spells), the value is
shown from the security’s first to its last price date, on SEP’s trading
days, and the store grows with update().
Examples#
Build the store and read a year:
config = SharadarShareClassConfig(
zarr_file_path="/data/quantlab/market/sharadar/sharadar_share_class_1d/sharadar_share_class_1d.zarr",
raw_data_dir_path="/data/quantlab/downloads/sharadar",
)
SharadarShareClassDataset(config).update()
panel = SharadarShareClassDataset(config).panel("2024-01-02", "2024-12-31")
panel["firm"].sel(symbol=119496).values[0] # GOOG -> 195146.0, GOOGL
Classes
Daily panel of the permaticker holding each security's firm values. |