בס״ד

MIS v2 — Tab-Coverage Self-Test (do I actually have every formula?)

docs/MIS_V2_TAB_COVERAGE.md · last changed (pre-VM history) · rendered from GitHub master

MIS v2 — Tab-Coverage Self-Test (do I actually have every formula?)

Sam's ask: before we build (even 2 tickers), prove I know every formula in every column of every important tab — so the months of work you put into the sheet aren't lost.
Honest answer: I have every formula for the tabs the BUILDER code creates (Code.js + the v11 scripts). I do NOT yet have the formulas for the hand-built tabs that evolved only inside the live sheet — that's a real gap, graded RED below. The fix is a one-time formula dump (bottom).
Source: MIS/MIS_v7.1_audit_sheet_summary.csv (the live sheet = 59 tabs, with per-tab formula counts).

Grading

Tab Formulas Grade Where / note
Momentum Engine 10,304 Code.js:220 buildMomentumEngine — full 60-col chain captured
Tickers 2,932 Code.js:122 buildTickers
Catalyst Engine 1,007 Code.js:178 (multiplier)
Sector Map 90 Code.js:384
Daily Snapshot 7 Code.js:423
Reference Rules 2 Code.js:93 (mostly values)
Trade Signals 1,097 Code.js:493 (QUERY of Momentum)
Live Guard (resolver) emailDailySnapshot.js:1353 resolver + severity
Entry Pad 67 🟡 Entry_Pad.csv — ACTUAL-vs-IDEAL ticket + checklist (analyzed)
EntryTracker 5,800 🟡 EntryTracker.csv — 48-col journal schema captured
Blind Side Analysis 5,016 🟡 Blind_Side_Analysis.csv — holder-bias re-grade; CONCATENATE of Setup/SACS/ActionFlag, rebuildable
Calc Data 121 🟡 Calc_Data.csv — calc-staging
ME Pre Rebuild 10,912 🟡 ME_Pre_Rebuild_2026-04-30.csv — frozen Momentum w/ formulas (regression fixture)
Snapshot (LIVE) 10,672 🔴 builder makes only 14 cols; live is ~58 cols (BF)~44 cols of formulas I don't have
Execution Playbook 3,683 🔴 hand-built; I have the reader (misReadExecutionPlaybook_) not the tab's own formulas
Trade Planner 635 🔴 live-only formulas
Quick Trade Calc 11 🔴 CANONICAL planner per CLAUDE.md — I have the 13-col schema from memory, NOT the formulas
Exit Tracker 280 🔴 live-only; exit discipline logic
Wash Sale Tracker 57 🔴 live-only (sweep said "stub" but it has 57 formulas — verify)
Integrity Check 23 🔴 live-only data-integrity formulas
Holdings 190 🔴 live-only (the empty-source one; HOLDINGS_CLEAN is data)
Behavior Tracker 5 🔴 minimal; verify
Command Center / Dashboards / Exec Dashboard 411 / 35 / 68 🟡 static-value extracts exist; formulas live-only
Setup Engine · Playbook V2 17 · 36 ✅/orphan builder/orphan per sweep
Hist Momentum (5,299 rows) · Hist Daily/Playbook/Sector/Exec · Run Log (1,461) · Report Snapshots · Self Grade · VIX histories · News Catalyst · Holdings Clean · Schwab Positions · Macro Context · Trade Log · Market Calendar · Diagnostics 0 DATA — migrate the data (esp. Hist Momentum = backtest substrate); no formulas to lose

✅ GAPS CLOSED — 2026-05-27 (pulled the formulas from the local xlsx, no paste-run needed)

