diff --git a/docs/research/history-depth-extension.md b/docs/research/history-depth-extension.md index 522c57e..3f9d97a 100644 --- a/docs/research/history-depth-extension.md +++ b/docs/research/history-depth-extension.md @@ -1,8 +1,8 @@ # History-depth extension (Tier-1 alpha research) -**Status:** **RUN COMPLETE — human interpretation below.** +**Status:** sector-resid deep test **FAIL** — see supersession section. PENDING_HUMAN beyond PASS/FAIL. **Branch:** `research/earnings-gap-and-sue` (MacBook commit `f6e0ca7`) -**Authoritative artifact:** `reports/history-depth-20260719-103315.json` +**Superseded artifact (do not cite):** `reports/history-depth-20260719-103315.json` — **UNMASKED, TWO-TIER SNAPSHOT** **Production impact:** none. **Do not retune any production knob on deep history.** --- @@ -180,3 +180,19 @@ report does not change that without a separate A/B. Flag for human awareness onl | `reports/history-depth-20260719-103315.json` | **authoritative** | | `reports/history-depth-20260719-103315.md` | companion dump | | `reports/history-depth-20260719-093853` … `095156` | **ignore** (partial) | + +--- + +## Supersession notice (2026-07-19 sector-resid deep test) + +The table and interpretation from **`history-depth-20260719-103315`** are **UNMASKED, TWO-TIER SNAPSHOT — superseded, directional only, do not cite**. Prod-universe names (and sector residual coverage) were left shallow while breadth names were deepened; sector residual weeks=35 was a data gap. + +### Sector-residual deep test outcome: **FAIL** + +Task 1 CLOSED — sector residual dead on deep evidence. + +- Reason: failed one or more pre-registered checks (see checks) +- Artifact: `reports/sector-resid-deep-20260719-113319.json` +- Mechanical checks: see that report. + +**Future snapshot rebuilds must verify per-symbol depth** (earliest-bar uniformity across the intended universe) — guard is a to-do, not part of this order. diff --git a/reports/sector-resid-deep-20260719-113319.json b/reports/sector-resid-deep-20260719-113319.json new file mode 100644 index 0000000..2e6d9f9 --- /dev/null +++ b/reports/sector-resid-deep-20260719-113319.json @@ -0,0 +1,990 @@ +{ + "generated_at": "2026-07-19T11:33:19.102779", + "snapshot": "/Users/taathde3/git/lab/signal_platform/backtest_snapshots/research.sqlite", + "pre_registration": { + "iron_ic": 0.03, + "min_weeks_deep": 50, + "liquid_breadth": 1500, + "min_price": 5.0, + "rule": "PASS = |IC|>=0.03, +sign, reliable, weeks>=50, t>=resid on same CS, era signs both +" + }, + "step1": { + "skipped": true, + "sanity": { + "passed": true, + "megacap": { + "AAPL": { + "symbol": "AAPL", + "bars": 2649, + "min_date": "2016-01-04", + "max_date": "2026-07-17" + }, + "MSFT": { + "symbol": "MSFT", + "bars": 2649, + "min_date": "2016-01-04", + "max_date": "2026-07-17" + }, + "JPM": { + "symbol": "JPM", + "bars": 2649, + "min_date": "2016-01-04", + "max_date": "2026-07-17" + }, + "XOM": { + "symbol": "XOM", + "bars": 2649, + "min_date": "2016-01-04", + "max_date": "2026-07-17" + }, + "JNJ": { + "symbol": "JNJ", + "bars": 2649, + "min_date": "2016-01-04", + "max_date": "2026-07-17" + } + }, + "megacap_ok": true, + "megacap_reasons": [], + "feed_floor": "2016-01-04", + "spy_benchmark": { + "n": 2649, + "min": "2016-01-04", + "max": "2026-07-17" + }, + "old_shallow_floor": "2020-01-01", + "sector_etfs": { + "XLB": { + "n": 2649, + "min": "2016-01-04", + "max": "2026-07-17" + }, + "XLC": { + "n": 2030, + "min": "2018-06-19", + "max": "2026-07-17" + }, + "XLE": { + "n": 2649, + "min": "2016-01-04", + "max": "2026-07-17" + }, + "XLF": { + "n": 2649, + "min": "2016-01-04", + "max": "2026-07-17" + }, + "XLI": { + "n": 2649, + "min": "2016-01-04", + "max": "2026-07-17" + }, + "XLK": { + "n": 2649, + "min": "2016-01-04", + "max": "2026-07-17" + }, + "XLP": { + "n": 2649, + "min": "2016-01-04", + "max": "2026-07-17" + }, + "XLRE": { + "n": 2649, + "min": "2016-01-04", + "max": "2026-07-17" + }, + "XLU": { + "n": 2649, + "min": "2016-01-04", + "max": "2026-07-17" + }, + "XLV": { + "n": 2649, + "min": "2016-01-04", + "max": "2026-07-17" + }, + "XLY": { + "n": 2649, + "min": "2016-01-04", + "max": "2026-07-17" + } + }, + "sector_etfs_deep_count": 11, + "sector_etfs_ok": true, + "sector_etf_reasons": [], + "still_shallow_count": 2882, + "still_shallow_sample": [ + "AACB", + "AACBR", + "AACBU", + "AACI", + "AACIU", + "AACIW", + "AACO", + "AACOU", + "AACOW", + "AACP", + "AACPR", + "AACPU", + "AACPW", + "AAPG", + "AARD", + "ABAT", + "ABCL", + "ABLV", + "ABLVW", + "ABNB" + ], + "still_shallow_note": "Remaining 'shallow' names are mostly post-2017 IPOs/listings \u2014 expected, not a two-tier defect.", + "xlc_note": "XLC lists mid-2018 \u2192 Communication Services residual coverage from ~mid-2019.", + "feed_note": "Empirical Alpaca floor observed via SPY: 2016-01-04 (n=2649). Calendar history_days=5000 is a request cap, not a guarantee \u2014 sanity grades against the feed floor, not 5000 calendar days.", + "target_history_days": 5000 + } + }, + "harness": { + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "survivorship_banner": "SURVIVORSHIP BIAS: today's constituents backfilled. Relative IC only \u2014 not levels.", + "signal_eval": [ + { + "signal": "high_52w", + "weeks": 84, + "avg_cross_section": 1499.2, + "mean_ic": 0.0761, + "ic_t_stat": 4.46, + "ic_positive_pct": 71.4, + "mean_quintile_spread": 0.0118, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 2564.4, + "avg_eligible_pre_mask": 2047.0, + "mask_binds_pct": 94.0 + }, + { + "signal": "trend_200", + "weeks": 85, + "avg_cross_section": 1499.6, + "mean_ic": 0.0371, + "ic_t_stat": 2.63, + "ic_positive_pct": 62.4, + "mean_quintile_spread": -0.7839, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 2583.0, + "avg_eligible_pre_mask": 2065.8, + "mask_binds_pct": 96.5 + }, + { + "signal": "mom_12_1", + "weeks": 83, + "avg_cross_section": 1499.4, + "mean_ic": 0.0355, + "ic_t_stat": 2.41, + "ic_positive_pct": 62.7, + "mean_quintile_spread": 0.0141, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 2553.0, + "avg_eligible_pre_mask": 2045.4, + "mask_binds_pct": 95.2 + }, + { + "signal": "mom_12_1_sector_resid", + "weeks": 83, + "avg_cross_section": 480.0, + "mean_ic": 0.0268, + "ic_t_stat": 1.69, + "ic_positive_pct": 60.2, + "mean_quintile_spread": 0.0126, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 481.2, + "avg_eligible_pre_mask": 480.0, + "mask_binds_pct": 0.0 + }, + { + "signal": "mom_3_1", + "weeks": 90, + "avg_cross_section": 1498.6, + "mean_ic": 0.0256, + "ic_t_stat": 2.24, + "ic_positive_pct": 61.1, + "mean_quintile_spread": -0.0048, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 2679.7, + "avg_eligible_pre_mask": 2128.6, + "mask_binds_pct": 95.6 + }, + { + "signal": "reversal_1m", + "weeks": 89, + "avg_cross_section": 1499.0, + "mean_ic": 0.0156, + "ic_t_stat": 1.37, + "ic_positive_pct": 59.6, + "mean_quintile_spread": -0.7882, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 2700.0, + "avg_eligible_pre_mask": 2085.8, + "mask_binds_pct": 94.5 + }, + { + "signal": "mom_12_1_resid", + "weeks": 83, + "avg_cross_section": 1499.4, + "mean_ic": 0.0148, + "ic_t_stat": 1.02, + "ic_positive_pct": 57.8, + "mean_quintile_spread": 0.0181, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 2553.0, + "avg_eligible_pre_mask": 2045.4, + "mask_binds_pct": 95.2 + }, + { + "signal": "mom_6_1", + "weeks": 88, + "avg_cross_section": 1499.3, + "mean_ic": 0.0101, + "ic_t_stat": 0.91, + "ic_positive_pct": 58.0, + "mean_quintile_spread": 0.0108, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 2641.3, + "avg_eligible_pre_mask": 2098.8, + "mask_binds_pct": 95.5 + }, + { + "signal": "mom_12_1_sector_demeaned", + "weeks": 83, + "avg_cross_section": 483.2, + "mean_ic": 0.0076, + "ic_t_stat": 0.46, + "ic_positive_pct": 55.4, + "mean_quintile_spread": 0.0054, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 484.4, + "avg_eligible_pre_mask": 483.2, + "mask_binds_pct": 0.0 + }, + { + "signal": "fip_id", + "weeks": 83, + "avg_cross_section": 1499.4, + "mean_ic": -0.0184, + "ic_t_stat": -2.11, + "ic_positive_pct": 45.8, + "mean_quintile_spread": -0.0059, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 2553.0, + "avg_eligible_pre_mask": 2045.4, + "mask_binds_pct": 95.2 + }, + { + "signal": "vol_6m", + "weeks": 88, + "avg_cross_section": 1499.3, + "mean_ic": -0.0704, + "ic_t_stat": -3.14, + "ic_positive_pct": 35.2, + "mean_quintile_spread": 0.0051, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 2641.3, + "avg_eligible_pre_mask": 2098.8, + "mask_binds_pct": 95.5 + } + ], + "signal_eval_by_name": { + "high_52w": { + "signal": "high_52w", + "weeks": 84, + "avg_cross_section": 1499.2, + "mean_ic": 0.0761, + "ic_t_stat": 4.46, + "ic_positive_pct": 71.4, + "mean_quintile_spread": 0.0118, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 2564.4, + "avg_eligible_pre_mask": 2047.0, + "mask_binds_pct": 94.0 + }, + "trend_200": { + "signal": "trend_200", + "weeks": 85, + "avg_cross_section": 1499.6, + "mean_ic": 0.0371, + "ic_t_stat": 2.63, + "ic_positive_pct": 62.4, + "mean_quintile_spread": -0.7839, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 2583.0, + "avg_eligible_pre_mask": 2065.8, + "mask_binds_pct": 96.5 + }, + "mom_12_1": { + "signal": "mom_12_1", + "weeks": 83, + "avg_cross_section": 1499.4, + "mean_ic": 0.0355, + "ic_t_stat": 2.41, + "ic_positive_pct": 62.7, + "mean_quintile_spread": 0.0141, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 2553.0, + "avg_eligible_pre_mask": 2045.4, + "mask_binds_pct": 95.2 + }, + "mom_12_1_sector_resid": { + "signal": "mom_12_1_sector_resid", + "weeks": 83, + "avg_cross_section": 480.0, + "mean_ic": 0.0268, + "ic_t_stat": 1.69, + "ic_positive_pct": 60.2, + "mean_quintile_spread": 0.0126, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 481.2, + "avg_eligible_pre_mask": 480.0, + "mask_binds_pct": 0.0 + }, + "mom_3_1": { + "signal": "mom_3_1", + "weeks": 90, + "avg_cross_section": 1498.6, + "mean_ic": 0.0256, + "ic_t_stat": 2.24, + "ic_positive_pct": 61.1, + "mean_quintile_spread": -0.0048, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 2679.7, + "avg_eligible_pre_mask": 2128.6, + "mask_binds_pct": 95.6 + }, + "reversal_1m": { + "signal": "reversal_1m", + "weeks": 89, + "avg_cross_section": 1499.0, + "mean_ic": 0.0156, + "ic_t_stat": 1.37, + "ic_positive_pct": 59.6, + "mean_quintile_spread": -0.7882, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 2700.0, + "avg_eligible_pre_mask": 2085.8, + "mask_binds_pct": 94.5 + }, + "mom_12_1_resid": { + "signal": "mom_12_1_resid", + "weeks": 83, + "avg_cross_section": 1499.4, + "mean_ic": 0.0148, + "ic_t_stat": 1.02, + "ic_positive_pct": 57.8, + "mean_quintile_spread": 0.0181, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 2553.0, + "avg_eligible_pre_mask": 2045.4, + "mask_binds_pct": 95.2 + }, + "mom_6_1": { + "signal": "mom_6_1", + "weeks": 88, + "avg_cross_section": 1499.3, + "mean_ic": 0.0101, + "ic_t_stat": 0.91, + "ic_positive_pct": 58.0, + "mean_quintile_spread": 0.0108, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 2641.3, + "avg_eligible_pre_mask": 2098.8, + "mask_binds_pct": 95.5 + }, + "mom_12_1_sector_demeaned": { + "signal": "mom_12_1_sector_demeaned", + "weeks": 83, + "avg_cross_section": 483.2, + "mean_ic": 0.0076, + "ic_t_stat": 0.46, + "ic_positive_pct": 55.4, + "mean_quintile_spread": 0.0054, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 484.4, + "avg_eligible_pre_mask": 483.2, + "mask_binds_pct": 0.0 + }, + "fip_id": { + "signal": "fip_id", + "weeks": 83, + "avg_cross_section": 1499.4, + "mean_ic": -0.0184, + "ic_t_stat": -2.11, + "ic_positive_pct": 45.8, + "mean_quintile_spread": -0.0059, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 2553.0, + "avg_eligible_pre_mask": 2045.4, + "mask_binds_pct": 95.2 + }, + "vol_6m": { + "signal": "vol_6m", + "weeks": 88, + "avg_cross_section": 1499.3, + "mean_ic": -0.0704, + "ic_t_stat": -3.14, + "ic_positive_pct": 35.2, + "mean_quintile_spread": 0.0051, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 2641.3, + "avg_eligible_pre_mask": 2098.8, + "mask_binds_pct": 95.5 + } + }, + "era_split": { + "era_split_date": "2021-01-01", + "note": "Diagnostic only \u2014 not a tuning input.", + "pre_2021": { + "high_52w": { + "signal": "high_52w", + "weeks": 36, + "avg_cross_section": 1498.1, + "mean_ic": 0.0535, + "ic_t_stat": 2.26, + "ic_positive_pct": 69.4, + "mean_quintile_spread": -0.0027, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 1894.7, + "avg_eligible_pre_mask": 1670.6, + "mask_binds_pct": 86.1 + }, + "trend_200": { + "signal": "trend_200", + "weeks": 38, + "avg_cross_section": 1499.1, + "mean_ic": 0.0373, + "ic_t_stat": 1.99, + "ic_positive_pct": 65.8, + "mean_quintile_spread": -1.7748, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 1913.9, + "avg_eligible_pre_mask": 1687.4, + "mask_binds_pct": 92.1 + }, + "mom_12_1": { + "signal": "mom_12_1", + "weeks": 36, + "avg_cross_section": 1498.6, + "mean_ic": 0.037, + "ic_t_stat": 1.92, + "ic_positive_pct": 63.9, + "mean_quintile_spread": 0.0096, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 1897.3, + "avg_eligible_pre_mask": 1673.1, + "mask_binds_pct": 88.9 + }, + "mom_3_1": { + "signal": "mom_3_1", + "weeks": 42, + "avg_cross_section": 1497.0, + "mean_ic": 0.0273, + "ic_t_stat": 2.03, + "ic_positive_pct": 64.3, + "mean_quintile_spread": -0.027, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 1954.5, + "avg_eligible_pre_mask": 1717.3, + "mask_binds_pct": 90.5 + }, + "mom_12_1_resid": { + "signal": "mom_12_1_resid", + "weeks": 36, + "avg_cross_section": 1498.6, + "mean_ic": 0.0216, + "ic_t_stat": 1.09, + "ic_positive_pct": 63.9, + "mean_quintile_spread": 0.0284, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 1897.3, + "avg_eligible_pre_mask": 1673.1, + "mask_binds_pct": 88.9 + }, + "reversal_1m": { + "signal": "reversal_1m", + "weeks": 42, + "avg_cross_section": 1497.8, + "mean_ic": 0.0208, + "ic_t_stat": 1.45, + "ic_positive_pct": 64.3, + "mean_quintile_spread": -1.6753, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 1976.6, + "avg_eligible_pre_mask": 1650.9, + "mask_binds_pct": 88.6 + }, + "mom_12_1_sector_resid": { + "signal": "mom_12_1_sector_resid", + "weeks": 36, + "avg_cross_section": 460.7, + "mean_ic": 0.0149, + "ic_t_stat": 0.64, + "ic_positive_pct": 58.3, + "mean_quintile_spread": 0.0063, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 462.8, + "avg_eligible_pre_mask": 460.7, + "mask_binds_pct": 0.0 + }, + "mom_6_1": { + "signal": "mom_6_1", + "weeks": 40, + "avg_cross_section": 1498.5, + "mean_ic": 0.0082, + "ic_t_stat": 0.58, + "ic_positive_pct": 57.5, + "mean_quintile_spread": 0.0163, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 1935.1, + "avg_eligible_pre_mask": 1702.2, + "mask_binds_pct": 90.0 + }, + "mom_12_1_sector_demeaned": { + "signal": "mom_12_1_sector_demeaned", + "weeks": 36, + "avg_cross_section": 469.4, + "mean_ic": 0.0031, + "ic_t_stat": 0.13, + "ic_positive_pct": 55.6, + "mean_quintile_spread": 0.0009, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 471.5, + "avg_eligible_pre_mask": 469.4, + "mask_binds_pct": 0.0 + }, + "fip_id": { + "signal": "fip_id", + "weeks": 36, + "avg_cross_section": 1498.6, + "mean_ic": -0.0116, + "ic_t_stat": -0.93, + "ic_positive_pct": 52.8, + "mean_quintile_spread": -0.0037, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 1897.3, + "avg_eligible_pre_mask": 1673.1, + "mask_binds_pct": 88.9 + }, + "vol_6m": { + "signal": "vol_6m", + "weeks": 40, + "avg_cross_section": 1498.5, + "mean_ic": -0.0219, + "ic_t_stat": -0.77, + "ic_positive_pct": 40.0, + "mean_quintile_spread": 0.0381, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 1935.1, + "avg_eligible_pre_mask": 1702.2, + "mask_binds_pct": 90.0 + } + }, + "post_2021": { + "high_52w": { + "signal": "high_52w", + "weeks": 48, + "avg_cross_section": 1500.0, + "mean_ic": 0.0831, + "ic_t_stat": 2.36, + "ic_positive_pct": 68.8, + "mean_quintile_spread": 0.0102, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 3046.7, + "avg_eligible_pre_mask": 2325.3, + "mask_binds_pct": 100.0 + }, + "mom_12_1_sector_resid": { + "signal": "mom_12_1_sector_resid", + "weeks": 48, + "avg_cross_section": 494.5, + "mean_ic": 0.033, + "ic_t_stat": 1.39, + "ic_positive_pct": 60.4, + "mean_quintile_spread": 0.0158, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 495.1, + "avg_eligible_pre_mask": 494.5, + "mask_binds_pct": 0.0 + }, + "mom_6_1": { + "signal": "mom_6_1", + "weeks": 48, + "avg_cross_section": 1500.0, + "mean_ic": 0.0314, + "ic_t_stat": 1.51, + "ic_positive_pct": 58.3, + "mean_quintile_spread": 0.0109, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 3214.4, + "avg_eligible_pre_mask": 2425.9, + "mask_binds_pct": 100.0 + }, + "mom_12_1": { + "signal": "mom_12_1", + "weeks": 48, + "avg_cross_section": 1500.0, + "mean_ic": 0.0279, + "ic_t_stat": 1.14, + "ic_positive_pct": 62.5, + "mean_quintile_spread": 0.0206, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 3045.2, + "avg_eligible_pre_mask": 2324.2, + "mask_binds_pct": 100.0 + }, + "trend_200": { + "signal": "trend_200", + "weeks": 48, + "avg_cross_section": 1500.0, + "mean_ic": 0.0254, + "ic_t_stat": 1.03, + "ic_positive_pct": 60.4, + "mean_quintile_spread": 0.0064, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 3113.5, + "avg_eligible_pre_mask": 2365.0, + "mask_binds_pct": 100.0 + }, + "mom_12_1_sector_demeaned": { + "signal": "mom_12_1_sector_demeaned", + "weeks": 48, + "avg_cross_section": 493.5, + "mean_ic": 0.0071, + "ic_t_stat": 0.3, + "ic_positive_pct": 52.1, + "mean_quintile_spread": 0.0078, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 494.1, + "avg_eligible_pre_mask": 493.5, + "mask_binds_pct": 0.0 + }, + "mom_12_1_resid": { + "signal": "mom_12_1_resid", + "weeks": 48, + "avg_cross_section": 1500.0, + "mean_ic": 0.0067, + "ic_t_stat": 0.29, + "ic_positive_pct": 54.2, + "mean_quintile_spread": 0.0149, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 3045.2, + "avg_eligible_pre_mask": 2324.2, + "mask_binds_pct": 100.0 + }, + "mom_3_1": { + "signal": "mom_3_1", + "weeks": 48, + "avg_cross_section": 1500.0, + "mean_ic": -0.0014, + "ic_t_stat": -0.06, + "ic_positive_pct": 52.1, + "mean_quintile_spread": -0.0028, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 3305.8, + "avg_eligible_pre_mask": 2486.0, + "mask_binds_pct": 100.0 + }, + "reversal_1m": { + "signal": "reversal_1m", + "weeks": 48, + "avg_cross_section": 1500.0, + "mean_ic": -0.013, + "ic_t_stat": -0.69, + "ic_positive_pct": 41.7, + "mean_quintile_spread": -0.0099, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 3367.0, + "avg_eligible_pre_mask": 2486.9, + "mask_binds_pct": 100.0 + }, + "fip_id": { + "signal": "fip_id", + "weeks": 48, + "avg_cross_section": 1500.0, + "mean_ic": -0.019, + "ic_t_stat": -1.56, + "ic_positive_pct": 41.7, + "mean_quintile_spread": -0.015, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 3045.2, + "avg_eligible_pre_mask": 2324.2, + "mask_binds_pct": 100.0 + }, + "vol_6m": { + "signal": "vol_6m", + "weeks": 48, + "avg_cross_section": 1500.0, + "mean_ic": -0.0943, + "ic_t_stat": -2.41, + "ic_positive_pct": 31.2, + "mean_quintile_spread": -0.0031, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 3214.4, + "avg_eligible_pre_mask": 2425.9, + "mask_binds_pct": 100.0 + } + } + }, + "identical_subset_sector_cs": { + "mom_12_1_sector_resid": { + "signal": "mom_12_1_sector_resid", + "weeks": 83, + "avg_cross_section": 480.0, + "mean_ic": 0.0268, + "ic_t_stat": 1.69, + "ic_positive_pct": 60.2, + "mean_quintile_spread": 0.0126, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 481.2, + "avg_eligible_pre_mask": 480.0, + "mask_binds_pct": 0.0 + }, + "mom_12_1_resid": { + "signal": "mom_12_1_resid", + "weeks": 83, + "avg_cross_section": 480.0, + "mean_ic": 0.0251, + "ic_t_stat": 1.3, + "ic_positive_pct": 57.8, + "mean_quintile_spread": 0.011, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 481.2, + "avg_eligible_pre_mask": 480.0, + "mask_binds_pct": 0.0 + }, + "mom_12_1": { + "signal": "mom_12_1", + "weeks": 83, + "avg_cross_section": 480.0, + "mean_ic": 0.0192, + "ic_t_stat": 0.92, + "ic_positive_pct": 56.6, + "mean_quintile_spread": 0.0099, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 481.2, + "avg_eligible_pre_mask": 480.0, + "mask_binds_pct": 0.0 + }, + "mom_12_1_sector_demeaned": { + "signal": "mom_12_1_sector_demeaned", + "weeks": 83, + "avg_cross_section": 479.0, + "mean_ic": 0.0063, + "ic_t_stat": 0.39, + "ic_positive_pct": 55.4, + "mean_quintile_spread": 0.0048, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 480.2, + "avg_eligible_pre_mask": 479.0, + "mask_binds_pct": 0.0 + } + }, + "mask_diagnostics": { + "reference_signal": "vol_6m", + "avg_cross_section": 1499.3, + "avg_raw_pool": 2641.3, + "avg_eligible_pre_mask": 2098.8, + "mask_binds_pct": 95.5, + "weeks": 88 + }, + "sector_map_size": 505, + "sector_etfs_loaded": [ + "XLB", + "XLC", + "XLE", + "XLF", + "XLI", + "XLK", + "XLP", + "XLRE", + "XLU", + "XLV", + "XLY" + ], + "spy_bars": 2649 + }, + "grade": { + "verdict": "FAIL", + "reason": "failed one or more pre-registered checks (see checks)", + "checks": { + "sector_row": { + "signal": "mom_12_1_sector_resid", + "weeks": 83, + "avg_cross_section": 480.0, + "mean_ic": 0.0268, + "ic_t_stat": 1.69, + "ic_positive_pct": 60.2, + "mean_quintile_spread": 0.0126, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 481.2, + "avg_eligible_pre_mask": 480.0, + "mask_binds_pct": 0.0 + }, + "resid_row_for_t": { + "signal": "mom_12_1_resid", + "weeks": 83, + "avg_cross_section": 480.0, + "mean_ic": 0.0251, + "ic_t_stat": 1.3, + "ic_positive_pct": 57.8, + "mean_quintile_spread": 0.011, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 481.2, + "avg_eligible_pre_mask": 480.0, + "mask_binds_pct": 0.0 + }, + "resid_t_source": "identical_subset", + "pre_2021": { + "signal": "mom_12_1_sector_resid", + "weeks": 36, + "avg_cross_section": 460.7, + "mean_ic": 0.0149, + "ic_t_stat": 0.64, + "ic_positive_pct": 58.3, + "mean_quintile_spread": 0.0063, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 462.8, + "avg_eligible_pre_mask": 460.7, + "mask_binds_pct": 0.0 + }, + "post_2021": { + "signal": "mom_12_1_sector_resid", + "weeks": 48, + "avg_cross_section": 494.5, + "mean_ic": 0.033, + "ic_t_stat": 1.39, + "ic_positive_pct": 60.4, + "mean_quintile_spread": 0.0158, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 495.1, + "avg_eligible_pre_mask": 494.5, + "mask_binds_pct": 0.0 + }, + "abs_mean_ic_ge_0_03": false, + "sign_positive": true, + "reliable": true, + "weeks_ge_50": true, + "weeks": 83, + "t_ge_resid_same_cs": true, + "sector_t": 1.69, + "resid_t": 1.3, + "era_both_present": true, + "era_sign_consistent_positive": true, + "pre_ic": 0.0149, + "post_ic": 0.033, + "avg_cross_section": 480.0 + }, + "headline": "Task 1 CLOSED \u2014 sector residual dead on deep evidence." + }, + "pending_human": true, + "note": "Nothing merged into production. Thread ends at PASS/FAIL." +} diff --git a/reports/sector-resid-deep-20260719-113319.md b/reports/sector-resid-deep-20260719-113319.md new file mode 100644 index 0000000..ceae7fe --- /dev/null +++ b/reports/sector-resid-deep-20260719-113319.md @@ -0,0 +1,341 @@ +# Sector-residual deep test (masked, repaired snapshot) + +Generated: `2026-07-19T11:33:19.102779` + +> **SURVIVORSHIP BIAS: today's constituents backfilled. Relative IC only — not levels.** + +## Pre-registered grade (mechanical) + +**Verdict: FAIL** + +Task 1 CLOSED — sector residual dead on deep evidence. + +Reason: failed one or more pre-registered checks (see checks) + +```json +{ + "sector_row": { + "signal": "mom_12_1_sector_resid", + "weeks": 83, + "avg_cross_section": 480.0, + "mean_ic": 0.0268, + "ic_t_stat": 1.69, + "ic_positive_pct": 60.2, + "mean_quintile_spread": 0.0126, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 481.2, + "avg_eligible_pre_mask": 480.0, + "mask_binds_pct": 0.0 + }, + "resid_row_for_t": { + "signal": "mom_12_1_resid", + "weeks": 83, + "avg_cross_section": 480.0, + "mean_ic": 0.0251, + "ic_t_stat": 1.3, + "ic_positive_pct": 57.8, + "mean_quintile_spread": 0.011, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 481.2, + "avg_eligible_pre_mask": 480.0, + "mask_binds_pct": 0.0 + }, + "resid_t_source": "identical_subset", + "pre_2021": { + "signal": "mom_12_1_sector_resid", + "weeks": 36, + "avg_cross_section": 460.7, + "mean_ic": 0.0149, + "ic_t_stat": 0.64, + "ic_positive_pct": 58.3, + "mean_quintile_spread": 0.0063, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 462.8, + "avg_eligible_pre_mask": 460.7, + "mask_binds_pct": 0.0 + }, + "post_2021": { + "signal": "mom_12_1_sector_resid", + "weeks": 48, + "avg_cross_section": 494.5, + "mean_ic": 0.033, + "ic_t_stat": 1.39, + "ic_positive_pct": 60.4, + "mean_quintile_spread": 0.0158, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 495.1, + "avg_eligible_pre_mask": 494.5, + "mask_binds_pct": 0.0 + }, + "abs_mean_ic_ge_0_03": false, + "sign_positive": true, + "reliable": true, + "weeks_ge_50": true, + "weeks": 83, + "t_ge_resid_same_cs": true, + "sector_t": 1.69, + "resid_t": 1.3, + "era_both_present": true, + "era_sign_consistent_positive": true, + "pre_ic": 0.0149, + "post_ic": 0.033, + "avg_cross_section": 480.0 +} +``` + +## Step-1 sanity + +```json +{ + "skipped": true, + "sanity": { + "passed": true, + "megacap": { + "AAPL": { + "symbol": "AAPL", + "bars": 2649, + "min_date": "2016-01-04", + "max_date": "2026-07-17" + }, + "MSFT": { + "symbol": "MSFT", + "bars": 2649, + "min_date": "2016-01-04", + "max_date": "2026-07-17" + }, + "JPM": { + "symbol": "JPM", + "bars": 2649, + "min_date": "2016-01-04", + "max_date": "2026-07-17" + }, + "XOM": { + "symbol": "XOM", + "bars": 2649, + "min_date": "2016-01-04", + "max_date": "2026-07-17" + }, + "JNJ": { + "symbol": "JNJ", + "bars": 2649, + "min_date": "2016-01-04", + "max_date": "2026-07-17" + } + }, + "megacap_ok": true, + "megacap_reasons": [], + "feed_floor": "2016-01-04", + "spy_benchmark": { + "n": 2649, + "min": "2016-01-04", + "max": "2026-07-17" + }, + "old_shallow_floor": "2020-01-01", + "sector_etfs": { + "XLB": { + "n": 2649, + "min": "2016-01-04", + "max": "2026-07-17" + }, + "XLC": { + "n": 2030, + "min": "2018-06-19", + "max": "2026-07-17" + }, + "XLE": { + "n": 2649, + "min": "2016-01-04", + "max": "2026-07-17" + }, + "XLF": { + "n": 2649, + "min": "2016-01-04", + "max": "2026-07-17" + }, + "XLI": { + "n": 2649, + "min": "2016-01-04", + "max": "2026-07-17" + }, + "XLK": { + "n": 2649, + "min": "2016-01-04", + "max": "2026-07-17" + }, + "XLP": { + "n": 2649, + "min": "2016-01-04", + "max": "2026-07-17" + }, + "XLRE": { + "n": 2649, + "min": "2016-01-04", + "max": "2026-07-17" + }, + "XLU": { + "n": 2649, + "min": "2016-01-04", + "max": "2026-07-17" + }, + "XLV": { + "n": 2649, + "min": "2016-01-04", + "max": "2026-07-17" + }, + "XLY": { + "n": 2649, + "min": "2016-01-04", + "max": "2026-07-17" + } + }, + "sector_etfs_deep_count": 11, + "sector_etfs_ok": true, + "sector_etf_reasons": [], + "still_shallow_count": 2882, + "still_shallow_sample": [ + "AACB", + "AACBR", + "AACBU", + "AACI", + "AACIU", + "AACIW", + "AACO", + "AACOU", + "AACOW", + "AACP", + "AACPR", + "AACPU", + "AACPW", + "AAPG", + "AARD", + "ABAT", + "ABCL", + "ABLV", + "ABLVW", + "ABNB" + ], + "still_shallow_note": "Remaining 'shallow' names are mostly post-2017 IPOs/listings \u2014 expected, not a two-tier defect.", + "xlc_note": "XLC lists mid-2018 \u2192 Communication Services residual coverage from ~mid-2019.", + "feed_note": "Empirical Alpaca floor observed via SPY: 2016-01-04 (n=2649). Calendar history_days=5000 is a request cap, not a guarantee \u2014 sanity grades against the feed floor, not 5000 calendar days.", + "target_history_days": 5000 + } +} +``` + +## Mask diagnostics + +```json +{ + "reference_signal": "vol_6m", + "avg_cross_section": 1499.3, + "avg_raw_pool": 2641.3, + "avg_eligible_pre_mask": 2098.8, + "mask_binds_pct": 95.5, + "weeks": 88 +} +``` + +## Signal table (rows only — no narrative for non-sector signals) + +| signal | mean_ic | t | weeks | avg_N | reliable | +|---|---:|---:|---:|---:|---| +| fip_id | -0.0184 | -2.11 | 83 | 1499.4 | True | +| high_52w | 0.0761 | 4.46 | 84 | 1499.2 | True | +| mom_12_1 | 0.0355 | 2.41 | 83 | 1499.4 | True | +| mom_12_1_resid | 0.0148 | 1.02 | 83 | 1499.4 | True | +| mom_12_1_sector_demeaned | 0.0076 | 0.46 | 83 | 483.2 | True | +| mom_12_1_sector_resid | 0.0268 | 1.69 | 83 | 480.0 | True | +| mom_3_1 | 0.0256 | 2.24 | 90 | 1498.6 | True | +| mom_6_1 | 0.0101 | 0.91 | 88 | 1499.3 | True | +| reversal_1m | 0.0156 | 1.37 | 89 | 1499.0 | True | +| trend_200 | 0.0371 | 2.63 | 85 | 1499.6 | True | +| vol_6m | -0.0704 | -3.14 | 88 | 1499.3 | True | + +### Era split — mom_12_1_sector_resid only (for grade) + +| era | IC | t | weeks | N | +|---|---:|---:|---:|---:| +| pre_2021 | 0.0149 | 0.64 | 36 | 460.7 | +| post_2021 | 0.033 | 1.39 | 48 | 494.5 | + +### Identical-subset baselines (sector CS) + +```json +{ + "mom_12_1_sector_resid": { + "signal": "mom_12_1_sector_resid", + "weeks": 83, + "avg_cross_section": 480.0, + "mean_ic": 0.0268, + "ic_t_stat": 1.69, + "ic_positive_pct": 60.2, + "mean_quintile_spread": 0.0126, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 481.2, + "avg_eligible_pre_mask": 480.0, + "mask_binds_pct": 0.0 + }, + "mom_12_1_resid": { + "signal": "mom_12_1_resid", + "weeks": 83, + "avg_cross_section": 480.0, + "mean_ic": 0.0251, + "ic_t_stat": 1.3, + "ic_positive_pct": 57.8, + "mean_quintile_spread": 0.011, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 481.2, + "avg_eligible_pre_mask": 480.0, + "mask_binds_pct": 0.0 + }, + "mom_12_1": { + "signal": "mom_12_1", + "weeks": 83, + "avg_cross_section": 480.0, + "mean_ic": 0.0192, + "ic_t_stat": 0.92, + "ic_positive_pct": 56.6, + "mean_quintile_spread": 0.0099, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 481.2, + "avg_eligible_pre_mask": 480.0, + "mask_binds_pct": 0.0 + }, + "mom_12_1_sector_demeaned": { + "signal": "mom_12_1_sector_demeaned", + "weeks": 83, + "avg_cross_section": 479.0, + "mean_ic": 0.0063, + "ic_t_stat": 0.39, + "ic_positive_pct": 55.4, + "mean_quintile_spread": 0.0048, + "reliable": true, + "liquid_breadth_top_n": 1500, + "liquid_min_price": 5.0, + "avg_raw_pool": 480.2, + "avg_eligible_pre_mask": 479.0, + "mask_binds_pct": 0.0 + } +} +``` + +## Status + +PENDING_HUMAN beyond the mechanical PASS/FAIL above. Nothing merged into production docs or prod code. + +JSON: `reports/sector-resid-deep-20260719-113319.json` +