quantlab.dataset.sharadar.listing#

Point-in-time listing of each Sharadar security: SIC series and exchange, keyed by permaticker.

TICKERS gives each security’s current SIC code and exchange; ACTIONS records their changes (sicchangefrom/sicchangeto with the code in value, exchangefrom/exchangeto with the exchange name in contraname). SharadarListingDataset walks each history back from the current value (quantlab.dataset.sharadar.history; the SIC history is the one the Fama-French 48 industry panel reads, so the two never disagree) and stores five float variables on SEP’s trading days:

sic_code

The SIC code itself.

sic_sector

The SIC division of the code, 1..11 (names: Sharadar’s sicsector spellings). A code in no division’s range is NaN.

sic_industry

The SIC industry, coded by its SIC code: Sharadar’s sicindustry is one title per code (on the 2026-10-16 pull, 440 codes and 440 titles), so the value is the code itself and names maps each code to its title. names holds the codes some TICKERS row carries today; a past code no row carries any longer keeps its value without a title, so a day’s value never depends on the day it was built.

fama_industry

The Fama-French 48 industry of the code, 1..48, unmerged (quantlab.dataset._support.ff48); names are French’s short names. Sharadar’s own famaindustry is not used: it is a current snapshot not kept in line with siccode (it differs from the code’s most common label on 450 of 20,861 SEP rows of the 2026-10-05 pull). fama_industry is the industry panel’s code before its merge.

exchange

The listing exchange, a fixed code per vendor name (names). An exchange name outside EXCHANGES refuses the build naming it, so a new venue is never silently dropped.

A value is shown from the security’s TICKERS firstpricedate to its lastpricedate and is NaN outside them, or where it is unknown. A change shows from its own date, or the next trading day when that is a weekend or holiday. TICKERS attributes with no history in ACTIONS (sector, industry, category, location, currency, the market-cap and revenue scales, famaindustry) are not in the panel: they would carry today’s value back over the whole history. The store grows with update(): new days are appended and a stored day is never rewritten.

Examples#

Build the store and read a year:

config = SharadarListingConfig(
    zarr_file_path="/data/quantlab/market/sharadar/sharadar_listing_1d/sharadar_listing_1d.zarr",
    raw_data_dir_path="/data/quantlab/downloads/sharadar",
)
SharadarListingDataset(config).update()
panel = SharadarListingDataset(config).panel("2024-01-02", "2024-12-31")
panel["exchange"].attrs["names"]["2"]  # 'NASDAQ'

Classes

SharadarListingDataset

Daily panel of each security's point-in-time SIC series and exchange.