Ewan Li

Market scan

Jul 29, 2026

Research as of published 26-day delay

schemav2.0calls3
RegimePULLBACK
breadth36.2% green5d-2.40%10d-3.36%Directional tradable
Vol state
  • VOL-AMPLIFYING / SHORT-GAMMA. ^VIX 18.21 -> 20.66 (+13.5%, intraday 17.45-20.88) = a genuine vol-regime-shift day, not noise. GEX FULLY_NEGATIVE on BOTH indices: SPY total_gex -$2.78B (only 7/50 strikes positive), QQQ -$1.18B (only 2/50 positive)
  • zero-gamma level not computable. Dealers short gamma on both -> hedging flows AMPLIFY moves rather than damping them. uw historical vrp SPY reads iv30d 17.3% vs trailing-30d realized 12.2%, vrp +5.11%, regime PREMIUM_SELLING -- but that realized-vol denominator is backward-looking and has NOT yet absorbed today's spike, so it will compress or flip on the next print. Treat the +5.11% as stale-lagging, never as a green light. GEX/DEX conditioned the vol-state ONLY
  • no direction was read off it (invariant: dealer gamma is a 2nd-moment conditioner).

8 event-risk item(s) flagged.

  • MEDIUM1
  • WATCH1
  • DROP1
MEDIUM: 1 of 3WATCH: 1 of 3DROP: 1 of 3
Tier mix — data table
Tier mix: tier and call count
TierCalls
MEDIUM1
WATCH1
DROP1

Directional book

1 call

Sizing is removed from every call by policy — see the disclaimer.

PLNT

MEDIUMShortlaneOI_FADE10d

OI_FADE: heavy persistent multi-day net CALL open-interest build precedes forward underperformance. Held at half into the last 3 sessions of its h10 window on an explicit pre-registered exit rule. The decision tonight is to HONOR that rule rather than override it -- the early-exit valve is a genuinely NEGATIVE call_net print, and a decelerated-but-positive +85 does not cross it. Nothing tonight clears a bar; the decay is a continuation of the very trend the rule was built to catch. Corroborating (evidence quality, NOT a scored gate): dark-pool blocks ran heavily sell-side into recent up days, and the call build carries negative net call premium (calls written/sold, not bought). Class-action filings 07-21 are short-supportive.

Structure
Short equity, half size, unchanged. Delta-one.
Entry / trigger
Already entered 2026-07-20 at $55.20. No add, no trim tonight.
Invalidation
HOLD, not CUT or TRIM. Exit at the EARLIER of: (a) 2026-08-03 close [h10 -- BINDING, admits NO drift, because PLNT reports 2026-08-06, three days after], or (b) the first genuinely NEGATIVE call_net print. Neither triggered tonight: the 07-29 print is call +341 / put +256 = net +85, calls still net-OPENING. Supplementary discretionary stop: close > $59.50, with confirm TIGHTENED from 2-day to 1-day tonight (level unchanged). Rationale for the tightening is arithmetic, not sentiment: with 3 sessions left (07-30, 07-31, 08-03) a 2-day confirm can only complete at the 07-31 close, which exits 08-03 -- the exact date the pre-registered rule already delivers, making the stop DECORATIVE. At 1-day confirm, a close above $59.50 on 07-30 exits 07-31, buying one session of genuine protection. Pulling the LEVEL in (considered: ~$58.50) was REJECTED -- substituting a discretionary exit for a live pre-registered rule with 3 sessions remaining is precisely what invariant #5 guards against; adjusting the confirm window on a discretionary overlay added 07-28 is not a pre-registered-rule change. VIGILANCE INSTRUCTION (not a rule change): a flat or negative print on 07-30 or 07-31 is a same-session exit -- do not wait for confirmation math.
validated excess+0.70% (n=906)regime fit1.00fundamentalsCAUTION
Key risks
  • Short excess since entry is -3.50% (PLNT +1.79% vs SPY -1.70% from 07-20), materially worse than the -1.79% gross. NOTE held_book.py prints 'gross -1.79%' (since entry) beside 'excess -1.99%' (TODAY only) -- different horizons, must not be conflated.
  • Signal quality is degrading materially: persistence_ratio 0.81 (up from 0.668) means 81% of the whole 5-day build is the single 07-28 print (+1,176); oi_rel_build collapsed to 0.025. Tonight's +85 is a sharp deceleration.
  • Stock momentum runs AGAINST the short: ret5 +3.96%, ret10 +7.56%.
  • Soft-invalidation counting ambiguity: 2 of a possible '3rd raise' already landed, both same-day as entry -- one further raise on any future session should be treated as a live re-trigger check.
  • Insider MSPR 3mo average (+33.33) is noise-driven (offsetting +31k/-22k monthly swings), not a clean buying signal.
  • Finnhub leverage_flag 'low' is likely mis-scaled (raw 2.61x D/E read against a percent-units threshold); true leverage is structurally elevated -- negative book equity (Book/sh -6.09), EV $6.84B vs mcap $4.46B. A static feature, not new deterioration.
