בס״ד

MIS Audit — Apr 26 2026 (Session 16 cont. 4)

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

MIS Audit — Apr 26 2026 (Session 16 cont. 4)

Context

Sam asked for a deep-dive on MIS this session. Rather than full code surgery (deferred to next session), I pulled all MIS emails Apr 22–26 and identified the working/broken state.

What MIS is

Email cadence (current, observed Apr 22–26)

Normal day = 3 emails per trading day:
- 📈 Morning Brief ~9:53 AM
- 🚨 Trade Action / Playbook ~2:05 PM
- 🚀 Power Hour ~3:00 PM

Plus weekly:
- 🗓️ Sunday Week-Ahead ~6:05 PM Sunday

Saturday: ZERO emails — already skipping Shabbos correctly (good).

What's working ✅

Item Notes
Email content structure Regime/VIX/breadth/sector — solid template
Saturday skip No fires Shabbos
Sunday Week-Ahead Single fire, useful look-ahead
Trading-day cadence Morning + Trade Action + Power Hour pattern is right
Regime classification NORMAL/HIGH/LOW logic visible
Email format Plaintext + tables, readable on phone

What's broken 🚨

🚨 Duplicate Power Hour fires (worst Apr 23)

Time Subject
12:25 AM 📈 Morning Brief — night fire
02:22 AM ⚡ Power Hour — night fire
02:39 AM ⚡ Power Hour — duplicate, 17 min after previous
9:53 AM Morning Brief ✓ proper
2:06 PM Trade Action ✓
3:04 PM Power Hour ✓
5:28 PM ⚡ Power Hour — extra late fire

7 emails Apr 23 alone, 4 fires for Power Hour. Documented bug from CONTEXT.md ("Morning Brief dedup issue"). Likely cause: trigger duplication — CREATE_DEFAULT_TRIGGERS not calling DELETE_PROJECT_TRIGGERS first, OR stale triggers from old script versions still firing.

🚨 Sector rows empty (P0)

Every email shows:

--- SECTOR POSTURE ---
No sector rows found.

Documented in CONTEXT.md MIS bug list. Sector data source isn't populating. Kills downstream:
- RS vs sector
- Sector Z-score
- Outlier flag
- Contrarian flag

🚨 VIX trajectory frozen

Every email shows the same VIX → Flat: 09:55: reading regardless of when fires. Script caches morning read instead of refreshing on later runs.

🚨 Outliers section empty

Real moves (e.g., AMD +6%, ASML -4%, SCHW -6% intraday) not surfacing. Threshold or sort logic broken.

🚨 PYPL news → position mapping gap

Per CONTEXT.md: Burry initiating PYPL at $49 surfaced as "Ticker Warning" instead of "bullish institutional entry at your cost basis." News-to-holdings mapping broken.

Fix priority for next MIS session

Same shape as today's BOS deep dive:

  1. Trigger duplicationclasp pull MIS, find the trigger setup, fix dedup. ~60 min
  2. Sector rows — find where sector data should come from, restore flow. ~90 min (P0 blocking)
  3. VIX trajectory caching — fix to refresh per run. ~30 min
  4. Outliers logic — audit thresholds + sort. ~45 min
  5. News → position connector — if you hold X and news on X hits, flag it explicitly. ~60 min

Estimated next-session effort: 1 focused session, ~4 hours. Same playbook as today's BOS work.

What you can do RIGHT NOW (no code changes)

Path A/B/C decision still pending

Per 19dc10244b65ccc3 (Session 15 Apr 24 MIS Proposal):
- Path A — Polish v10.1 (recommended in original proposal — preserves 2,800 LOC of working logic)
- Path B — Fresh install from current code
- Path C — Pivot to TradingView + thin automation

Sam hasn't decided yet. Defer to next MIS session.

Sources

Source trail · docs/MIS_AUDIT_2026-04-26.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