Methodology
Every signal type is scored against its own out-of-sample walk-forward history before this site calls it validated. This page is the full policy: the thresholds, the exact configuration a run hashes, and where each signal type stands today.
Validation policy
- Validated — Out-of-sample n ≥ 100, cluster-bootstrap 95% CI lower bound positive, Benjamini-Hochberg q ≤ 0.10, and a positive mean excess return in at least two chronological test folds.
- Rejected — n ≥ 50 and the cluster-bootstrap 95% CI upper bound is non-positive.
- Promising — n ≥ 30 and a positive mean (not yet validated).
- Unproven — None of the above — insufficient or inconclusive evidence.
Methodology version & configuration
Current methodology version: v2-next-session-adjusted. Every completed evidence run hashes exactly this configuration (its config_hash); a methodology change that would alter results always ships as a new version, never a silent edit to an old one.
{
"methodology_version": "v2-next-session-adjusted",
"horizons": [
5,
21,
63
],
"benchmark": "SPY",
"sector_benchmark": "sector-etf-map-v1",
"folds": 3,
"bootstrap": "cluster-by-entry-date",
"bootstrap_draws": 5000,
"bootstrap_seed": 1729,
"p_value": "null-centered-two-sided",
"overlap_rule": "one event per ticker/type/horizon",
"winsorization": "train-bounds-applied-to-test-1pct"
}Evidence-program progress
Live counts below are from the latest completed evidence run (data as of 2026-08-22), at the 21-trading-day horizon.
There is no evidence-run cron wired up yet: runs are triggered on demand (python -m trading_assistant.evidence_run), not on a fixed schedule — so "next scheduled run" below is honestly "not yet scheduled" rather than a made-up date.
| Signal type | n so far | Needed to validate | Next run | Time to evidence |
|---|---|---|---|---|
| New institutional position | n=0 of ≥100 | n≥100, CI lower > 0, q≤0.10, ≥2 positive folds | not yet scheduled | Fast once Task 19's historical backfill lands — sourced from filings with years of retroactive history available. |
| Institution added to position | n=0 of ≥100 | n≥100, CI lower > 0, q≤0.10, ≥2 positive folds | not yet scheduled | Fast once Task 19's historical backfill lands — sourced from filings with years of retroactive history available. |
| Now a top-10 holding | n=0 of ≥100 | n≥100, CI lower > 0, q≤0.10, ≥2 positive folds | not yet scheduled | Fast once Task 19's historical backfill lands — sourced from filings with years of retroactive history available. |
| Multiple funds accumulating | n=0 of ≥100 | n≥100, CI lower > 0, q≤0.10, ≥2 positive folds | not yet scheduled | Fast once Task 19's historical backfill lands — sourced from filings with years of retroactive history available. |
| Activist stake (13D) | n=601 of ≥100 | n≥100, CI lower > 0, q≤0.10, ≥2 positive folds | not yet scheduled | Fast once Task 19's historical backfill lands — sourced from filings with years of retroactive history available. |
| Crossed 5% ownership | n=5346 of ≥100 | n≥100, CI lower > 0, q≤0.10, ≥2 positive folds | not yet scheduled | Fast once Task 19's historical backfill lands — sourced from filings with years of retroactive history available. |
| Activist escalation | n=0 of ≥100 | n≥100, CI lower > 0, q≤0.10, ≥2 positive folds | not yet scheduled | Fast once Task 19's historical backfill lands — sourced from filings with years of retroactive history available. |
| Insider open-market buy | n=5014 of ≥100 | n≥100, CI lower > 0, q≤0.10, ≥2 positive folds | not yet scheduled | Fast once Task 19's historical backfill lands — sourced from filings with years of retroactive history available. |
| Insider buying cluster | n=424 of ≥100 | n≥100, CI lower > 0, q≤0.10, ≥2 positive folds | not yet scheduled | Fast once Task 19's historical backfill lands — sourced from filings with years of retroactive history available. |
| Short interest shift | n=836 of ≥100 | n≥100, CI lower > 0, q≤0.10, ≥2 positive folds | not yet scheduled | Quarters away — this feed only has fetch-time-forward history (no retroactive archive to backfill), so n grows only as ingestion keeps running. |
| Short-squeeze setup | n=620 of ≥100 | n≥100, CI lower > 0, q≤0.10, ≥2 positive folds | not yet scheduled | Quarters away — this feed only has fetch-time-forward history (no retroactive archive to backfill), so n grows only as ingestion keeps running. |
| Earnings surprise | n=268 of ≥100 | n≥100, CI lower > 0, q≤0.10, ≥2 positive folds | not yet scheduled | Fast once Task 19's historical backfill lands — sourced from filings with years of retroactive history available. |
| Dark-pool volume spike | n=230 of ≥100 | n≥100, CI lower > 0, q≤0.10, ≥2 positive folds | not yet scheduled | Quarters away — this feed only has fetch-time-forward history (no retroactive archive to backfill), so n grows only as ingestion keeps running. |
| Failure-to-deliver spike | n=336 of ≥100 | n≥100, CI lower > 0, q≤0.10, ≥2 positive folds | not yet scheduled | Quarters away — this feed only has fetch-time-forward history (no retroactive archive to backfill), so n grows only as ingestion keeps running. |
| Insider intent to sell (Form 144) | n=9000 of ≥100 | n≥100, CI lower > 0, q≤0.10, ≥2 positive folds | not yet scheduled | Fast once Task 19's historical backfill lands — sourced from filings with years of retroactive history available. |
| Hard to borrow | n=0 of ≥100 | n≥100, CI lower > 0, q≤0.10, ≥2 positive folds | not yet scheduled | Quarters away — this feed only has fetch-time-forward history (no retroactive archive to backfill), so n grows only as ingestion keeps running. |
| Congressional trade | n=130 of ≥100 | n≥100, CI lower > 0, q≤0.10, ≥2 positive folds | not yet scheduled | Fast once Task 19's historical backfill lands — sourced from filings with years of retroactive history available. |
| Earnings reaction | n=0 of ≥100 | n≥100, CI lower > 0, q≤0.10, ≥2 positive folds | not yet scheduled | Fast once Task 19's historical backfill lands — sourced from filings with years of retroactive history available. |