Gates
regime crashPASS

PASS -- s1_standdown FALSE; regime is PULLBACK/confirmed-downtrend, not one of the mean-reversion regimes that would zero a short. OI_FADE is not the MOM_SHORT lane the crash clause targets in any case. Existing half size already satisfies the out-of-strong-regime discipline; no incremental regime cap.

liquidityPASS

PASS -- scripts/liquidity.py (not hand-multiplied): $56.19, 20d $-ADV $96.9M, clears the $5 price and $50M $-ADV floors.

clusterPASS

PASS -- sole position; HRI dropped on fundamentals so no multi-name cluster exists. DATA GAP: the pairwise HRI/PLNT correlation recompute against data/prices.parquet returned n=0 overlapping rows (same class as the HOG gap flagged 07-28). Moot tonight, but gate 3 will fail SILENTLY the first night two names both clear gate 4 and need a live corr number.

fundamentalsNOTE

CAUTION (unchanged from 07-28, tier_adjustment -1, no movement -- a 'nothing changed' re-check, not a fresh downgrade). Named soft-invalidation ('3rd consecutive post-print PT raise / fresh Buy upgrade') ruled NOT FIRED: only 2 raises exist (Canaccord $80->$82, JPMorgan $60->$62) and BOTH are same-day as entry (07-20), alongside a Deutsche Bank CUT ($61->$55, also 07-20 -- the 07-28 verdict had mis-logged this as 07-22 and recorded only 1 raise). ZERO incremental analyst actions in the 7 sessions since entry: the tape went quiet, not increasingly bullish.

event riskPASS

PASS conditional on honoring the exit. PLNT earnings 2026-08-06 falls AFTER the binding 08-03 exit, so the position does not walk into an unsized-for print -- but only if 08-03 is honored. PCE (07-30 08:30) and AMZN+AAPL (07-30 AMC) fall inside the remaining 3 sessions on a fully-negative-GEX vol-amplifying tape: market-wide gap/whipsaw risk, not a name-specific catalyst, and does not force a further tier cut since the position is already floored at half+CAUTION.

Vol book

9

Non-directional, delta-neutral, net-of-cost — advisory only, 0 directional points.

SPY

vol_0dtebuy premium
Vol state
HIGH / FULLY_NEGATIVE GEX (-$2.78B, 7/50 strikes positive) -- vol-amplifying
Implied move
1.50%
Expected range
1.21%
Net expectancy
0.142

Stand aside STAND ASIDE, size_scalar 0.0. scripts/zerodte_setup.py returns sell_premium=false on its VIX-spiking gate (+2.4 handle move). The +0.142%/day net figure is HISTORICAL (trailing 60d, 0.10% cost charge applied) and is explicitly overridden: the validation sample contains NO vol-shock day, so tonight is plausibly the unsampled left tail itself. Compounding this, the SPY VRP print of +5.11% rests on a trailing-30d realized-vol denominator that has not yet absorbed today's spike and will compress or flip next print. Selling premium into fully-negative gamma on a stale VRP read is the textbook worst short-vol setup.