A local export (MIS/working-copies/MIS_v7.1_gsheet_forclaudeedit.xlsx) carries the formulas (xlsx stores formula text). Parsed with openpyxl → every 🔴 gap-tab formula extracted to MIS/v2/MIS_V1_FORMULA_ARCHIVE.md (full archive, local). All RED gaps are now ✅:
- Snapshot (58 cols) = a clean projection of Momentum_Engine + the refined sizing block (J-S): ATR14 = Price×Vol30D% · stops 1/1.3/2× · Risk% = (Price−Stop1.3)/Price · Target% = Risk%×2.5 · Shares = ROUNDDOWN(Portfolio_Start×Risk_Per_Trade / (Price×Risk%)) · R:R = Target%/Risk%. Snapshot col AS = FinalState (the value every other surface VLOOKUPs).
- execution_playbook = decision surface; per row reads Snapshot → EntrySignal = IFS(FinalState ADD→"BUY ADD", STARTER→"BUY STARTER", WATCH→…) + Stop@1.3xATR/Risk%/Target%/R:R/Shares/SACS/Flow/Setup/ActionVerdict/RejectCode/Reason. Header row carries live VIX + Regime (IFS vs Reference_Rules bands).
- Trade_Planner = account-aware position log (Date·Account·Ticker·Side·Entry·Stop·Target·Shares·LivePrice·Cost·MktVal·UnrealPnL·Stop_Suggested=Live×0.94·Target_Suggested=Live×1.1·Action·MIS_FinalState=VLOOKUP(Snapshot col 45)). Accounts e.g. "Invest n Save (Z29720600)".
- Quick_Trade_Calc (canonical) = 5-input sizer: type Ticker/Entry/Stop/Target/$Risk → Live(GF), Risk%, Reward%, R:R, Shares=ROUNDDOWN($Risk/(Entry−Stop)), Position$, MIS_State, Verdict (R:R≥2.5 trade · 1.5-2.5 marginal · <1.5 skip).
- Exit_Tracker = pulls open positions from Trade_Planner → Current(GF)/P&L%/Stop/Target/Stop_Distance/Target_Distance/Auto_Trim/Stop_Hit/MIS_State/Action.
- Holdings = account-filterable UNIQUE(FILTER(Trade_Planner)) view.
- Integrity_Check = data-health guard (Include=Y count, blank sectors, ME valid prices, ME errors, Sector_Map populated, Weight_* ≥12).
- Behavior_Tracker = daily self-grade journal (FollowedPlan·Discipline_1to5·FOMO_Trades·Stop_Hits·Lessons + rolling-30 averages) → this IS the behavioral-guardrail layer, already designed; revive it.

🎯 The big find: the REAL weighted Composite (Phase-0 had the stale builder version)

Live Momentum_Engine Composite (AG) = a weighted sum driven by Reference_Rules dials (rows 10-24, which Phase-0 missed): SetupWeight (LeanIn 15 / Breakout 12 / MomentumTrim −5 / ReversalWatch 8 / HoldWait −3) + ContrarianWatch 6 + TrendUp ±8 + Above30D ±6 + Compression 4 + Accumulating ±7 − (V × Weight_VolPenalty 40) + MacroBias ±4 + EventImpact×3 + ((FlowStrength−50)/50)×Weight_Flow 12. The −(V×40) VolPenalty term is the real grade-collapse driver (dominates, craters Composite) → locked fix VolPenalty 40→15. FlowStrength (AD) is already richer than the builder's 76-peg (z-clamped ±8 + Above30D ±8 + Accumulating/Rotating/Distributing tiers + Accel±8 + HighVol−8). v2 uses THIS weighted config with the dials in Reference_Rules — not the stale Flow×0.6+Event×3 builder formula.

(Belt-and-suspenders: a dumpAllTabFormulas() paste-run on the live sheet would capture all 59 tabs at once if we ever want the exhaustive cell-level archive — but the gap tabs are now captured.)

Tab-coverage self-test · 2026-05-27 · Claude Code. Pairs with MIS_V2_LOGIC_CAPTURE.md + MIS_V2_DEFINITION_OF_DONE.md.

Source trail · docs/MIS_V2_TAB_COVERAGE.md @ master · rendered 2026-07-02 7:23 PM EDT by scripts/build-docs.py · the .md in the repo is the truth; this page is the phone-readable view