Weekly review · 2026-W31
Week 31, 2026
Wed) -> CHOP, a full round trip inside five sessions. Panel figures from scripts/regime_check.py --range 2026-07-27:2026-07-31 (SPY, data/prices.parquet): Mon 07-27 CHOP ret5 -0.400% / ret10 -1.350% / dd15 -1.470%; Tue 07-28 CHOP -0.990% / -1.460% / -1.820%; Wed 07-29 PULLBACK -2.400% / -3.360% / -3.360% (FOMC); Thu 07-30 CHOP +0.480% / -1.200% / -2.830% (PCE); Fri 07-31 CHOP +1.100% / +0.500% / -1.860%. s1_standdown = FALSE on all five sessions. ret10 finished POSITIVE (+0.500%) for the first time since 2026-07-10, having been -3.360% on Wednesday -- a 3.9pp swing in two sessions. CRASH-GUARD NEAR-MISS WORTH RECORDING: the Friday state (ret5 +1.100%, dd15 -1.860%) sits just inside two of the three stand-down legs -- leg (a2) needs ret5 > 1.5% with dd15 < -2.0%, and both figures are within 0.4pp / 0.14pp of firing. The guard is technically FALSE but this IS the V-rebound shape it exists to catch, which is the binding argument against any new short opened here. VOL STATE: VIX 18.58 -> 18.67 -> 18.21 -> 20.66 -> 17.09 -> 15.99, ending the week -14.0% vs the prior Friday and at the LOWEST close of the whole 07-13..07-31 stretch; VIX3M 19.02 gives a VIX/VIX3M ratio of 0.84 -- steep contango, a fully normalized term structure. Dealer GEX flipped: SPY total_gex +$1.19B, regime POSITIVE, zero-gamma level 746.93 against a 747.06 spot -- SPY closed 0.13 points ABOVE its gamma flip, i.e. knife-edge, having been FULLY_NEGATIVE every session of 2026-W30. QQQ total_gex -$8.2M, effectively zero, also at the flip. DATA-QUALITY FLAG: `uw options-structure gex` labelled QQQ 'FULLY_NEGATIVE' ('All strikes have negative net GEX') while its own per_strike array carries clearly positive strikes (678 +2.3M, 681 +4.6M, 687 +70.2M, 688 +94.1M). The label is self-contradictory; total_gex ~= 0 at the flip is the read used here, not the label. Consistent with the previously-recorded 0DTE QQQ gamma-sign defect. BREADTH DID NOT CONFIRM THE RECOVERY: 64.96% / 60.46% / 31.80% / 57.40% / 45.07% green -- Friday closed SPY +0.72% on only 45.07% breadth, and the two strongest index sessions (Thu/Fri) were the two narrowest relative to their index move.
The week
Catalysts this week
- 2026-07-29FOMC decision -- HAWKISH HOLD. Fed funds held at 3.50-3.75% on a 9-3 vote; all three dissents (Hammack/Cleveland, Kashkari/Minneapolis, Logan/Dallas) were for a HIKE, citing inflation above the 2% target for more than five years. Tier-1.SPY -1.54% (740.86 -> 729.46), QQQ -2.04%, IWM -1.64%, Dow -2.19% (its worst session since April 2025). Breadth collapsed to 31.80% green -- the only sub-40% day of the week. VIX 18.21 -> 20.66 (+13.5%). The regime label flipped CHOP -> PULLBACK on this single session (ret5 -2.400%, ret10 -3.360%). Three dissents FOR A HIKE is the mechanism: the market repriced the risk that the Fed is behind on inflation, not that it is about to ease.
- 2026-07-30Core PCE (June) -- COOLER. +0.1% m/m vs +0.2% expected; +3.3% y/y, in line. Q2 GDP also slowed to 1.5% from 2.1%. Tier-1.FULL REVERSAL OF THE FOMC DAY IN ONE SESSION. SPY +1.68% (729.46 -> 741.69), more than erasing Wednesday's -1.54%; QQQ +3.30%, XLK +5.50%, SMH +6.88%. VIX 20.66 -> 17.09 (-17.3%). Regime flipped back PULLBACK -> CHOP. This is the week's cleanest event-conditioned observation and the FIRST Tier-1 macro reversal datapoint the pre-registration arm has accrued in three weeks (2026-W30 had zero Tier-1 prints).
- 2026-07-29Microsoft + Meta Q2 earnings (after close). MSFT: revenue $90.01B vs $87.62B est, Azure +43% cc vs +40.2% est, FY26 Azure revenue through $100B for the first time. META: EPS $6.18 vs $7.22 est, expenses +55% to $42B against revenue +28%, net income -14% to $15.8B, Q3 revenue guide $61-64B vs $63.15B est.Opposite reactions on the SAME AI-capex question, next session 07-30: MSFT +15.51% (390.54 -> 451.10), META -7.95% (585.61 -> 539.03). The market did not reject AI capex this week -- it rejected capex WITHOUT the revenue line to carry it. MSFT finished the week +21.75%, META -6.47%. This is the discriminator that was absent in 2026-W30, when GOOGL was sold DESPITE a beat purely on a raised capex guide.
- 2026-07-30Apple + Amazon Q2 earnings (after close). AMZN: revenue and AWS growth both beat. AAPL: fiscal-Q3 cleared the bar, iPhone unit revenue +22%, but Services and China revenue missed.Again opposite, next session 07-31: AMZN +15.32% (235.50 -> 271.58), its largest single-day gain in over a decade; AAPL -7.35% (333.43 -> 308.91). AMZN closed the week +17.00% and drove XLY to +6.11%, the top sector; AAPL closed -7.24%. Four mega-caps reported in 48 hours and split exactly 2-2.
- 2026-07-30/2026-07-31Long-end yields to multi-year highs -- the week's actual macro mechanism, and it moved AFTER the dovish PCE print, not on the FOMC.10y (^TNX) 4.68% -> 4.74% on the week, Friday intraday high 4.75% (highest since January 2025); 30y (^TYX) 5.16% -> 5.28%, a level last seen in 2007. Both closed the week AT their weekly highs, and both rose most on Thu/Fri AFTER the cool inflation print -- a term-premium/supply move, not an inflation-expectations move. Transmission is direct and visible: XLU -4.19% (worst sector), XLRE -1.92%, TLT -1.20%. Last week's defensive leaders were this week's worst losses.
- 2026-07-27/2026-07-31Memory/storage melt-up unwinds -- the continuation of the reversal 2026-W30's diary flagged on its final session.MU -10.63%, SNDK -15.43% on the week. SNDK's daily path was -11.02 / -14.25 / -7.32 / +25.99 / -5.09 -- a >25% single-day squeeze inside a >15% down week. MU printed -2.25 / -8.85 / -9.94 / +18.36 / -5.90. 2026-W30's diary recorded the Friday 07-24 reversal (MU -7.0%, SNDK -10.8%) as the week's notable item; it extended for a full week. DIARY ONLY, 0 signal -- recorded because a prior diary observation continued, not because it is tradeable.
Weekly candles
Weekly candles — data table
| Symbol | Open | High | Low | Close | Return |
|---|---|---|---|---|---|
| SPY | 744.91 | 748.895 | 729.1 | 747.03 | +0.28% |
| QQQ | 691.68 | 695.77 | 661.14 | 687.99 | -0.53% |
| IWM | 293.98 | 295.52 | 287.83 | 291.2 | -0.95% |
- Open
- 744.91
- High
- 748.895
- Low
- 729.1
- Close
- 747.03
WEEKLY HAMMER. Lower low (729.10 < prior 735.21) but closed at 90.6% of the weekly range with a body of only 10.7% and a lower wick of 15.81 points -- 8.5x the upper wick (1.87). follow_through = FALSE: this week did NOT confirm the prior two down weeks, it reversed them. Close-to-close (07-24 738.93 -> 07-31 747.03) is +1.10%; the open-to-close w_ret of +0.28% understates the week because SPY gapped up into Monday's open. Reclaimed both the 20-SMA and 50-SMA it lost last week. Third consecutive lower_low nonetheless -- the low is still stepping down even as the close recovers.
- Open
- 691.68
- High
- 695.77
- Low
- 661.14
- Close
- 687.99
WEEKLY HAMMER, the most extreme of the three. Lower low at 661.14 -- a further -3.1% under last week's 682.48 -- then closed at 77.5% of the range on a 10.7% body with a 26.85-point lower wick (6.6x the 4.09 upper wick). Still follow_through = TRUE (open-to-close negative, confirming direction) even as the candle shape flipped bullish: the week both extended the de-rating intraweek AND recovered most of it. Close-to-close +0.55%, breaking a two-week losing run of -3.12% / -2.55%.
- Open
- 293.98
- High
- 295.52
- Low
- 287.83
- Close
- 291.2
NO HAMMER -- the divergence of the week. Fifth consecutive lower_low, follow_through TRUE, but close_pos only 0.438 (mid-range) on a 36.2% body: three times SPY's and QQQ's body fraction. Close-to-close +0.01% -- literally flat (291.17 -> 291.20) while SPY added +1.10%. Small caps made the same lower low and did NOT participate in the recovery. This breaks last week's relative-strength inversion, where IWM had fallen HALF as much as QQQ.
Technicals & directional book
Sizing is removed from every call by policy — see the disclaimer.
Weekly technicals pre-registered · 0 points · not sized
- Weekly hammer on SPY AND QQQ after a lower low -- with IWM refusing to confirmSPY: lower_low TRUE, hammer_or_hanging TRUE, close_pos 0.906, body_frac 0.107, lower wick 15.81 vs upper 1.87 (8.5x). QQQ: lower_low TRUE, hammer_or_hanging TRUE, close_pos 0.775, body_frac 0.107, lower wick 26.85 vs upper 4.09 (6.6x). IWM: lower_low TRUE, hammer_or_hanging FALSE, close_pos 0.438, body_frac 0.362 -- no hammer, mid-range close, and flat on the week (+0.01% close-to-close) against SPY +1.10%.would signal: A weekly hammer following a lower low after two consecutive down weeks is the textbook bullish-reversal candle and WOULD read as a tradeable long tilt into the following week. The IWM non-confirmation WOULD cut against it: a reversal carried by two mega-cap earnings gaps and not ratified by small caps is a narrow reversal, and the breadth series agrees (Friday +0.72% on 45.07% green).
- Reversal-after-catalyst -- Tier-1 MACRO arm (FIRST OBSERVATION IN THREE WEEKS)OBSERVED, and it is a clean full reversal. FOMC Wed 07-29 (hawkish hold, 9-3, three dissents FOR A HIKE) -> SPY -1.54%, breadth 31.80%, VIX +13.5%, regime flipped to PULLBACK. Core PCE Thu 07-30 (+0.1% m/m vs +0.2% est) -> SPY +1.68%, MORE than erasing the FOMC-day loss in the very next session, VIX -17.3%, regime flipped back to CHOP. Net over the two Tier-1 sessions: SPY +0.11%. 2026-W30 accrued nothing to this arm (zero Tier-1 prints); this week accrues one full observation.would signal: A Tier-1 macro move fully reversed by the NEXT Tier-1 print WOULD read as event-driven noise rather than repricing -- i.e. fade the catalyst-day move rather than extend it. Note this is the OPPOSITE outcome to 2026-W30's single-name arm, where the GOOGL/TSLA catalyst move HELD through the following session. The two arms are now on record with opposite results, which is exactly the discrimination this feature exists to test.
- Reversal-after-catalyst -- single-name EARNINGS arm, capex-with-revenue discriminatorFour mega-caps reported in 48 hours and split exactly 2-2, on the SAME AI-capex question that drove all of 2026-W30. Rewarded: MSFT +15.51% next-session (Azure +43% cc, revenue beat), AMZN +15.32% next-session (AWS growth beat). Punished: META -7.95% (expenses +55% vs revenue +28%, net income -14%, soft guide), AAPL -7.35% (Services + China miss). None of the four next-session moves reversed within the week.would signal: That capex is punished only when the revenue line does not carry it WOULD reframe 2026-W30's 'AI-capex repricing' as a narrower 'capex-without-revenue repricing'. It WOULD also argue that catalyst-day earnings gaps HOLD (0-for-4 reversed this week, consistent with 2026-W30's GOOGL/TSLA gaps holding) -- i.e. PEAD-consistent, and a standing argument against fading a held positive-surprise gap. This is already applied as a tail-cap objection in the OI_FADE lane; it is NOT scored here.
- Rates-driven sector inversion -- a full flip of the prior week's leadership on a long-end break10y 4.68% -> 4.74% (Friday intraday 4.75%, highest since Jan-2025); 30y 5.16% -> 5.28% (highest since 2007). Both closed AT their weekly highs and both rose most on Thu/Fri, AFTER the cool PCE print. XLU -4.19% and XLRE -1.92% were the laggards; XLU and XLE had been the prior week's leaders. Rank correlation of sector returns W30 -> W31 is visibly negative: last week's top three are three of this week's bottom five.would signal: A leadership set that fully inverts week-over-week on a long-end break WOULD read as a rates-driven rotation rather than a risk-appetite recovery, and WOULD argue against reading the index-level weekly hammer as a broad risk-on signal. Untested -- this panel has no power for a weekly rank-inversion claim.
- Index calm masking record single-name dispersion (the XLK paradox)SPY +1.10% and XLK -0.30% on the week, while inside them: MSFT +21.75%, AMZN +17.00%, GOOGL +11.38% against AAPL -7.24%, META -6.47%, MU -10.63%, SNDK -15.43%. A ~37pp spread between the best and worst mega-cap. XLK finished DOWN despite its largest holding gaining 21.75%, and traded an intraweek low 5.4% under the prior Friday's close.would signal: Extreme intra-index dispersion inside a small index move WOULD argue that index-level regime labels are carrying less information than usual, and WOULD favour cross-sectional lanes (which score relative excess) over any index-directional read. This is an argument about which lane to trust, not a signal -- and it is NOT allowed to alter any lane's regime_fit this week.
- Dealer gamma flip -- SPY closed 0.13 points above its zero-gamma levelSPY total_gex +$1.19B, regime POSITIVE, zero_gamma_level 746.93 vs spot 747.06. SPY was FULLY_NEGATIVE on every session of 2026-W30. QQQ total_gex -$8.2M -- effectively zero, also sitting at its flip. Both indices closed the week balanced on the gamma boundary.would signal: A cross from short-gamma to long-gamma WOULD read as dealer flow switching from amplifying to dampening moves -- lower realized vol, more mean-reversion, and a mechanical argument for the VIX 15.99 print holding. At 0.13 points above the flip it WOULD equally invert on any gap down, so it signals fragility of state rather than direction. Per CLAUDE.md, dealer GEX/DEX feeds the VOL-STATE ONLY and NEVER a direction; recorded here strictly as vol-state context.
Directional book
No sized calls this week.
Lane status3
NO SCORED SINGLE-NAME -- second consecutive week, and the regime got WORSE for this lane, not better. Regime-fit cut 0.70 -> 0.35 vs 2026-W30: the PULLBACK that supported a short lane lasted exactly one session (Wed 07-29), ret10 finished POSITIVE (+0.500%) for the first time since 07-10, VIX closed at 15.99 (lowest since 07-13, -14.0% on the week), and SPY crossed back above its zero-gamma level into POSITIVE dealer gamma. Ran the full stack on a 10-day build window as-of 07-31 (scripts/oi_build.py --days 10 --top 30): 30 names ranked. Cuts, in order: LIQUIDITY $50M/$5 floor removed CLYM/PLOW/CURB/APAM/SPCU/DIG/QRHC/MEME/BRUN/DRV/CBRG/SLP/ASIX/GBFH (14). PERSISTENCE >=0.85 single-block disqualifier removed DBX 0.882, INFY 1.090, SSNC 1.143, TEX 0.927, YMM 0.985. ETP cut on screener issue_type removed MTUM (ETF), NOWL (ETF), SHAZ (issue_type NULL -- fail-closed). EARNINGS h21 (window 08-01..08-30, trading-day) blocked QGEN 08-05, SOLV 08-05, TPG 08-04, GMED 08-06. Four names reached final adjudication and all four die: (1) AVTR -- by far the strongest mechanical signal in the panel, rel_build 4.082 on a 10d window (2.657 on 5d), net +175,675 on a 43,034 avg-30d base, persistence 0.271 genuinely organic, ADV $172.6M PASS, earnings 11-04 clear of h21, catalyst LIVE with 63.4% of the build accruing ON OR AFTER the 07-29 print (+40,486 / +47,578 / +23,325 on 07-29/30/31 -- the build ACCELERATED through its own catalyst). FUNDAMENTALS VETO SUSTAINED, tested and unmet on both re-admit halves in the 07-30 and 07-31 daily scans; the 07-31-datelined PT-raise item was a lagged republication of the 07-30 actions, not fresh coverage. Nothing over the weekend changes it. (2) HRI -- VETO SUSTAINED and worsening: printed +2.89% on 07-31, so the 'shorting a completed collapse into an active bounce tail' objection is stronger, not weaker. (3) KBR -- RESOLVED_PRE_PRINT via scripts/catalyst_split.py: only 12.5% of the build (+1,656 of +13,298) accrued on or after its 07-30 print; the build DIED at its catalyst. That is spent positioning, not a crowd left to fade. (4) ALLE -- carries the 07-24 fundamentals VETO AND has now failed the lane's own mechanism: last_call_net -945, calls genuinely CLOSING, which is the pre-registered OI_FADE invalidation. Independently note the tail-cap that has now blocked this lane four weeks running: every VETO in the set is the same pattern (a positive-surprise gap that HELD, plus post-print PT raises), and this week's Layer-3 earnings arm went 0-for-4 on catalyst-gap reversals -- the PEAD objection to fading held beats is accumulating evidence, not weakening.
STOOD DOWN FOR NEW STARTERS BY STANDING POLICY (CLAUDE.md invariant #6), and this week the regime independently argues the same way. s1_standdown computes FALSE on all five sessions, but it is a NEAR MISS on Friday and the shape is exactly what the guard exists to catch: ret5 +1.100% against a 1.5% leg-(a2) trigger, dd15 -1.860% against a -2.0% trigger -- both within 0.4pp/0.14pp. This IS an unconfirmed V-rebound off the 07-29 low, unlike 2026-W30 where ret10 -2.12% was past the -2% confirmed-downtrend boundary and the guard was affirmatively inapplicable. Regime-fit accordingly cut 0.60 -> 0.25. Moot under the cap either way: the lane's re-baselined excess is NEGATIVE and got MORE negative this week -- see the regression-gate note below. REGRESSION GATE (scripts/retro_harness.py --all, 78 panel days, run 2026-07-31): MOM_LONG +0.0023 (baseline +0.0018, PASS) - MOM_SHORT -0.0008 (baseline -0.0003, BELOW) - OI_FADE +0.0071 (baseline +0.0070, PASS) - S2 +0.0021 (baseline +0.0006, PASS) - S4 +0.0051 (baseline +0.0044, PASS). MOM_SHORT drifting -0.0003 -> -0.0008 is NOT a regression caused by a change (no lane or threshold was touched this week) -- the panel grew 73 -> 78 days and n 281 -> 317, so it is not like-for-like -- but it is a further deterioration in the one lane already carrying a written negative-excess exception, and it reinforces rather than relaxes the watch-only cap. Not re-baselined here; that is a /calibration-audit and CLAUDE.md decision. CANDIDATES, after full hygiene (pct_52w_range in [0,1], $5/$50M floor, issue_type in Common Stock/ADR, trading-day earnings gate at h21) AND an independent per-name 52-week verification against the Yahoo chart API: BLDR 1.6%, PATK 1.9%, LII 2.2%, ALNY 2.6%, COIN 2.7%, QS 3.1%, MSTR 3.5%, CRH 3.8%, GPI 5.8%, OLN 6.1%, HDB 7.9%. None sized. THREE NAMES CUT ON CORRUPT DATA, NOT ON MERIT -- see the data-integrity note: KLAC, BKNG, CLBK.
BASKET-ONLY, never per-name, and NOT sized. Regime-fit lifted 0.30 -> 0.40: ret10 turned positive (+0.500%) for the first time since 07-10 and the index printed a weekly hammer, which is a better tape for a long-momentum basket than last week's confirmed PULLBACK. It does NOT reach the starter bar. Two independent reasons: (1) the lane's prior is +0.18% mean with a -1.06% MEDIAN, tail-driven -- the harness re-read this week gives +0.0023 mean / -0.0091 median / hit 0.47 vs base 0.60 (hit-base -0.130, n=483), i.e. the basket loses more often than the benchmark and only wins on the tail, which is exactly why it never sizes per-name; (2) +0.18-0.23% sits under the +0.3% starter threshold. Standing re-entry condition unchanged and still unmet: ret10 back above +1% for >=2 consecutive weeks (currently +0.500%, one week). COMPOSITION -- the diary item worth recording, and it has ROTATED AGAIN. Seven names pass full hygiene at h21 with an independent Yahoo 52-week verification on every one: ILMN 99.3%, ING 99.0%, BMY 98.5%, WBS 98.1%, BPOP 98.0%, CAKE 96.8%, ENVA 96.4%. That is healthcare (ILMN, BMY) plus financials (ING, WBS, BPOP, ENVA) plus one restaurant -- and it is a DIFFERENT set from 2026-W30's industrials/insurance/rails cohort (OII, TRV, FAF, PKG, WAB, CSX, RTX, SPG). Two weeks running, the near-52w-high cohort contains essentially ZERO mega-cap technology -- and it still does not, in the very week MSFT gained +21.75% and AMZN +17.00%, because both remain well below their own 52-week highs. The cohort keeps surviving because it is not what is being repriced.
Lane glossary (3)
- OI_FADE
- OI-flow fade — fades persistent multi-day net call-OI building; heavy call-OI build precedes underperformance. The most robust lane measured (short, h10).
- MOM_SHORT
- Momentum, short leg — near-52w-low relative weakness. Regime-gated against momentum-crash/squeeze rebounds (h10).
- MOM_LONG
- Momentum, long leg — near-52w-high relative strength. Tail-driven; basket-only, never sized per-name (h10).
Verdict: NO SCORED SETUP. Second consecutive week with an empty calls[]. All three Layer-2 lanes
produced a lane-level disposition and no sized single-name call. Layers 1 and 3 ship as documentation.
Preflight clear (5/5 UW panel groups, truth set through 2026-07-31). Envelope validates against
schemas/weekly_review.schema.json.
1. The Week in Pictures (DIARY — documentation, 0 signal)#
Weekly candles#
| O | H | L | C | w_ret (O→C) | c/c | close_pos | body | structure | |
|---|---|---|---|---|---|---|---|---|---|
| SPY | 744.91 | 748.90 | 729.10 | 747.03 | +0.28% | +1.10% | 0.906 | 0.107 | lower_low, HAMMER, follow_through FALSE |
| QQQ | 691.68 | 695.77 | 661.14 | 687.99 | −0.53% | +0.55% | 0.775 | 0.107 | lower_low, HAMMER, follow_through TRUE |
| IWM | 293.98 | 295.52 | 287.83 | 291.20 | −0.95% | +0.01% | 0.438 | 0.362 | lower_low, no hammer, follow_through TRUE |
SPY and QQQ both printed a textbook weekly hammer — a lower low, a tiny body (10.7% of range on both),
and a close near the top. SPY's lower wick is 8.5× its upper wick; QQQ's is 6.6×, and 26.85 points long.
SPY's follow_through went FALSE — the first week in three that did not confirm the prior week's
direction.
IWM refused to confirm. Same lower low, but a mid-range close (0.438) on a body three times as thick, and flat on the week (291.17 → 291.20, +0.01%) while SPY added +1.10%.
Catalysts, anchored to the reaction#
Unlike 2026-W30 (zero Tier-1 prints), this week carried two, back to back, in opposite directions.
| Day | Event | Reaction (panel-measured) |
|---|---|---|
| Wed 07-29 | FOMC — hawkish hold. 3.50–3.75% held on a 9-3 vote; all three dissents (Hammack, Kashkari, Logan) were for a HIKE | SPY −1.54%, QQQ −2.04%, Dow −2.19% (worst since Apr-2025). Breadth 31.80%. VIX 18.21→20.66. Regime → PULLBACK |
| Thu 07-30 | Core PCE — cooler. +0.1% m/m vs +0.2% est (3.3% y/y in line); Q2 GDP 1.5% from 2.1% | SPY +1.68% — more than erased the FOMC day in one session. QQQ +3.30%, XLK +5.50%, SMH +6.88%. VIX −17.3%. Regime → CHOP |
| Wed 07-29 a/c | MSFT (Azure +43% cc, rev beat) vs META (opex +55% vs rev +28%, NI −14%, soft guide) | Next session: MSFT +15.51%, META −7.95% |
| Thu 07-30 a/c | AMZN (AWS beat) vs AAPL (Services + China miss) | Next session: AMZN +15.32% (biggest day in a decade), AAPL −7.35% |
| Thu–Fri | Long end breaks to multi-year highs | 10y 4.68→4.74% (Fri high 4.75%, highest since Jan-2025); 30y 5.16→5.28% (highest since 2007). Both closed at their weekly highs |
The yield move is the one that matters, and it came after the dovish PCE print — a term-premium move, not an inflation-expectations move.
Regime trajectory — a full round trip in five sessions#
Mon 07-27 CHOP ret5 −0.400% ret10 −1.350% dd15 −1.470% s1=False
Tue 07-28 CHOP ret5 −0.990% ret10 −1.460% dd15 −1.820% s1=False
Wed 07-29 PULLBACK ret5 −2.400% ret10 −3.360% dd15 −3.360% s1=False ← FOMC
Thu 07-30 CHOP ret5 +0.480% ret10 −1.200% dd15 −2.830% s1=False ← PCE
Fri 07-31 CHOP ret5 +1.100% ret10 +0.500% dd15 −1.860% s1=Falseret10 finished positive for the first time since 2026-07-10, a 3.9pp swing off Wednesday.
Crash-guard near-miss, recorded deliberately. s1_standdown is FALSE, but Friday sits just inside two
legs of the trigger: leg (a2) fires at ret5 > 1.5% with dd15 < −2.0%, and the actual state is
+1.100% / −1.860% — within 0.4pp and 0.14pp. This is the unconfirmed-V-rebound shape the guard exists
to catch. Contrast 2026-W30, where ret10 −2.12% was past the −2% confirmed-downtrend boundary and the
guard was affirmatively inapplicable.
Vol state. VIX 18.58 → 18.67 → 18.21 → 20.66 → 17.09 → 15.99, ending −14.0% on the week and at the
lowest close since 07-13. VIX/VIX3M = 15.99/19.02 = 0.84, steep contango. Dealer gamma flipped: SPY
total_gex +$1.19B, POSITIVE, zero-gamma level 746.93 against a 747.06 spot — SPY closed 0.13
points above its flip, after being FULLY_NEGATIVE every session of last week. QQQ total_gex −$8.2M ≈ zero,
also at the flip.
⚠️ Data-quality flag.
uw options-structure gexlabelled QQQFULLY_NEGATIVE("All strikes have negative net GEX") while its ownper_strikearray carries clearly positive strikes (678 +2.3M, 681 +4.6M, 687 +70.2M, 688 +94.1M). The label contradicts its own payload.total_gex ≈ 0, at the flipis the read used here. Consistent with the previously-recorded 0DTE QQQ gamma-sign defect.
Breadth did not confirm. 64.96 / 60.46 / 31.80 / 57.40 / 45.07% green. Friday closed SPY +0.72% on 45.07% breadth — the two strongest index sessions were the two narrowest relative to their index move.
Sector leadership — a complete inversion of last week#
XLY +6.11% ← AMZN alone XLK −0.30%
XLC +1.82% ← GOOGL +11.38% XLI −1.54%
XLF +1.12% XLB −1.62%
XLP +1.09% XLRE −1.92%
XLV −0.01% SMH −3.68%
XLE −0.12% XLU −4.19% ← worstLast week's top three (XLE +3.36%, XLU +2.48%, XLI +1.81%) are three of this week's bottom five. Last week's worst (XLY −5.22%) is this week's best. The rate proxies were hit precisely as the long end broke.
The XLK paradox: XLK finished −0.30% in a week its largest holding gained +21.75%. Two enormous mega-cap gains were fully offset by breadth-wide tech damage (SMH −3.68%, MU −10.63%, SNDK −15.43%, AAPL −7.24%, NVDA −2.94%). XLK also traded an intraweek low of 166.46 — 5.4% under the prior Friday close. Verified independently against the Yahoo chart API (175.88 → 175.35).
Notable flow (diary only, 0 signal)#
SPY $70.2B · MU $56.9B (175.5k prints) · QQQ $50.5B · SNDK $35.0B (152.8k) · NVDA $27.1B · AAPL $24.8B · MSFT $22.3B · AMZN $16.8B.
MU and SNDK repeat as the anomaly for a second consecutive week and both got larger (MU $46.2B/144k → $56.9B/175k; SNDK $26.8B/107k → $35.0B/153k). MU printed more dark-pool prints than SPY and QQQ combined for the second week running — while falling −10.63%. SNDK printed 152.8k while falling −15.43%, on a daily path of −11.02 / −14.25 / −7.32 / +25.99 / −5.09.
2. Validated Weekly Setups (SCORED — excess)#
calls[] is empty. No name cleared the full stack in either scored lane.
OI_FADE — NO_NAME_CLEARED, regime_fit 0.70 → 0.35#
The regime moved against this lane. The PULLBACK that supported it lasted exactly one session; ret10
finished positive, VIX closed at 15.99, and SPY crossed back into positive dealer gamma.
30 names ranked on a 10-day build window. Cuts: liquidity ($5 / $50M ADV) removed 14 · persistence
≥0.85 removed DBX 0.882, INFY 1.090, SSNC 1.143, TEX 0.927, YMM 0.985 · ETP (issue_type) removed MTUM,
NOWL, and SHAZ (NULL — fail-closed) · earnings h21 blocked QGEN, SOLV, TPG, GMED.
Four names reached final adjudication; all four die:
- AVTR — by far the strongest mechanical signal in the panel:
rel_build4.082 (10d), net +175,675 on a 43,034 base, persistence 0.271 organic, ADV $172.6M, earnings 11-04 clear, catalyst LIVE with 63.4% of the build accruing on or after the 07-29 print (+40,486 / +47,578 / +23,325 on 07-29/30/31 — it accelerated through its own catalyst). Fundamentals VETO sustained; both re-admit halves tested and unmet on 07-30 and 07-31. The 07-31-datelined PT-raise item was a lagged republication of the 07-30 actions. - HRI — VETO sustained and worsening: printed +2.89% on 07-31, so the "shorting a completed collapse into an active bounce tail" objection is stronger.
- KBR — RESOLVED_PRE_PRINT. Only 12.5% of the build (+1,656 of +13,298) accrued after its 07-30 print; the build died at its catalyst. Spent positioning, not a crowd.
- ALLE — carries the 07-24 VETO and has now failed the lane's own mechanism:
last_call_net−945, calls genuinely closing, the pre-registered OI_FADE invalidation.
Every VETO in this set is the same pattern — a positive-surprise gap that held, plus post-print PT raises. This week's Layer-3 earnings arm went 0-for-4 on catalyst-gap reversals. The PEAD objection to fading held beats is accumulating evidence, not weakening.
MOM_SHORT — STOOD_DOWN, regime_fit 0.60 → 0.25#
Capped watch-only for new starters by CLAUDE.md invariant #6. This week the regime independently agrees: the crash-guard near-miss above is exactly the V-rebound shape a fresh short should not be opened into.
Clean after full hygiene and an independent per-name Yahoo 52-week verification: BLDR 1.6%, PATK 1.9%, LII 2.2%, ALNY 2.6%, COIN 2.7%, QS 3.1%, MSTR 3.5%, CRH 3.8%, GPI 5.8%, OLN 6.1%, HDB 7.9%. None sized.
MOM_LONG — BASKET_WATCH, regime_fit 0.30 → 0.40#
Better tape than last week (ret10 positive, index hammer), still under the bar. Two independent reasons:
the prior is +0.18% mean on a −1.06% median, tail-driven — the fresh harness read gives +0.0023 mean /
−0.0091 median / hit 0.47 vs base 0.60 (hit−base −0.130, n=483), i.e. the basket loses more often
than the benchmark and wins only on the tail; and +0.18–0.23% sits under the +0.3% starter threshold.
Re-entry condition unchanged and unmet: ret10 > +1% for ≥2 consecutive weeks (currently +0.500%, one week).
Composition rotated again — seven names, all Yahoo-verified: ILMN 99.3%, ING 99.0%, BMY 98.5%, WBS 98.1%, BPOP 98.0%, CAKE 96.8%, ENVA 96.4%. Healthcare + financials — a different set from last week's industrials/insurance/rails. Two weeks running the near-52w-high cohort contains essentially zero mega-cap technology, and it still does not in the very week MSFT gained +21.75% and AMZN +17.00% — both remain well below their own 52-week highs.
Regression gate — retro_harness.py --all, 78 panel days#
| Lane | Baseline (4ec89dc, 73d) | Now (78d) | |
|---|---|---|---|
| MOM_LONG | +0.0018 | +0.0023 | PASS |
| MOM_SHORT | −0.0003 | −0.0008 | ⚠️ below |
| OI_FADE | +0.0070 | +0.0071 | PASS |
| S2_dp_revert | +0.0006 | +0.0021 | PASS |
| S4_pcr_fade | +0.0044 | +0.0051 | PASS |
MOM_SHORT drifting −0.0003 → −0.0008 is not a regression caused by a change — no lane or threshold was
touched, and the panel grew 73→78 days (n 281→317), so it is not like-for-like. But it is a further
deterioration in the one lane already carrying a written negative-excess exception, and it reinforces the
watch-only cap. Not re-baselined here; that is a /calibration-audit + CLAUDE.md decision.
3. Weekly Technicals — PRE-REGISTERED (documented, 0 points, NOT sized)#
| Feature | This week | Would signal | Status |
|---|---|---|---|
| Weekly hammer SPY+QQQ after a lower low, IWM refusing | SPY cpos 0.906 / body 0.107 / wick 8.5×; QQQ 0.775 / 0.107 / 6.6×; IWM 0.438 / 0.362, no hammer, flat on the week | Textbook bullish reversal → long tilt. IWM non-confirmation + 45.07% Friday breadth cut hard against it | PRE-REGISTERED, PR-WT |
| Reversal-after-catalyst — Tier-1 MACRO arm (first observation in 3 weeks) | FOMC −1.54% Wed fully reversed by PCE +1.68% Thu; net over both Tier-1 sessions +0.11% | Tier-1 move reversed by the next Tier-1 print → fade the catalyst day. Opposite result to W30's single-name arm, where the gap held | PRE-REGISTERED, PR-WT |
| Reversal-after-catalyst — single-name earnings arm | 4 mega-caps in 48h, split exactly 2-2. MSFT +15.51%, AMZN +15.32% vs META −7.95%, AAPL −7.35%. 0-for-4 reversed | Capex punished only when revenue doesn't carry it — reframes W30's "AI-capex repricing" as capex-without-revenue. PEAD-consistent; already applied as an OI_FADE tail cap | PRE-REGISTERED, PR-WT |
| Rates-driven sector inversion | 10y →4.74%, 30y →5.28%, both closing at weekly highs after the dovish print. XLU −4.19% / XLRE −1.92% worst; last week's top 3 are this week's bottom 5 | Rotation is rates-driven, not risk-appetite → argues against reading the hammer as broad risk-on | PRE-REGISTERED, PR-WT |
| Index calm masking record dispersion (XLK paradox) | SPY +1.10%, XLK −0.30%; ~37pp spread between best and worst mega-cap | Index regime labels carry less information than usual → favour cross-sectional lanes over index-directional reads. Not allowed to alter any regime_fit this week | PRE-REGISTERED, PR-WT |
| Dealer gamma flip | SPY +$1.19B POSITIVE, 0.13 pts above zero-gamma 746.93; QQQ ≈0, also at the flip | Short→long gamma = dampening, lower realized vol. At 0.13 pts it inverts on any gap down → signals fragility of state, never direction (CLAUDE.md: GEX feeds vol-state ONLY) | PRE-REGISTERED, PR-WT |
PR-WT bar: ≥2 years / ≥30 weekly obs per arm / cross-regime sign-stable / BH-surviving at FDR 0.10. This
panel has ~20 weekly observations — no power. /calibration-audit accrues.
4. Carry-forward#
Open position#
PLNT — OI_FADE short, half size, entered 2026-07-20 at 55.20.
| Close 07-31 | 55.91 |
| Gross | −1.29% (adverse — it's a short and the stock is up) |
| Since-entry excess vs SPY | −0.62% (SPY 742.09 → 747.03, +0.67%) |
| Binding exit | 2026-08-03 close (Monday) — ONE session remains |
Computed by hand, since-entry, not read off held_book.py's TODAY-only excess column. Verdict unchanged:
HOLD to the binding h10 exit. Pre-registered leg (b) "first genuinely negative call_net" is not strictly
triggered; the discretionary $59.50 stop is 6.42% away and is live, not vestigial (the vestigial precedent
applies to a position that has run >10% in its favour, and this one is adverse).
🐛 Helper bug found —
scripts/held_book.pysilently dropped this live position.CLOSED = ("CLOSED", "DROPPED", "CUT_CONFIRMED", "COVER", "EXIT")is matched as a substring againstverdict(held_book.py:45). PLNT's verdict isHOLD_TO_BINDING_EXIT— which contains"EXIT"— so the only open position in the book was filtered out as closed and the tool reported "no open positions carried in that file". A live half-size short went invisible to the reconciliation helper. This is the exact failure the script exists to prevent.
🚨 Data integrity — pct_52w_range is wrong inside [0,1], and it only manufactures FALSE SHORTS#
The recorded failure mode covers values falling outside [0,1]. This week found a second, more dangerous
class: values that are in range and still wrong, from a stale, un-split-adjusted w52h in the UW feed.
features p52 |
Yahoo actual | w52h in panel |
Yahoo 52w high | |
|---|---|---|---|---|
| KLAC | 0.0058 (52w low) | 44.4% (mid-range) | 2431.29 | 307.37 |
| BKNG | 0.0076 (52w low) | 52.4% (mid-range) | 5794.99 | 231.80 |
| CLBK | 0.0073 (52w low) | 83.2% — near its 52w HIGH, only −7.9% off | 25.83 | 11.74 |
An inflated w52h blows up the denominator and drags pct_52w_range toward zero, so the corruption can
only push names into the SHORT cohort, never the long one. Consistent with observation: all seven MOM_LONG
survivors verified clean (96.4–99.3%), while three MOM_SHORT names were corrupt. KLAC ($2.5B ADV) and BKNG
($1.2B ADV) were the two largest and most liquid names in the short cohort. CLBK was carried as a
MOM_SHORT candidate in Friday's daily scan while actually sitting 7.9% off its 52-week high — a
sign-inverted candidate. Nothing was sized (the lane is watch-only capped), so no money was at risk.
The screen does not fail-close correctly. w52h/close > 3× flags 25 of 94 (26.6%) post-ETP near-low names
— but most of those are genuine 70–80% drawdowns (TTD −80.3%, MSTR −77.5%, QS −72.6%, all verified real),
and it misses CLBK entirely at 2.39×. The only sound rule is a direct Yahoo 52-week cross-check on every
surfaced MOM_SHORT candidate before it can be scored — cheap, since the lane surfaces <20 names. Applied
that way throughout this review.
Rolling into next week#
- 2026-W30's Layer-2 output was also empty, so there is no prior weekly call to resolve. Its diary observation that the memory melt-up reversed on 07-24 extended for a full week (MU −10.63%, SNDK −15.43%) — recorded as a diary observation that continued, not as a tradeable signal.
- OI_FADE is the lane to watch — it is the only one with a robust prior (+0.0071, hit 0.56 vs 0.41 base, n=979) and it is being blocked by fundamentals vetoes rather than by mechanism failure, four weeks running. AVTR's build accelerating through its catalyst is the strongest mechanical signal seen in weeks; if the analyst tape turns and guidance deteriorates, the re-admit condition is live.
- NFP is the next Tier-1 print and sits inside any h5–h21 window opened now.
- Two open helper defects to fix before they bite something sized: the
held_book.pysubstring match, and the absence of anypct_52w_rangesanity check in the momentum lane.