QQQ

vol_0dtebuy premium
Vol state
HIGH / FULLY_NEGATIVE GEX (-$1.18B, 2/50 strikes positive) + front-end backwardation (0DTE IV 1.89x VIX)
Implied move
2.46%
Expected range
2.02%
Net expectancy
0.269

Stand aside STAND ASIDE, size_scalar 0.0. Same VIX-spike gate fires, plus a second flag for front-end backwardation (event/gap risk) that would have halved size anyway -- moot once zeroed. QQQ is the epicentre tonight (ret5 -6.18% / ret10 -7.80%) with MSFT/META reactions and AMZN/AAPL prints landing directly into an amplifying gamma surface.

AMZN

vol_earningssell premium
Vol state
HIGH_IV, IV percentile 97.3 (z 1.67), front-end ratio 2.11x BACKWARDATION (119.6% @dte2)
Implied move
5.86%

CLEANEST of the stack -- richest VRP (+12.35pp) and highest IV percentile. Short iron fly / wide strangle at 1.1-1.3x the implied move, defined-risk, delta-neutral, standard size. Wings deliberately NOT tight-to-the-move: a pre-print gap on a fully-negative-gamma tape blows through narrow wings. Reports 07-30 AMC. ADVISORY ONLY.

MSFT

vol_earningssell premium
Vol state
HIGH_IV, IV percentile 88.0 (z 1.50), front-end ratio 2.58x BACKWARDATION (114.0% @dte2 vs 44.2% @dte30)
Implied move
5.50%

Rich enough to sell. Short iron fly / wide strangle at 1.1-1.3x implied move, defined-risk, delta-neutral, standard size, wide wings. VRP +10.2pp. Reported 07-29 AMC (reaction 07-30). CAVEAT: the 5.5% implied move is ESTIMATED, back-calculated from the AMZN/AAPL implied-move-to-front-IV ratio (~0.65x IV*sqrt(T)) because uw insights earnings-play did not surface MSFT this session (a tool coverage gap, not evidence of no event). Confirm against a live ATM straddle before execution -- do NOT size mechanically off this figure. ADVISORY ONLY.

FSLR

vol_earningssell premium
Vol state
HIGH_IV, front-end ratio 1.84x BACKWARDATION (150.3% @dte2)
Implied move
7.25%

BEST NON-MEGA RISK-ADJUSTED CANDIDATE on the whole screen -- richest VRP of any name (+44.8pp), clean backwardation, liquid (ADV $358M, liquidity PASS). Short iron fly / wide strangle at 1.1-1.3x implied move, standard-to-slightly-above size within the defined-risk cap. Reports 07-30. ADVISORY ONLY.

META

vol_earningssell premium
Vol state
HIGH_IV, IV percentile 85.3 (z 1.49), front-end ratio 2.26x BACKWARDATION (141.2% @dte2 vs 62.4% @dte30) -- richest headline IV of the four mega-caps
Implied move
6.80%

HALF STANDARD SIZE. Richest front-event IV of the stack but the 30d VRP is nearly FLAT (+2.3pp only, regime FAIR) and META carries the fattest historical post-print tail in the mega-cap set (prior prints -26% / +20%+). Net-of-cost edge is marginal, compressed by the flat 30d VRP despite the rich front IV. Same wide-wing defined-risk structure, half size. Reported 07-29 AMC. Implied move ESTIMATED (same earnings-play coverage gap as MSFT) -- confirm on a live straddle. ADVISORY ONLY.

AAPL

vol_earningsbuy premium
Vol state
HIGH_IV percentile 88.0 (z 1.34) but 30d VRP is NEGATIVE at -3.6pp (iv30d BELOW trailing realized)
Implied move
3.08%

