50-company v4 public package

Results and Artifacts

The strongest evidence is volatility ranking, not stock-return alpha.

Compact public summary of 50_company_public_fmp_alpha_2016_2025_v4.

Preregistered primary prediction

Ridge Rank IC = 0.2395

Positive out-of-sample ranking information for future 20-day realized volatility; raw p-value 0.00067.

Correct interpretation Firms predicted to be more volatile tended to rank as more volatile. This is not a return or trading claim.
SupportedVolatility ranking

Positive and fully covered across the preregistered prediction specification.

Not establishedTradable alpha

Primary portfolio Sharpe -0.8539, raw p-value 0.1147.

Plain-language interpretation

What Rank IC Does — and Does Not — Mean

Rank IC measures ordering, so it answers a risk-ranking question rather than an investment-return question.

What it measures Agreement between two rankings

The model ranks firms by predicted future volatility; Rank IC compares that order with realized volatility.

What positive means Higher predicted risk usually ranked higher later

A positive value indicates useful ordering information in this fixed panel, not perfect point forecasts.

What it cannot establish Forecast precision, causal effects, or trading profit

Those require separate metrics and stronger data. The preregistered portfolio test did not establish alpha.

Run summary

Applied-Grade Public Evidence

500
SEC 10-K filings
8,133
OOS predictions
520,465
Feature records
594
Tested specifications
26
Testing families
100%
Eligible OOS coverage
0
Critical audit failures
2
Disclosed scope warnings

One real record, end to end

Trace a 10-K Through the Pipeline

This MSFT FY2022 example connects the original SEC filing to parsed text, quality controls, text features, and a leakage-aware test label.

Real v4 record Microsoft Corporation · FY2022 · SEC EDGAR Excerpt shortened for display
  1. 1Source filing

    Microsoft FY2022 10-K

    Accepted .

    Open the SEC filing ↗
  2. 2Parser output

    ITEM 1A. RISK FACTORS

    Normalized to Risk Factors · item_1a

    “Our operations and financial results are subject to various risks and uncertainties, including those described below…”
  3. 3Quality gate

    OK · included

    10,344 words · 70,310 characters · not excluded from section-level features.

  4. 4Feature output

    Dictionary features

    Negative
    459 · 4.44%
    Uncertainty
    332 · 3.21%
    Positive
    112
    Litigious
    198
  5. 5Temporal split

    2022 test set

    Event date ; realized-volatility label window 29 Jul–25 Aug 2022.

    Train 2016–2020 · validate 2021 · test 2022 · 20-day embargo

Inspect record identifiers and integrity hashes
Document ID
sec:0000789019:0001564590-22-026876:msft-10k_20220630.htm
Parser version
sec-10k-section-parser-v0
Source SHA-256
d8c69513cd820ecdfa3b22decf2672591ced88996188c218d3ffa1439b6b528f
Section SHA-256
b9fd4b02912605455cb3af934ee6b68001a8abfc44bf999310069f5788b436c3

Explore an artifact

Follow the Evidence Behind One Prediction

Switch between the filing, prediction, model, and audit records. Values below come from the published v4 run rather than a fabricated demo.

Filing manifest

MSFT · FY2022 10-K

parsed
Source
SEC EDGAR
Accepted
2022-07-28 16:06:19 UTC
Section
item_1a · Risk Factors
Usage policy
include
Prediction record

20-day realized volatility

test observation
Predicted0.01502
Realized0.01377
Label window
2022-07-29 → 2022-08-25
Label quality
complete
Model ID
ridge::realized_volatility_1_20::train_2016_2020__val_2021_2021__test_2022_2022

This single observation demonstrates record linkage and time alignment; it does not validate model accuracy.

Model manifest

Combined-text Ridge

clean worktree
Configuration
alpha=10.0 · standard scaler
Feature count
395
Observations
208 train · 45 validation · 50 test
Seed
42
Inspect the published model manifest ↗
Audit report

Leakage controls and data boundary

scope warning
  • Pass
    Feature look-ahead

    0 records occur after prediction time.

  • Pass
    TF-IDF fit scope

    0 manifests violate train-window-only fitting.

  • Pass
    Model selection

    0 tuning logs select on a non-validation metric.

  • Warn
    Market-data boundary

    Mixed FMP/Yahoo sources make this an applied-grade pilot, not a CRSP/WRDS-equivalent replication.

Inspect the published audit report ↗

Preregistered primary

Combined-Text Ridge

realized_volatility_1_20, evaluated by ALL_SPLITS Rank IC.

Rank IC0.2395
Raw p-value0.00067

Supports positive exploratory volatility-ranking evidence.

Best observed exploratory result

TF-IDF/SVD-Only Ridge

The strongest observed model-comparison result, not the preregistered primary claim.

Rank IC0.3668
NW t-stat5.4055

RMSE 0.00992.

Feature ablation

Raw vs Industry-Neutral Rank IC

Text representations retain positive ranking diagnostics after within-split industry demeaning.

Raw Rank ICIndustry-neutral Rank IC
TF-IDF/SVD only
0.3668 / 0.3416
Industry + text
0.3296 / 0.3251
Industry only
0.2924 / 0.0000
Dictionary only
0.2244 / 0.2465
Combined text
0.2395 / 0.2023
Feature setEstimatorRank ICIndustry-neutral Rank ICRMSE
TF-IDF/SVD onlyRidge0.36680.34160.00992
Industry + textRidge0.32960.32510.01076
Industry onlyIndustry mean0.29240.00000.00913
Dictionary onlyRidge0.22440.24650.00984
Combined textRidge0.23950.20230.01932

Bootstrap inference

Primary Rank IC Confidence Intervals

Two thousand deterministic resamples. The orange line marks zero; intervals crossing it are inconclusive under that clustering choice.

Honest read: the raw primary signal is positive under event-date and ticker clustering, but split bootstrap is inconclusive because only four OOS split clusters are available.

EstimandMethodPoint95% CIp-value
Raw Rank ICSplit bootstrap0.2395[-0.0050, 0.4841]0.111
Raw Rank ICEvent-date bootstrap0.2395[0.0719, 0.3743]0.005
Raw Rank ICTicker-cluster bootstrap0.2395[0.1091, 0.3522]0.001
Industry-neutral Rank ICSplit bootstrap0.2023[-0.1157, 0.5202]0.117
Industry-neutral Rank ICEvent-date bootstrap0.2023[-0.1546, 0.4273]0.366
Industry-neutral Rank ICTicker-cluster bootstrap0.2023[-0.1787, 0.4181]0.357

Coverage and Controls

Raw label coverage is 49.6%, eligible OOS coverage is 100%, model-expected prediction coverage is 98.546%, and primary prediction / portfolio coverage is 100%.

Data Boundary

This public-source experiment uses mixed FMP/Yahoo market data and applied-grade market-cap estimates. It is not a CRSP/WRDS-equivalent survivorship-free replication.

Reproducibility

Run the Public Code Locally

Shell
git clone https://github.com/uiclxh/financial-10k-text-agent.git
cd financial-10k-text-agent
python -m pip install -e ".[dev]"
python -m ruff check .
python -m pytest

Raw licensed inputs are not included in the public repository.