Audit β Engine Fix Window
π MIS Freeze-Fix Window β EXECUTED: 7/7 fixes + scaled to 237
Generated: Wednesday, July 1 2026 Β· 6:22 PM EDT (NY)
MIS engine-fix session Β· repo zee78900/MIS commit 621c70f Β· workspace b4f7813 Β· deploys @126β@132
Source: live MIS v2 web app (fn=shadowscores / proposedstate / factordiag / health / portrecon) Β· spec docs/MIS_FREEZE_FIX_LIST.md
TL;DR (index)
- All 7 fixes shipped + universe scaled 27β50β183β237 β details in "The 7 fixes" + "Scale run".
- Your frozen 27 held β Durability moved ZERO points at every step; one explained action flip (SPCX, see "What moved").
- Fix-2 evidence gate PASSED β see "SACS distribution": 6 names β₯60 out of 237 = the honest 3% funnel.
- Recon: 898 GREEN (the fix worked); 4 Fidelity accounts await tonight's control refresh β see "Recon".
- Your 3 calls β sign-off, SPCX note, Track-B queue: see "Decisions for Sam".
The 7 fixes (all deployed via clasp, each #15A/#15B-tested, each committed to zee78900/MIS)
| # | Fix | Result / evidence | Deploy |
| 1 | RS_Sector horizon (30D ticker vs 3D sector mean β 30D-vs-30D) | RS no longer inflated; e.g. ABBV RS 0.195β0.004 (it was riding the horizon bug, not beating its sector) | @126 |
| 2 | SACS range compression + MIN(100) clamp | (VSMβ50)Γ1.8+50 clamped 0β100 (the proven v11-bridge recipe). Stdev 17.7β~18β21, 40β60 cram 61%(v11)β4β7% | @126 |
| 3 | Absolute-score conversion (#15A) | Durability/Trend now map through frozen empirical-CDF knot tables (354 knots, archived). Exact reproduction at 27; adding names can no longer move existing scores by construction | @128 |
| 4 | 898 recon gap + one canonical equity | Recon now checks Schwab sum-of-parts vs the broker's own liquidationValue via live API. 898 GREEN 0.0% ($1,376 exact). Canonical equity = recon NET total (portfolioMetrics/briefjson already read it) | @129 |
| 5 | ATR floor | Risk% < 0.5% β Shares = 0 (kills bond/treasury-ETF oversize tickets β the v11 "SGOV 1,746 shares" class) | @130 |
| 6 | Per-name RR (was constant 2.5 = gate could never fire) | Target = 2.5ΓATR runway capped by 13W-high resistance (floored 1ΓATR); RR gate re-anchored at β₯1.5; EXTENDED gate now runs before it so leaders keep the truthful label | @130 |
| 7 | Recoscore wired | The 4:20 PM daily run now chains FSE β reco ledger β whole-universe close append β forward-return scorecard. Seeded live today: 237 closes + today's calls ledgered; 1d/3d/5d returns fill from tomorrow | @131 |
Scale run β 27 β 50 β 183 β 237
| Step | Health | #15A (Dur/Trend on the 27) | #15B (actions on the 27) |
| 50 | GREEN 0/0 50/50 quotes+sectors | Dur: 0 moves. Trend: UNG +10 (explained below) | PASS β no flips |
| 183 | GREEN 0/0 183/183 quotes, 0 formula errors | Dur: 0 moves. Trend: 4 moves >3pts + 7 small jitters, all via Flow's sector z-term | 1 flip: SPCX HOLDβEXIT (explained below) |
| 237 | GREEN 0/0 237/237 quotes, 0 formula errors, 0 blank sectors | Byte-identical to the 183 list β adding 54 more names moved NOTHING. The effect saturates once sectors are populated | Same single SPCX flip, no new movement |
Sector metadata for all 237 came from the original 186-row Tickers tab of your v7.1 workbook + hand-tagged expansion adds β no name defaulted to a junk sector. Finnhub earnings/market-cap metadata backfills at 40/day via the existing 6:20 AM trigger (~5 days to full coverage; earnings-gate coverage on new names lags until then).
SACS distribution @ 237 β the fix-2 evidence gate
| Gate | Target | Measured | |
| 40β60 band | < 35% | 7% (4% at 183) | PASS |
| Stdev | materially > 12.1 | 18.1 | PASS |
| Names clearing 60 | multiple | 6: MRVL 75 Β· AMAT 75 Β· KLAC 72 Β· QDEL 67 Β· MU 65 Β· UVIX 100* | PASS |
SACS @183 (values, 10-pt bins)
0- 9 ################################ 86
10- 19 ######## 23
20- 29 ############### 42
30- 39 ####### 19
40- 49 ## 7
50- 59 0
60- 69 # 2
70- 79 # 3
90-100 # 1
6 of 237 = 2.5% clears the shortlist gate β right on the engine's designed honest funnel ("183 β 3β6 trades", v11's final-gate pass rate was 3.3%). *UVIX is a 2Γ VIX product β it tops the relative-strength math on a vol spike but is the known non-tradeable class; the FSE risk gates handle it downstream.
What moved on your 27, and exactly why (nothing else did)
| Name | Move | Why |
| SPCX (held) | Proposed HOLD β EXIT Β· Trend 35β28 | Its ETF peer group grew 7β~35 names, so its sector z-score (inside FlowStrength, 10% of Trend) got a real ranking. It was already your 3rd-weakest held name (Dur 34). Advisory only β your call whether EXIT or HOLD reads truer. |
| UNG | Trend 48β56/58 (action unchanged WATCH) | At 27 names UNG was the ONLY Energy name β its sector z-score was mathematically undefined (stdev needs β₯2). CVX/XOM/OXY made it real. The calibration module explicitly blesses this class ("WMT added β sector-relative shifts β OK"). |
| SOXX | Legacy STARTER β REJECTED/RISK_FAIL (Proposed still STARTER) | Fix 6: its REAL reward:risk is 1.47 (13W-high overhead truncates the target). The old constant-2.5 RR auto-passed everything. This is the RR gate doing its job for the first time. |
| MRVL/DHI + 7 others | Trend Β±2β4 | Same Flow z-channel + live-quote jitter between captures. Durability: zero movement on all 27 names at all steps. |
Recon β 898 fixed; 4 Fidelity controls awaiting tonight's refresh
| Acct | Status | Note |
| 898 Schwab | GREEN 0.0% | Was permanent RED (gross $0 β the Fidelity-only import dropped it). Now live-API sum-of-parts vs broker liquidationValue: $1,376 exact. |
| 600 / 5692 | RED 4.5% / 6.4% | Control side = your 6/30 4PM screenshots; live prices have moved since. Data freshness, not engine math. |
| 5378 (daughter) | RED 41% | Control still counts the $300 cash from 6/12 AND the SPCX it later bought β the classic double-count. Clears when the control refreshes. |
| 4073 (son) | YELLOW 2.0% | Minor drift. |
The self-updating import (nightly Fidelity Position Summary email β HOLDINGS_META, 6:10 PM trigger) refreshes the control side automatically; the email hadn't landed as of 6:19 PM. I'll re-check tonight. If it doesn't clear, fastest manual path: fresh Fidelity screenshots (600 / 5692 / 4073 / 5378) and I update the controls from broker truth.
Decisions for Sam
- Freeze lift sign-off. The fix-list is applied and evidenced. Per the spec, the freeze is formally lifted when you sign off. Reply LIFT (or ask for anything re-verified first).
- SPCX (held): the engine now reads it EXIT (weak durability + weak trend vs its real peer set). Advisory only β no action taken.
- Track-B queue (next calibration window, NOT done now β two-tracks rule): (a) FlowStrength's z-term leaks sector-relativity into Trend β evidence captured; candidate fix = absolute Flow variant for the Trend blend. (b) The frozen knot maps saturate at the frozen-27's extremes, so the proposed layer over-grades strong new names (ADD 51/237) β the legacy SACSβ₯60 shortlist (6 names) is the calibrated funnel until thresholds are recalibrated against the 237 distribution with the module's acceptance suite.
Guardrails honored
- MIS v2 only, deployed via clasp (@126β@132); ops-api untouched; no master-push deploys.
- Advisory-only unchanged; wash-sale gate untouched (Gate 0); broker-cost-basis truth unchanged.
- Shadow-first: every formula change previewed read-only (fn=fixpreview) before touching the live sheet; #15A/#15B run after every change and every scale step; all captures committed to
MIS/v2/baselines/.