Stand aside SKIP (or token size only). The smallest implied move on the entire board at 3.08%, and the 30d surface is already UNDER-pricing realized vol (VRP -3.6pp). Not rich enough net of a ~0.4-0.6%-of-notional round-trip cost to compensate for tail risk in this vol regime. Reports 07-30 AMC.

MPWR

vol_earningsbuy premium
Vol state
HIGH_IV, VRP +21.6pp, but front-end ratio FLAT at 1.00x
Implied move
15.40%

Stand aside SKIP on a STRUCTURAL disqualifier, not on price: there is no weekly chain, only the Aug-21 monthly (dte23), so no near-dated expiry isolates the print. The monthly bleeds ~3 weeks of non-event theta/vega into the 'crush', diluting the edge away. The 15.4% implied move is likely inflated by that monthly noise. Revisit only if a weekly listing appears.

COHU

vol_earningsbuy premium
Vol state
IV rank 93.4 (screener)
Implied move
18.80%

Stand aside EXCLUDED on the liquidity floor, fail-closed: 20d $-ADV $43.2M < the $50M floor (scripts/liquidity.py). Reports 07-30.

Watch / stood-down

2
TickerTierLaneDirectionInvalidation
HOGWATCHS4_pcr_fadeLongNOT SIZED -- watch only. To move past watch it needs ALL of: (1) a fundamentals-gate verdict of CONFIRM or CAUTION on record, (2) premium-signed flow that corroborates rather than contradicts the contract-count read, and (3) the event stack clearing without a regime break. Even then, never above starter (S4 lane cap).
HRIDROPOI_FADEShortNOT ENTERED -- dropped at gate 4 on fundamentals VETO. Re-admit to the OI_FADE universe only if a forward fundamentals re-check flips the veto: specifically, the analyst tape turning (no further PT raises/upgrades, or fresh cuts) and the guidance-raise read decaying. Conversely, a close back above $163 (the 07-23 pre-blow-off close) or a reclaim of $167.50 (07-28 intraday high) would fully negate the distribution read. The one leg that could flip this toward a supportable short: a negative credit-rating-agency comment on the H&E leverage inside the window -- currently absent.

Lane status

No lane produced a conceptual fire without a sized call tonight.

Watchlist write-back

12

Carried forward to the next session's watchlist — not calls.

