ledger-market-sentiment
收藏资源简介:
# LEDGER Market Sentiment Prediction Data Data used for the market sentiment prediction case study in the LEDGER paper, linking CEO-letter rhetoric to EPS surprises and post-publication market reactions. ## Dataset Description This dataset supports research on whether the rhetoric in corporate annual report CEO letters carries signal about future fundamentals and market reaction. It covers six highly liquid industries (specialty chemicals, auto parts, packaged foods, oil & gas E&P, oil & gas equipment & services, and mortgage REITs) spanning fiscal years 2017–2022. ## Configs | Config | Rows | Description | |--------|------|-------------| | `letters` | 464 | CEO/chairman letters extracted from annual reports, with sentiment labels | | `eps_surprise` | 13,489 | Earnings per share surprise data (consensus vs. reported) | | `stock_prices` | 422,888 | Daily stock prices with rolling return windows (t-90 to t+90) | | `industry_indicators` | 12,525 | Aggregate industry-level daily indicators | ## Schema ### `letters` | Column | Type | Description | |--------|------|-------------| | `ticker` | string | Stock ticker symbol | | `exchange` | string | Stock exchange (NYSE, NASDAQ, LSE, AMEX) | | `industry` | string | Industry classification | | `year` | int | Fiscal year of the annual report | | `letter_number` | int | Letter index within the report (1-based) | | `title` | string | Letter heading (e.g. "Chairman's Statement") | | `start_page` | int | First page in the source report | | `end_page` | int | Last page in the source report | | `sentiment` | string | Overall sentiment label: `positive`, `negative`, or null | | `text` | string | Full letter text (Markdown) | | `source_report` | string | Path to the source OCR'd report | ### `eps_surprise` | Column | Type | Description | |--------|------|-------------| | `ticker` | string | Stock ticker symbol | | `earnings_date` | datetime | Earnings announcement date (UTC) | | `eps_estimate` | float | Consensus analyst EPS estimate | | `reported_eps` | float | Actual reported EPS (null for future dates) | | `surprise_pct` | float | Surprise percentage: (actual - estimate) / estimate × 100 | ### `stock_prices` | Column | Type | Description | |--------|------|-------------| | `ticker` | string | Stock ticker symbol | | `Date` | date | Trading date | | `Open` | float | Opening price | | `High` | float | Daily high | | `Low` | float | Daily low | | `Close` | float | Closing price | | `Volume` | float | Trading volume | | `Volume_ATS` | float | Alternative trading system volume (normalized) | | `returns` | float | Daily return | | `Volatility` | float | Rolling volatility | | `return_t-90` … `return_t90` | float | Rolling returns from t-90 to t+90 trading days | ### `industry_indicators` | Column | Type | Description | |--------|------|-------------| | `industry` | string | Industry name | | `Date` | date | Trading date | | `returns` | float | Equal-weighted industry return | | `volumes` | float | Normalized aggregate volume | | `volatility` | float | Industry volatility | | `returns_vw` | float | Value-weighted industry return | | `volumes_vw` | float | Value-weighted aggregate volume | | `volatility_vw` | float | Value-weighted volatility | | `return_t-90_vw` … `return_t42_vw` | float | Value-weighted rolling returns (t-90 to t+42) | ## Usage ```python from datasets import load_dataset # Load CEO letters with sentiment letters = load_dataset("artefactory/LEDGER-market-sentiment", "letters") # Load EPS surprises eps = load_dataset("artefactory/LEDGER-market-sentiment", "eps_surprise") # Load daily stock prices prices = load_dataset("artefactory/LEDGER-market-sentiment", "stock_prices") # Load industry indicators indicators = load_dataset("artefactory/LEDGER-market-sentiment", "industry_indicators") # Example: filter to positive-sentiment letters positive_letters = letters["train"].filter(lambda x: x["sentiment"] == "positive") ``` ## Industries Covered 1. Basic Materials / Specialty Chemicals 2. Consumer Cyclical / Auto Parts 3. Consumer Defensive / Packaged Foods 4. Energy / Oil & Gas E&P 5. Energy / Oil & Gas Equipment & Services 6. Real Estate / REIT - Mortgage ## Citation key If you use LEDGER datasets and / or code ressources, please consider citing our work with: ``` @misc{moslonka2026ledgerlongcontextbenchmarkcorporate, title={LEDGER: A Long-Context Benchmark of Corporate Annual Reports for Grounded Financial Retrieval and Extraction}, author={Charles Moslonka and Amaury de Vitry and Arthur Garnier and Hicham Randrianarivo and Emmanuel Malherbe}, year={2026}, eprint={2606.13100}, archivePrefix={arXiv}, primaryClass={cs.CL}, url={https://arxiv.org/abs/2606.13100}, } ``` ## License Code: MIT | Data: CC-BY-4.0 ## Links - **Collection**: [artefactory/ledger](https://huggingface.co/collections/artefactory/ledger) - **Code**: [github.com/artefactory/LEDGER](https://github.com/artefactory/LEDGER) - **ArXiv** [https://arxiv.org/abs/2606.13100](https://arxiv.org/abs/2606.13100)



