Market scan
Jul 30, 2026
Tier mix
- MEDIUM1
- WATCH8
- ADVISORY5
Tier mix — data table
| Tier | Calls |
|---|---|
| MEDIUM | 1 |
| WATCH | 8 |
| ADVISORY | 5 |
Directional book
Sizing is removed from every call by policy — see the disclaimer.
PLNT
MEDIUMShortlaneOI_FADE10dOI_FADE short on a heavy 5-day net call-OI build. Since-entry SHORT excess -1.47% (gross -1.41%, price $55.20 -> $55.98). TODAY's excess +2.05% (PLNT -0.37% vs SPY +1.68%). Computed by the orchestrator, NOT read off held_book.py, whose 'gross' is since-entry while its 'excess' is TODAY-only -- two different horizons printed side by side. HOLD to the binding exit.
- Entry / trigger
- live since 2026-07-20 @ $55.20, half size
- Invalidation
- EARLIEST of: (a) 2026-08-03 close -- BINDING h10, admits NO drift, 2 sessions left (07-31, 08-03); (b) first genuinely NEGATIVE call_net print -- NOT triggered, tonight prints call +233 / put +42 / net +191, calls still net-OPENING; (c) close > $59.50 with 1-day confirm -- ACTIVE, price $55.98 is 6.29% away. Leg (c) was tested against PLNT's own realized 2-day move distribution: only 2 of 133 windows (~1.5%) cleared +6.29%. Low-probability but NOT arithmetically unreachable, so it is a real backstop, NOT vestigial -- kept unchanged. Not tightened further: with 2 sessions left and the signal still confirming, a tighter stop adds whipsaw risk without shortening a time-to-resolution the h10 exit already caps.
- Low rel_build (0.028) is trailing-5d-window DECAY, not an unwind -- total call OI is still elevated ~76.7K vs a ~58K baseline, i.e. the crowd's calls remain open
- V-rebound tape shape raises generic squeeze risk on any open short
- Since-entry excess is negative (-1.47%); the position has not worked in aggregate even though today was strongly positive
regime crashPASS
PASS -- s1_standdown FALSE as measured. OI_FADE is a flow-mechanism lane, not a relative-weakness lane, so the gate-1 dissent raised on MOM_SHORT does not reach it in any case.
liquidityPASS
PASS -- $55.98 close, 20d $-ADV $97.3M via scripts/liquidity.py (clears the $5 / $50M floor)
clusterPASS
PASS -- sole open position, no cluster exists
fundamentalsN/A
NA -- held position, no fresh gate run required absent a new catalyst; the 07-29 CAUTION stands. Re-run if PLNT-specific news lands before 08-03.
event riskPASS
PASS -- PLNT reports 2026-08-06, THREE trading days AFTER the binding 2026-08-03 exit; the exit lands clear of the print. Neither NFP (08-07) nor CPI (08-12) falls inside the remaining 2-session window.
FCX
ADVISORYLonglaneS2_dp_revert5d- Invalidation
- Not sized. Advisory tag only.
- $256.5M DP premium, 92.1% one-sided
regime crashPASS
PASS
liquidityPASS
PASS
clusterPASS
PASS
fundamentalsN/A
n/a -- advisory, not sized
event riskPASS
PASS -- earnings-gated
JEF
ADVISORYLonglaneS4_pcr_fade10d- Invalidation
- Not sized. Advisory tag only.
- PCR 81.3, LIVE
regime crashPASS
PASS
liquidityPASS
PASS
clusterPASS
PASS
fundamentalsN/A
n/a -- advisory, not sized
event riskPASS
PASS -- earnings-gated
PLD
ADVISORYLonglaneS2_dp_revert5d- Invalidation
- Not sized. Advisory tag only.
- $257.5M DP premium, 96.8% one-sided, buy_skew 1.0 -- but the lane's own read is that one-sided concentration is a BINARY EVENT GATE with IC ~= 0, not a ranking signal; do not read the largest print as the best candidate
regime crashPASS
PASS
liquidityPASS
PASS
clusterPASS
PASS
fundamentalsN/A
n/a -- advisory, not sized
event riskPASS
PASS -- earnings-gated on the trading-day window
QTWO
ADVISORYLonglaneS4_pcr_fade10d- Invalidation
- Not sized. Advisory tag only.
- Highest PCR in the cohort at 147.0 and assessed LIVE (elevated on 07-30 itself, not stale fear left over from the 07-29 VIX spike)
- Reported 07-29 AH, opened strong 07-30 then REVERSED intraday (-2.2% on the day) -- a post-print reversal pattern that muddies the contrarian read
regime crashPASS
PASS
liquidityPASS
PASS
clusterPASS
PASS
fundamentalsN/A
n/a -- advisory, not sized
event riskPASS
PASS on the forward gate -- but see key_risks, it reported 07-29 AH
RGEN
ADVISORYLonglaneS4_pcr_fade10d- Invalidation
- Not sized. Advisory tag only.
- PCR 82.2, LIVE
- ivrank_chg_5d -25.1 -- hedging premium already partly harvested, so the entry point may have passed even though the crowding tag is live
regime crashPASS
PASS
liquidityPASS
PASS
clusterPASS
PASS
fundamentalsN/A
n/a -- advisory, not sized
event riskPASS
PASS -- earnings-gated on the trading-day window
Vol book
Non-directional, delta-neutral, net-of-cost — advisory only, 0 directional points.
LDOS
vol_earningssell premium- Vol state
- rich_vs_realized -- implied 8.5% vs realized avg 1.7% / max 6.2% (n=7). Implied clears even the WORST historical print with room.
- Implied move
- 8.50%
- Expected range
- 6.20%
Defined-risk iron fly, 08/21 monthly (~22 DTE), earnings 08-04. Wings set at/beyond the 6.2% realized-MAX print, never at the implied move. ATM relative bid/ask ~16-24% on this monthly chain -- a genuine single-name cost, and no measured cost model exists for this sleeve yet, so net_expectancy is left NULL rather than fabricated. Edge survives a generous haircut on the raw +6.9pp.
TRMB
vol_earningssell premium- Vol state
- rich_vs_realized -- implied 8.6% vs realized avg 2.4% / max 5.4% (n=8). Best option liquidity of the group (OI 21.6k, ~5.5k opt/day).
- Implied move
- 8.60%
- Expected range
- 5.40%
Defined-risk iron fly, 08/21 monthly, earnings 08-05. Wings beyond the 5.4% realized-max. Raw edge +6.2pp; net_expectancy NULL for the same reason as LDOS -- no measured cost constant for single-name monthlies.
TTMI
vol_earningssell premium- Vol state
- rich_vs_realized -- implied 19.7% vs realized avg 7.9% / max 16.6% (n=8). Largest raw edge of the three clean names (+11.8pp) but thin daily option volume (~900/day).
- Implied move
- 19.70%
- Expected range
- 16.60%
Defined-risk iron fly, 08/21 monthly, earnings 08-05, REDUCED SIZE for chain thinness. Wings beyond the 16.6% realized-max. Note the equity clears the C12 $-ADV floor at $304M -- the concern here is option-chain depth, which C12 does not cover.
UCTT
vol_earningsbuy premium- Vol state
- rich_on_average_but_fat_tail_already_breached -- implied 22.3% vs realized avg 10.3%, but realized MAX 28.2% EXCEEDS today's implied move
- Implied move
- 22.30%
- Expected range
- 28.20%
Stand aside EXCLUDED despite the largest headline edge (+12.0pp). Hard rule 'size for the unsampled left tail' is exactly what this name's OWN history says: a 28.2% print already blew through a smaller implied move once in 7 samples (~14% of the time). The headline edge is an average that the tail has already falsified.
SPY
vol_0dtebuy premium- Vol state
- backwardated_short_gamma -- front-end near/far IV ratio 1.296x (BACKWARDATION), GEX -$366.9M FULLY_NEGATIVE
- Net expectancy
- 0.001
Stand aside STOOD DOWN despite a mechanically POSITIVE net backtest (gross +0.246%/day -> net +0.146%/day after 0.10% assumed round-trip, 90% open-win). The lane script returned GO_PREMIUM_SELL_INTRADAY and was overridden: front-end backwardation + dealer-short-gamma + a fresh post-VIX-spike whiplash session (20.66 -> 17.09 in ONE session) is precisely the unsampled-left-tail combination the tail cap exists to catch. The 60-day trailing sample that produced those averages contains no analog for a ~21% one-day VIX round-trip -- the module's own disclosed caveat.
QQQ
vol_0dtebuy premium- Vol state
- backwardated_short_gamma -- front-end near/far IV ratio 1.445x (BACKWARDATION); spot 683.77 sits well BELOW the 729.4 zero-gamma level, i.e. inside the negative-gamma zone
- Net expectancy
- 0.003
Stand aside STOOD DOWN, same reasoning as SPY (gross +0.376%/day -> net +0.276%/day). SECOND, INDEPENDENT REASON: scripts/zerodte_setup.py MISCLASSIFIED QQQ as long-gamma -- its recommend() path sums net gamma over 0-45DTE instead of applying the spot-vs-zero-gamma-level convention the CLI 'gex' command uses, so it picked the quiet/mean-reverting branch. A real bug; do not trust that script's QQQ verdict until fixed. Logged as a maintenance item, NOT patched tonight (this was an advisory scan, not a lane change, and a code edit would trip the regression gate).
Watch / stood-down
| Ticker | Tier | Lane | Direction | Invalidation |
|---|---|---|---|---|
| AVTR | WATCH | OI_FADE | Short | Not sized. Re-admit to the OI_FADE universe only if a forward fundamentals re-check flips the veto: the analyst tape turning (no further PT raises/upgrades, or fresh cuts) AND the guidance picture deteriorating. The mechanical OI signal was the cleanest of the night -- this is a pure gate-4 kill. |
| HRI | WATCH | OI_FADE | Short | Not sized. Re-admit condition UNCHANGED and still open: the analyst tape must turn (no further PT raises/upgrades, or fresh cuts) AND the guidance picture must deteriorate. Checked tonight against the last 1-2 sessions specifically, per the recorded condition -- not a restatement of last night's veto. |
| INFY | WATCH | OI_FADE | Short | Not sized. Re-check 07-31 for build persistence, same test as OLLI. |
| LHX | WATCH | MOM_SHORT | Short | Not sized. Watch-only. |
| OLLI | WATCH | OI_FADE | Short | Not sized. Re-check 07-31: if the build PERSISTS into a second session it becomes a genuine multi-day accretion and re-enters the universe; if it does not, it was a one-session print and stays out. |
| SNPS | WATCH | MOM_SHORT | Short | Not sized. Watch-only. |
| VICI | WATCH | MOM_SHORT | Short | Not sized. Watch-only. |
| WSO | WATCH | MOM_SHORT | Short | Not sized. Watch-only. |
Lane status
[migrated from calls[] by audit 2026-08-01 -- was synthetic ticker BASKET_NEAR_52W_HIGH] Basket-only by construction -- never a per-name HIGH call (CLAUDE.md lane table) Not sized. Watch-only BY THE RUBRIC, not by discretion: +0.18% mean sits BELOW the +0.3% MEDIUM tier threshold, and the median is -1.06% (the lane's edge is tail-driven, so a basket held at watch loses nothing but the tail).
Watchlist write-back
Carried forward to the next session's watchlist — not calls.
Lane glossary (7)
- 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).
- S2_dp_revert
- Liquidity reversion — fades an extreme one-sided dark-pool liquidity event as short-horizon mean reversion (long-tilted), news/earnings-gated (h3-5).
- 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_earnings
- Vol book — sells volatility into an earnings IV-crush. Non-directional, delta-neutral, 0 directional points.
- vol_0dte
- Vol book — 0DTE variance-risk-premium premium-selling. Non-directional, delta-neutral, 0 directional points.
- MOM_LONG
- Momentum, long leg — near-52w-high relative strength. Tail-driven; basket-only, never sized per-name (h10).
Regime & Verdict#
- Regime: CHOP · ret5 +0.480% · ret10 −1.200% · dd15 −2.830% ·
directional_tradable=TRUE·s1_standdown=FALSE - Vol-state: VIX 17.09, −17.3% on the day — the 07-29 spike to 20.66 fully round-tripped in a single session. SPY GEX −$366.9M FULLY_NEGATIVE; QQQ NEGATIVE (spot 683.77 vs zero-gamma 729.4). Dealer-short-gamma on both = vol-expansion conditioning. VRP FAIR both indices (SPY +0.0126, QQQ −0.0057) — nothing rich to sell. Front-end backwardation SPY 1.296× / QQQ 1.445×.
- Breadth: DIVERGENT. SPY closed +1.68% on only 39.17% green (197 adv / 304 dec); UW bullish_pct 35.7%, trend CHOPPY/TRANSITIONAL. Today's bounce was narrow and mega-cap/Tech-led, not breadth-confirmed. QQQ +3.30% on the day but still −1.22% ret5 / −3.17% ret10 — the AI-capex repricing leg has not round-tripped.
- Bottom line: no new directional edge tonight — zero new starters. Two names cleared every mechanical lane gate and both were VETOED at gate 4 on fundamentals. One held short (PLNT) is carried at unchanged half size with 2 sessions to a binding exit. Vol book has two clean earnings-crush candidates; the 0DTE sleeve stands down.
Directional Book (excess-scored)#
| Ticker | Lane | Dir | Horizon | validated_excess | regime_fit | invalidation | gates |
|---|---|---|---|---|---|---|---|
| PLNT | OI_FADE | short | h10 | +0.70% (n=906, hit 0.56 vs 0.38) | 0.5 | earliest of 08-03 close (binding h10) · first negative call_net (not triggered: +233/+42/net +191) · close > $59.50, 1-day confirm (6.29% away, ACTIVE) |
all PASS |
No new starters. Everything else below is watch or advisory.
Why the two clean signals were killed#
Both cleared liquidity, ETP, earnings-window, catalyst-split and persistence — then failed the fundamentals veto channel, which exists precisely to separate crowding from corroborated conviction.
- AVTR — VETO. Cleanest OI signal of the night (oi_net_5d +101,124, rel_build 2.713, persistence 0.47 = genuinely organic). The 2026-W29 objection against it (single-day block, persistence ~1.0) is resolved. But: Q2 beat +8.58% with FY guidance raised, and five same-day PT raises on 07-30 (WFC $14→16, Stifel $8→15, Evercore $10.5→14, MS $10→14, RBC $9→14), zero cuts, insider MSPR +33.33. Price +22.12% ret5, RSI 75.68. This is the ROST/ALLE pattern exactly.
- HRI — VETO carried and reinforced from 07-29. The recorded re-admit condition was specific: the analyst tape must turn. It did the opposite — KeyBanc raised $165→$185 and BNP raised $160→$165 on 07-29, zero cuts. Condition NOT MET. Separately, ret5 −10.62% means an entry would short a completed collapse, and the lane's edge is measured on the general population of heavy-call-build names, not on names already down double digits.
Recorded for fairness: HRI's PE ~99× and D/E 4.18 are genuinely stretched, and the −14.6% unwind off the 07-28 high reads as a valuation reset — a real reason the short could still work. It is not enough to overturn a gate whose bar is "do the fundamentals contradict the thesis."
Vol Book (non-directional, delta-neutral, 0 directional points)#
Earnings IV-crush — SELL VOL. Note the screen inverted the usual assumption: most of the IV-rank ≥ 80 list is IV-cheap vs its own realized post-print history (TWLO 2.7% implied vs 13.5% realized; AKAM 2.8% vs 14.9%; AMD 3.5% vs 9.1%; PLTR 2.2% vs 12.4%) — IV rank is a level, not an edge. Four names are actually rich:
| Symbol | Earnings | Implied | Realized avg / max | Verdict |
|---|---|---|---|---|
| LDOS | 08-04 | 8.5% | 1.7% / 6.2% (n=7) | SELL — iron fly 08/21, wings beyond the 6.2% realized-max |
| TRMB | 08-05 | 8.6% | 2.4% / 5.4% (n=8) | SELL — best liquidity of the group |
| TTMI | 08-05 | 19.7% | 7.9% / 16.6% (n=8) | SELL, reduced size — thin chain (~900 opt/day) |
| UCTT | 08-03 | 22.3% | 10.3% / 28.2% | EXCLUDED — worst historical print exceeds today's implied move |
All defined-risk, wings set at the realized-max print, never at the implied move. ATM spreads run ~16–24% on these monthlies; no measured cost constant exists for this sleeve, so net_expectancy is left null rather than fabricated.
0DTE-VRP — STAND DOWN, both indices. The script returned GO_PREMIUM_SELL_INTRADAY with positive net math (SPY gross +0.246% → net +0.146%/day; QQQ +0.376% → net +0.276%/day) and was overridden: front-end backwardation on both (1.296× / 1.445×) + dealer-short-gamma on both + a fresh ~21% one-day VIX round-trip is the unsampled-left-tail combination the tail cap exists for. The 60-day sample behind those averages contains no analog.
Maintenance item (not patched tonight):
scripts/zerodte_setup.pymisclassified QQQ as long-gamma — itsrecommend()path sums net gamma over 0–45DTE instead of using the spot-vs-zero-gamma-level convention the CLIgexcommand applies, so it picked the quiet/mean-reverting branch. Logged, not fixed: a code edit tonight would trip the regression gate mid-scan.
Watch / Stood-down#
- OI_FADE mechanism failures — OLLI, INFY. Both fail the lane's own multi-day-build test: persistence 0.974 (OLLI: +6,672 of a +6,850 build landed in ONE session, today) and 0.993 (INFY: a ~108K-contract single-session block). A same-day mega-block on a dealer-short-gamma bounce day is at least as consistent with systematic hedging as with crowd positioning. Re-check 07-31 — if the build persists a second session, they re-enter. No fundamentals gate was run on either, correctly: they fail upstream of gate 4, and this repo gates only names about to be sized.
- MOM_SHORT — watch-only (SNPS, WSO, LHX, VICI). Capped by CLAUDE.md invariant #6: the lane's −0.03% mean is a known-negative recorded exception. WSO is the archetype of the lane's risk (RSI 22.2, ret2 −15.45%). BLDR/QXO/PEG earnings-blocked.
- MOM_LONG — 108-name near-high basket, watch-only BY THE RUBRIC (+0.18% mean is below the +0.3% MEDIUM threshold; median −1.06%, tail-driven). Cohort data has been supportive three sessions running, but the validated prior is what sizes.
- S2 (advisory, +0.06%) — 40 survivors; top PLD, FCX, DHI, CFG. The lane's own read: one-sided concentration is a binary event gate with IC ≈ 0, not a ranking signal — do not read the biggest print as the best candidate. Five vetoed on same-day/recent earnings (ITW, PNC, CBRE, GFL, ACGL).
- S4 (advisory, +0.44%) — 37 candidates, 86% assessed LIVE PCR rather than stale 07-29 fear. Top: QTWO (147.0), RGEN (82.2), JEF (81.3). Caution: 11 names show
ivrank_chg_5d < −25— hedging premium already partly harvested.
Risk#
- Correlation clusters: none. Max pairwise 0.15 across the measurable set — nothing near the 0.70 collapse threshold. PLNT is the sole open position.
- Event calendar (10 td): PLTR 08-03 · AMD 08-04 · NFP 08-07 (Tier-1) · SMCI 08-11 · CPI 08-12 (Tier-1). No FOMC. PLNT's binding 08-03 exit lands clear of its own 08-06 print (3 trading days) and ahead of both Tier-1 macro events.
- Tail caps applied: MOM_SHORT watch-only (invariant #6); MOM_LONG basket-only; S2/S4 advisory-only; 0DTE stood down; UCTT excluded on a breached left tail.
- CHOP half-cap ceiling: non-binding — nothing cleared above half in the first place. PLNT was already at half from entry.
- PLNT stop is NOT vestigial. Tested rather than asserted: over 133 two-day windows only 2 (~1.5%) cleared the +6.29% needed to reach $59.50. Low-probability but not arithmetically unreachable — the vestigial precedent describes a winning position whose stop has been outrun, which is the opposite geometry. Kept live and unchanged; not tightened further, since with 2 sessions left a tighter stop adds whipsaw without shortening a resolution the h10 exit already caps.
Two process findings#
- Gate-1 dissent — raised by
risk-sizer, DECLINED by the orchestrator. It argued the tape shape is a textbook V-rebound and asked to treats1_standdownas FIRED for MOM_SHORT despite the mechanical FALSE. Declined:regime_check.pyis the authoritative gate the retro harness scores against, and hand-flipping the recorded flag would corrupt the exact field/calibration-audituses to grade whether the crash gate works. The caution is real and recorded — Phase A raised it independently — but it changes nothing operationally, since MOM_SHORT is already unsized under invariant #6. If the shape recurs, codify a proper up-thrust detector via/calibration-auditrather than re-litigating nightly. - MOM_LONG lane bug, second consecutive night. The lane again returned ROST inside its own basket; ROST carries a standing fundamentals VETO/DROP from 2026-07-20. It still does not run
prior_verdicts.pyagainst its own output. Excluded by the orchestrator both nights. Flagged 07-29, unfixed — worth a maintenance ticket.
Data note#
Preflight initially failed (exit 1): the truth-set parquets ended 07-29, one session behind the trade date. Rebuilt prices / returns / features through 2026-07-30 before any lane ran; re-run went clean (exit 0). This is the failure that produced an inverted regime read on 2026-07-24 — no lane read a stale panel tonight.