PLNT -- LIVE OI_FADE short, half size, 3 sessions to a BINDING 08-03 exit. Next run MUST check: (a) the 07-30/07-31 call_net prints (a flat or negative print is a same-session exit, no confirmation math), (b) whether the $59.50 1-day-confirm stop was hit, (c) that 08-03 has not drifted -- PLNT reports 08-06 and any drift walks a losing short into the print.HRI -- OI_FADE short DROPPED on fundamentals VETO (ALLE-pattern PT-raise cluster). Cleanest OI signal of the night. Re-admit only if the analyst tape turns; negated outright by a close back above $163 or a reclaim of $167.50.HOG -- S4 WATCH for a 2nd session. STILL NO fundamentals verdict on record (flagged 07-28, gap still open). Also still absent from data/prices.parquet, so cluster checks on it remain qualitative.MOM_SHORT 11-name watch list (FRVO, MIR, INIO, SKHY, CNM, KLAC, TSLA + others) -- zero sizing under the standing PROVISIONAL cap. 4 of the 11 as reported were ETFs (AAPD, ASTX, RAM, IGIB) and are struck.MOM_LONG near-high basket -- watch-only BY THE RUBRIC (+0.18% mean < the +0.3% MEDIUM threshold), not by discretion, despite genuinely supportive 3-day cohort data. The lane's proposed basket included ROST, which carries a standing fundamentals VETO/DROP from 2026-07-20 -- the lane did not run prior_verdicts.py against its own basket.S2 -- nothing advisable; 12 gate-clean names, +0.06% prior. VC/TXNM/REZI were >90% one-sided SELL-side (informed liquidation, not a fadeable overshoot).ivrank_chg_5d h3 advisory tilt: BANC, BBY, ANF, BURL, SHAZ, CCXI, ULTA, NVDA. BURL also appears in S4 -- noted as evidence-type diversification, explicitly NOT summed (invariant #2). BKLN and JEPQ were on this list and are struck as ETFs (the list was not ETF-filtered at all).PROPOSAL FOR /calibration-audit #1 -- SHARED ETF FILTER. The Stock Screener export carries an issue_type column that labels ETFs cleanly, yet three lanes leaked ETFs tonight: momentum passed AAPD/ASTX/RAM/IGIB (4 of 11, two mislabelled as operating companies), S4 passed EWH through a filter that caught AIQ/COMP/IYR/KIE/KRE/LQD/MDY, and the ivrank list was unfiltered (BKLN, JEPQ). Same universe pollution that inflated the OI_FADE prior ~2x. Recommend one shared issue_type IN ('Common Stock','ADR') helper every lane calls instead of per-lane re-implementations. NOT hand-patched tonight. (SKHY was checked: issue_type=ADR, legitimately in-universe, not a leak.)PROPOSAL FOR /calibration-audit #2 -- pct_52w_range IS OUT OF RANGE FOR ~3% OF NAMES, CONCENTRATED AT THE TRADED EXTREMES. On 07-29, of 1,865 names with a value, 35 have pct > 1 (close above recorded w52h) and 28 have pct < 0 (close below w52l) -- landing at 35/233 (15%) of the near-high decile and 28/171 (16%) of the near-low decile. Mechanically this is UW's w52h/w52l lagging names that JUST made a new extreme, so cohort membership stays broadly direction-consistent, but the values are unusable as a continuous factor and produced the impossible figures the momentum lane reported ('-16.81%', '+125.8%'). A harder failure also exists: KLAC shows w52h 2431.29 with w52l 186.75 and close 170.19 -- an internally inconsistent triple, not mere staleness. Recommend clamping to [0,1] against a chart-API-derived 52w range and quarantining inconsistent triples.PROPOSAL FOR /calibration-audit #3 -- TRUTH-SET CORRELATION COVERAGE GAP, NOW RECURRING. The pairwise HRI/PLNT correlation recompute against data/prices.parquet returned n=0 overlapping rows, the same class of gap flagged for HOG on 07-28. Moot tonight, but gate 3 (corr >= 0.70 collapse) will fail SILENTLY the first night two names both clear gate 4 and need a live correlation number. Fix before it is load-bearing.PROCESS NOTE -- LANE OUTPUT REQUIRED ARBITRATION TONIGHT. The momentum lane's cohort table inverted the 07-27 near-low print (reported -0.69%, actual +2.387%) and contradicted the recorded 07-27/07-28 history; the orchestrator recomputed all three sessions from the truth set and used that instead. Consistent with the standing lesson that any regime/factor figure a sub-agent hands back must be re-verified before it scores anything.TRUTH-SET REBUILD WAS REQUIRED TONIGHT. preflight.py flagged prices/returns/features all ending 2026-07-28, one session BEHIND the trade date -- the exact condition that produced an inverted regime read on 07-24. All three were rebuilt through 07-29 before any lane ran; re-run preflight came back clear.
Lane glossary (4)
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).
S4_pcr_fade
Sentiment contrarian — fades a put-heavy (high put/call ratio) crowd long; the only sentiment leg that measured positive. Advisory size only (h5-10).
vol_0dte
Vol book — 0DTE variance-risk-premium premium-selling. Non-directional, delta-neutral, 0 directional points.
vol_earnings
Vol book — sells volatility into an earnings IV-crush. Non-directional, delta-neutral, 0 directional points.

Personal research journal · published on a ≥ 14-day delay · position sizes removed · not investment advice.