Files
signal-platform/reports/sector-resid-deep-20260719-113319.md
2026-07-19 11:39:43 +02:00

342 lines
8.2 KiB
Markdown

# 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`