What it's doing well: the engine fires reliably 3×/day, the FSE classification (ADD/STARTER/WATCH/REJECTED), the SACS scores, the pre-computed Stop/Target/R:R brackets, and the 7-day follow-up tracker that grades its own past calls are genuinely valuable and genuinely yours.
The core problem you're sensing is real: it's a rear-view mirror. ~80% of every email is "what already happened today" on 15-minute-delayed Google Finance, and the morning brief fires at 9:47 AM — 17 minutes after the open. By the time you read it, the overnight gap and the open already happened. There is zero overnight / pre-market / futures / macro-calendar input. That's exactly the quarterback-vs-forward gap.
And it has correctness bugs that erode trust: ORCL is marked "OK" while down −24% (and flagged EXIT two lines later), the macro calendar says "no major events in 21 days" while the same email flags NVDA earnings, Bitcoin's change is frozen at +0.00%, holdings are labeled "live" over 6–12-day-stale broker data, and the 2:05/3:00 emails are ~85–90% identical re-renders with no "what changed."
The fix (§5): a pre-open overnight pass (futures + pre-market movers + today's macro calendar + overnight news) that runs before the brief and folds a "what to watch today" thesis into it — turning the 9:47 AM rear-view into a 7 AM forward view.
| Fires | Role | Reality | |
|---|---|---|---|
| Morning Brief | ~9:47 AM wkdy | The day-ahead read | 17 min AFTER open on 15-min-delayed data → ~9:32 prices. Not a pre-open brief. |
| Trade Action / Playbook | 2:05 PM wkdy | Mid-day actionables | ~85% dupe of 3 PM |
| Power Hour | 3:00 PM wkdy | Close recap | full re-render, no diff |
| Sunday Week-Ahead | Sun 6 PM | The forward one | Best forward intent, but runs on Fri-close prices + same stale calendar. |
Regime printed NORMAL / Factor 1.00 on all 10 days (VIX drifted 18.4→16.7). The regime layer hasn't differentiated anything in 10 sessions — either the market genuinely stayed calm, or the regime bands are too wide to ever leave NORMAL. Worth a sanity check against the project_mis_cashflow_thesis −20 hard-stop / bucket logic.
Stop / Tgt / R:R 2.50 / N shares. That's forward-actionable and directly feeds your Quick Trade Calc discipline.ORCL 🚨 EXIT, ASML ⚠ REDUCE (taking profit at +24%), SCHZ ⚡ NEAR TARGET. The exit logic exists and fires.These are bugs, contradictions, or stale/placeholder values pulled verbatim from the emails. Fixing them is the MIS "move-forward" punch list (§6).
| # | Issue | Evidence (verbatim) |
|---|---|---|
| 1 | "OK" on a −24% position — OPEN RISK rubber-stamps OK while FSE says EXIT, in the same email. The "OK" looks hardcoded (every holding shows OK). | ORCL ... P&L -24.22% | OK vs ORCL 🚨 EXIT (deep loss; close / tax-loss harvest) |
| 2 | Macro calendar is stale/empty — says no events while its own earnings module flags NVDA + 4 same-day reporters. | CALENDAR OVERLAY: No major events in next 21 days (all 24 emails) vs NVDA [MAG7] 2026-05-27 — size down ahead |
| 3 | "live" holdings over stale broker data | --- 💼 YOUR HOLDINGS (live) --- while Schwab: 12d stale · Fidelity: no sync timestamp |
| 4 | Bitcoin change frozen at null — price moves, delta never does. | Bitcoin $75,871 (+0.00 / +0.00%) every email |
| 5 | Tape Breadth frozen all day — byte-identical 9:47 AM / 2:19 PM / 3:08 PM despite the ADD list churning and Semis running +2.8%→+4.5%. | 🚀 123 | 🐢 58 | 🔥 59 → "Add on pullbacks." (unchanged x3) |
| 6 | Universe count disagrees with itself within one email. | universe 182 vs 181 tickers across 14 sectors vs 4/189 · 5/189 (DATA HEALTH) |
| 7 | Intraday classification flip-flops — DUOL REJECTED→ADD same day; JNJ ADD (SACS 76.7) → "Momentum Trim, sell into strength" (SACS 58.6) within hours. | DUOL ... now ADD | slipping: check why signal failed |
| 8 | "learning:" is tautological — a hardcoded restatement of the price drop, not an insight. | now REJECTED | learning: downgraded after weakness |
| 9 | Morning brief misfired at 2:28 PM on Wed 5/20 — mislabeled MORNING in header + subject, delivered 2:29 PM. | === MIS ARCHITECT — MORNING · Wed May 20 · 2:28 PM === (this is part of why "nothing's coming in" feels unreliable) |
| 10 | STYLE_MISMATCH fires every day, never resolved — became noise; Power Hour silently drops it with no reason. | Semiconductors leads X% but ADD list has 0 names in that sector |
You said it should be "future-thinking like me, not my normal quarterback." Here's the honest split of an MIS email by volume:
| Mode | Share | Which sections |
|---|---|---|
| Backward (rear-view) | ~80% | Holdings, Open Risk, MAG 7, Macro Pulse, Outliers, Sector Pressure, Bottom Line ("SPY up 0.70%"), Yesterday's Earnings. All "what already happened." |
| Templated-forward | ~15% | Earnings-this-week ("NVDA 5/27 — size down ahead"), compression "candidates," the Stop/Tgt brackets, position verdicts (RIDE/REDUCE/EXIT). |
| Genuinely predictive thesis | ~0% | None. No "here's what overnight set up," no scenario framing, no "if SPY holds the open then X." The one section meant to carry forward macro (CALENDAR OVERLAY) is emitting a stale default. |
The 7-day tracker is quietly screaming: across the sample, most prior ADD calls went DOWN (5/26 Playbook: "26 working | 16 slipping | 26 now blocked/rejected"; 5/20: "10 working | 20 slipping | 45 blocked/rejected"). USO, MU, XOM, CVX, UNG, SLV — ADD'd, then −6 to −13%. The system flags the misses but never adjusts the gates that produced them. That's the difference between quarterbacking (noting the loss) and forward-thinking (changing the next call). This is the single most important thing the engine already knows and isn't acting on.
Your exact ask: "somewhere in between overnight and the information they can get and before the briefing, we can pick it up and incorporate it so it's future-thinking." Here's the mechanism. Today the brief is a snapshot of a sheet at 9:47 AM. The redesign adds a pre-open pass that runs before you wake and writes a forward thesis the brief then leads with.
| Missing forward input | Why it matters | Source path |
|---|---|---|
| Today's macro calendar (FOMC, CPI, PCE, jobs, Fed speakers) | Fixes the broken "no events in 21 days." This is the #1 forward gap. | An econ-calendar feed / scrape into a CALENDAR tab; the brief reads it instead of emitting a default. |
| Pre-market movers in your universe + holdings | The gappers ARE the day's setups; you currently see them 17 min late. | Pre-market quote pull (the same GF/feed, just run at 7 AM) for the 182-ticker universe. |
| Overnight / after-close news (post-close earnings reactions, overseas) | What broke after yesterday's 4 PM that changes today's thesis. | GNews/overnight scan windowed to "since yesterday close." |
| Earnings AMC/BMO reactions | e.g. a name that reported after close — how's it trading pre-market. | Already have the earnings tab; add the pre-market reaction read. |
The capability scan already flagged the schedule skill as under-used. The clean architecture: a scheduled overnight/pre-open Claude Code routine (~6:30 AM) that pulls futures + pre-market + today's macro calendar + overnight news, synthesizes a forward "what to watch today" thesis ("like me"), and writes it into a FORWARD_NOTE cell/tab. The 7 AM MIS brief (or the command-center morning brief) then leads with that note instead of opening on "SPY up 0.70%." Claude does the judgment layer the Apps Script can't; the sheet stays the system of record. This also finally connects MIS to the morning spine instead of leaving it a silo.
| Pri | Fix | Why |
|---|---|---|
| P0 | Kill the "OK" contradiction — OPEN RISK must use the same FSE verdict as POSITION REVIEWS (or delete the duplicate section). | A −24% "OK" destroys trust in every other "OK." |
| P0 | Fix CALENDAR OVERLAY — real macro calendar, or remove the false "no events" line. | It's lying about the one forward thing it claims to cover. |
| P1 | Collapse 2:05 + 3:00 into one, and add a real "what changed since AM" diff (ADD adds/drops, SPY/VIX since open). | ~85–90% redundancy → the delta is the only signal. |
| P1 | The pre-open overnight pass (§5) + move brief earlier. | This is the actual "forward-thinking" build. |
| P1 | Find the 2:28 PM morning misfire trigger — ties into your trigger cleanup. | Reliability; part of "nothing coming in." |
| P2 | Fix BTC null-delta, frozen Tape Breadth, 182/181/189 count, "live" label, tautological "learning:" string. | Data hygiene; each one is a small credibility leak. |
| P2 | Act on the follow-up tracker — if ADD hit-rate < X%, auto-tighten the gate / flag the sector. | Turn self-grading into self-correction (the cash-flow-thesis discipline). |
Sequencing note: this aligns with MIS_FSE_ARCHITECTURE.md (FSE = single source of decision truth — the "OK vs EXIT" contradiction is exactly the "no surface independently classifies" rule being violated) and the mis-daily-report skill's pre-send checklist. The honest-assessment trim ("holdings+macro in the morning only; afternoons show only what changed") is the same P1.