Market scan
Aug 17, 2026
Tier mix
No calls cleared the board on this scan.
Directional book
Sizing is removed from every call by policy — see the disclaimer.
No call cleared HIGH/MEDIUM/ADVISORY tier in this scan — no new directional edge.
Vol book
Non-directional, delta-neutral, net-of-cost — advisory only, 0 directional points.
SPY
vol_0dtebuy premium- Vol state
- LOW
- Net expectancy
- -0.001
Stand aside Two independent grounds. (1) TERCILE-POOLING TRAP FIRED: the pooled headline verdict prints GO_PREMIUM_SELL_INTRADAY, but the conditional mean_pnl_by_vix_state[LOW] is -0.003% before cost and approx -0.10% after a ~0.10% round trip. Verified directly by the orchestrator, not taken from the headline. (2) Dealer SHORT-gamma regime: total_gex -367.98M, FULLY_NEGATIVE across all strikes, and zero_gamma_level is NULL so the flip is unresolvable -- failing closed on that leg. Script's own sell_premium=False, size_scalar=0.0. This is the vol-amplifying wide-range state the sleeve is not sized to sell into, and the unsampled left-tail regime the validation window never priced.
QQQ
vol_0dtebuy premium- Vol state
- LOW
- Net expectancy
- -0.000
Stand aside Same two grounds. (1) Conditional mean_pnl_by_vix_state[LOW] is +0.072% before cost, approx -0.03% after a ~0.10% round trip -- the pooled GO_PREMIUM_SELL_INTRADAY headline is a pooling artifact. (2) TEXTBOOK GAMMA-SIGN TRAP CASE: aggregate total_gex is POSITIVE (+582.19M) while spot 730.13 sits 0.60% BELOW the flip at 734.54 -- dealers are short gamma at the money that matters. The two readings are kept load-bearing and distinct per the standing rule: aggregate sign drives RANGE/wing-width, spot-vs-flip drives REGIME/sell-decision. gamma_disagreement=False and the 0.60% distance is outside the near-flip fail-closed threshold, so this is a clean STAND ASIDE, not a fail-closed. Script's own sell_premium=False, size_scalar=0.0.
OKTA
vol_earnings- Vol state
- IV-rank 81-84
- Implied move
- 13.02%
- Net expectancy
- 0.119
Defined-risk iron fly / short strangle, wings set WIDER than the implied move
Stand aside ADVISORY ONLY -- no harness validates this lane, so nothing here is a scored call. Prints 08-26, bracketing expiry 08-28 (11d), backwardation 1.45x. The implied move is a LOWER BOUND on the realized move (TPR precedent: realized -16.5% vs a ~12.2% raw-IV estimate). Computed off the BRACKETING expiry using MEDIAN ATM IV -- the naive default-DTE read misprices this name as CONTANGO because its print falls after the front 4dte expiry.
HPQ
vol_earnings- Vol state
- IV-rank 81-84
- Implied move
- 10.77%
- Net expectancy
- 0.105
Defined-risk iron fly / short strangle, wings set WIDER than the implied move
Stand aside ADVISORY ONLY -- no harness validates this lane. Prints 08-26, bracketing expiry 08-28 (11d), backwardation 1.32x, tightest cost drag of the set (2.6% of straddle). Implied move is a LOWER BOUND, not an estimate. Naive default-DTE read understates this move by ~3x because the print falls after the front expiry.
ADSK
vol_earnings- Vol state
- IV-rank 81-84
- Implied move
- 9.40%
- Net expectancy
- 0.084
Defined-risk iron fly / short strangle, wings set WIDER than the implied move
Stand aside ADVISORY ONLY -- no harness validates this lane. Prints 08-27, bracketing expiry 08-28 (11d), backwardation 1.20x. Implied move is a LOWER BOUND. Naive default-DTE read understates this move by ~3x (print falls after the front expiry).
ROST
vol_earnings- Vol state
- elevated IV-rank
- Implied move
- 6.09%
- Net expectancy
- 0.057
Short-fuse earnings crush, 4dte bracketing expiry 08-21
Stand aside ADVISORY ONLY -- no harness validates this lane. Prints 08-20, backwardation 2.29x (steepest of the set). Implied move is a LOWER BOUND.
TJX
vol_earnings- Vol state
- elevated IV-rank
- Implied move
- 4.34%
- Net expectancy
- 0.040
Short-fuse earnings crush, 4dte bracketing expiry 08-21
Stand aside ADVISORY ONLY -- no harness validates this lane. Prints 08-19, backwardation 1.98x. Implied move is a LOWER BOUND.
DE
vol_earnings- Vol state
- elevated IV-rank
- Implied move
- 5.18%
- Net expectancy
- 0.050
Short-fuse earnings crush, 4dte bracketing expiry 08-21
Stand aside ADVISORY ONLY -- no harness validates this lane. Prints 08-20, backwardation 1.64x, tight cost (3.8% of straddle). Implied move is a LOWER BOUND.
JKHY
vol_earnings- Vol state
- elevated IV-rank
- Implied move
- 6.20%
- Net expectancy
- 0.053
Short-fuse earnings crush, 4dte bracketing expiry 08-21 -- watch fill quality
Stand aside ADVISORY ONLY -- no harness validates this lane. Prints 08-18 (tomorrow). Cost drag 14.2% of straddle is wide for a name this size. Implied move is a LOWER BOUND.
COTY
vol_earningsbuy premium- Vol state
- median ATM IV 160%+
- Implied move
- 17.40%
Stand aside EXCLUDED from the tradeable set -- liquidity/data-quality outlier, not a clean crush candidate. Sub-$3 stock, median ATM IV printing 160%+, only ~1-2 contracts traded per side at the ATM strike, bid/ask cost 15.8% of straddle. The nominal 14.65% credit is NOT trustworthy at that spread width. Flagged for the record, explicitly not traded.
Watch / stood-down
Nothing in this scan landed at WATCH, STOOD_DOWN or DROP.
Lane status
Population after floors 1,166. Raw oi_net_5d top-15 is pure ETP/mega-cap beta (GLD, NVDA, SLV, TLT, GOOGL, AAPL, META, SQQQ) -- not a candidate list. Ranking by the live rule (oi_rel_build) yields a cohort whose BEST raw rank is AS at 50-61 of 1,166-1,896, and AS is separately earnings-BLOCKED (reports 08-18). Every remaining name sits at raw rank 125-798. Orchestrator-verified independently on data/features.parquet: AS 50, FDX 125, SPHR 195, XYL 197, GEN 216, BSY 264, ITRI 308, AAON 312, DK 346, KNSA 431 (of 1,896). The +0.0037 mean / +0.77% median prior was measured on the RAW top-15 population; a rel_build-ranked mid-pack name does not inherit it. Sixth consecutive night this selection-rule discount has held (COO, NRG, STUB, INSW, WEC, FDX, GEN, BSY, ITRI). Two mechanism catches: COKE's headline net +1,314 is put-covering not a call build (call OI over 5d is only +73 contracts, put OI -1,241) -- a Gate-2 sign/mechanism failure; ALC's dominant build day 08-11 is one day after its 08-10 print, an earnings-reaction block, strict '>' boundary 104.5% vs shipped 93.3%. ETPs cut via issue_type at this rank band: SSPC, VYM, SNDQ, SQQQ, BOIL, UVIX, UVXY. M&A-rumor tape checked on all non-vetoed names, none pending (XYL is the acquirer, not a target). Liquidity verified via scripts/liquidity.py, not hand-multiplied.
WATCH-ONLY, never sizes -- baseline is knowingly NEGATIVE at -0.0140 (n=828) on the 2,471-ticker spine, the one recorded exception to the no-negative-excess invariant. s1_standdown is FALSE so the crash guard is mechanically non-binding tonight, but the negative baseline is independently disqualifying. 14 names cleared liquidity + earnings + issue_type. CRITICAL verification performed: the UW pct_52w_range for the leaders prints NEGATIVE (RBA -4.11%, NKE -2.27%, STLA -1.87%, AMRZ -1.51%, CPRI -0.78%) -- this is stale w52l not yet including today's new low, NOT a false signal. Yahoo-verified via scripts/chart.py --52w: all are genuinely at 52w lows SET TODAY (STLA 0.3% of range, RBA 0.2%, AMRZ 0.4%, NKE 0.6%, CPRI 0.8%). 44 of 1,920 names carry out-of-range pct_52w_range tonight; only the detectable class is visible, and the in-range-but-wrong class (un-split-adjusted w52h) is what manufactures false shorts, so this check is mandatory not optional.
BASKET/WATCH ONLY, never sizes -- baseline is knowingly NEGATIVE at -0.0122 (n=1121) on the 2,471-ticker spine. The tail-driven edge that carried the old 785-spine has evaporated on the full liquid universe. 30-name basket cleared earnings + issue_type. Top names Yahoo-verified genuinely at highs: PSX 99.9% of 52w range, PTGX 99.7%, RVMD 97.8%, ARGX 95.9%, IESC 95.5%. Standing caveat carried: the current baseline is depressed by a correlated draw (08-08 and 08-15 increments were the SAME one-way rally, base pinned at 1.00 for MOM_LONG), so a future recovery in this figure is NOT evidence a fix worked -- and is equally not grounds to inflate a candidate's expected excess tonight.
Watchlist write-back
Carried forward to the next session's watchlist — not calls.
Lane glossary (5)
- 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.
- 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).
Regime & Verdict#
- Regime: UPTREND · vol-state LOW (VIX 15.19, ~5th pct of trailing 6mo, +6.6% on the day off Friday's 14.25, −4.2% on 10d) · breadth 672 adv / 1,234 dec, 35.0% green ·
directional_tradableTRUE ·s1_standdown**FALSE` - SPY 772.67 (−0.47% on the day), 0.9% off the 52w high (779.37, set 08-13), RSI14 61.8. QQQ notably stronger on the 10-day (+4.26% vs SPY +1.98%).
- ret5 −0.05% · ret10 +1.98% · dd15 −3.72%
- Bottom line: No directional edge today. ZERO new starters — the book stays FLAT for a 6th consecutive session.
dd15 is not a drawdown (standing misread guard)#
dd15 = min(last 15 closes)/close_10_back − 1. Tonight's −3.72% is the 07-29 low (729.46) measured against the 08-03 anchor (757.67) — a 13-session-stale excursion the tape already rallied out of, not a live drawdown. Confirmed independently.
Breadth — corrected framing#
Phase A framed today as a narrow-leadership / distribution divergence. On the full 1,920-name spine the honest read is different: median stock −0.443% against SPY −0.47% — the median constituent fell essentially in line with the index. This was a broad-based weak day, not an internals-vs-index divergence. (Friday: 52.7% green, median +0.08%.) The 2.6:1 near-high/near-low skew (192 vs 65, plus 44 stale-52w exclusions) is a longer-horizon structural fact and does not make today's tape narrow.
Regime trajectory (load-bearing for anything with an h10 window)#
The ret10 anchor currently sits at 08-03's 757.67 and rolls forward into the 771–773 range over the next 3–5 sessions. Absent fresh highs above ~785, ret10 compresses toward 0% and UPTREND mechanically decays to CHOP well inside the h10 window (→ 09-01). Same decay flagged on 08-14. uw risk market-regime independently reads TRANSITIONAL / half-size, disagreeing in emphasis with the mechanical UPTREND label.
Directional Book (excess-scored)#
EMPTY — no name cleared any lane's bar tonight.
| Ticker | Lane | Dir | Horizon | validated_excess | regime_fit | invalidation | gates |
|---|---|---|---|---|---|---|---|
| — | — | — | — | — | — | — | — |
Six consecutive flat sessions. The reasons are per-lane and independent:
| Lane | Baseline (2026-08-15, 2,471-spine) | Disposition tonight |
|---|---|---|
| OI_FADE | +0.0037 (n=1159) | NO_NAME_CLEARED — every candidate fails the raw-rank selection discount |
| MOM_SHORT | −0.0140 (n=828) | Watch-only, never sizes (knowingly negative) |
| MOM_LONG | −0.0122 (n=1121) | Basket/watch only, never sizes (knowingly negative) |
| S2 | +0.0011 (n=1185) | Advisory-only, never sizes |
| S4 | +0.0041 (n=1202) | Advisory-only, never sizes |
OI_FADE — the only lane that could have sized, and it didn't#
Population after floors: 1,166. The raw oi_net_5d top-15 is again pure ETP/mega-cap beta (GLD, NVDA, SLV, TLT, GOOGL, AAPL, META, SQQQ) — not tradeable candidates. Ranking by the live rule (oi_rel_build) produces a cohort whose best raw rank is AS at 50–61 of 1,166–1,896, and AS is separately earnings-blocked (reports 08-18, tomorrow). Every remaining name sits at raw rank 125–798 — mid-pack by build size, not "heaviest."
Independently verified by the orchestrator: AS rank 50/1896 (blocked), FDX 125, SPHR 195, XYL 197, GEN 216, BSY 264, ITRI 308, AAON 312, DK 346, KNSA 431. The lane's "cleanest mechanically" name (KNSA) is at rank 431.
This is the sixth consecutive night the selection-rule discount has held (COO, NRG, STUB, INSW, WEC, FDX, GEN, BSY, ITRI). The +0.37%/+0.77% prior was measured on the raw top-15 population; a rel_build-ranked mid-pack name does not inherit it.
Two further mechanism catches worth recording:
- COKE — headline net +1,314 is a mechanism failure: call OI over 5 days is only +73 contracts; the positive net is entirely put-OI closing (−1,241). That is put-covering, not a call crowd to fade.
- ALC — dominant build day is 08-11, one day after its 08-10 print: an earnings-reaction block, not organic accretion. Strict
>boundary reads 104.5% vs 93.3% shipped.
Vol Book (non-directional)#
0DTE-VRP — STAND ASIDE, both symbols#
| SPY | QQQ | |
|---|---|---|
| VIX tercile | LOW | LOW |
Conditional mean_pnl_by_vix_state[LOW] |
−0.003% | +0.072% |
| Less ~0.10% round-trip cost | ≈ −0.10% | ≈ −0.03% |
| Aggregate gamma sign | NEGATIVE (−368.0M) | POSITIVE (+582.2M) |
| Spot vs flip | 773.01, flip unresolvable (null) | 730.13 vs 734.54 → 0.60% below flip |
sell_premium / size_scalar |
False / 0.0 | False / 0.0 |
The pooled headline verdict prints GO_PREMIUM_SELL_INTRADAY for both — that is the tercile-pooling artifact, and it does not apply tonight. Verified directly: the LOW-bucket conditional is ~0 before cost and negative after it. Both symbols are additionally in a dealer-short-gamma regime at the money (the vol-amplifying, wide-range state this sleeve is not sized to sell into). QQQ is the textbook trap case — aggregate GEX positive while spot sits below the flip; range/wing-width keys off the aggregate sign, the sell decision keys off spot-vs-flip, and they are kept distinct here.
Earnings IV-crush — ADVISORY ONLY, never sized (no harness validates this lane)#
Implied moves recomputed off the bracketing expiry using median ATM IV. Every figure is a LOWER BOUND on the realized move (TPR precedent: realized −16.5% vs a ~12.2% raw-IV estimate) — size wings wider than these, not to them.
| Ticker | Bracket expiry | ATM straddle | Net-of-cost credit | Backwardation | |
|---|---|---|---|---|---|
| OKTA | 08-26 | 08-28 (11d) | 13.02% | 11.93% | 1.45× |
| HPQ | 08-26 | 08-28 (11d) | 10.77% | 10.49% | 1.32× (tightest cost, 2.6% of straddle) |
| ADSK | 08-27 | 08-28 (11d) | 9.40% | 8.42% | 1.20× |
| ROST | 08-20 | 08-21 (4d) | 6.09% | 5.72% | 2.29× |
| JKHY | 08-18 | 08-21 (4d) | 6.20% | 5.32% | cost 14.2% of straddle — wide |
| TJX | 08-19 | 08-21 (4d) | 4.34% | 3.99% | 1.98× |
| DE | 08-20 | 08-21 (4d) | 5.18% | 4.99% | 1.64× |
| COTY | 08-19 | 08-21 (4d) | 17.40% | (excluded) | cost 15.8% of straddle |
COTY excluded — sub-$3 stock, 160%+ median ATM IV, ~1–2 contracts per side at the ATM strike. A liquidity/data-quality outlier; the credit number is not trustworthy at that spread width.
New generic trap recorded: any earnings candidate whose print falls after the front expiry has its true implied move invisible to a naive implied_move_perc read. OKTA/HPQ/ADSK all report after the front 4dte expiry — the naive read misprices OKTA as CONTANGO and understates HPQ/ADSK's implied move by ~3×. Always identify the first expiry ≥ print date before declaring backwardation.
Watch / Stood-down#
Prior watch cohort — continuity (orchestrator's job; no lane carries these)#
| Name | 5d net | Last session | Status |
|---|---|---|---|
| GEN | +5,619 | call −352, net −577 | CUT — mechanical invalidation FIRED (calls genuinely closing) |
| FDX | +13,537 | call +912, net +277 | Retained WATCH — still building but decaying (rel_build 0.657) |
| BSY | +3,959 | call +167, net +162 | Retained WATCH — build stalled to near-zero fresh adds |
| ITRI | +2,845 | call +18, net +10 | Retained WATCH — build effectively dead |
GEN's cut is the same rule that cut COO (08-13) and NRG (08-14). Nothing was sized on any of them; no realized loss.
MOM_SHORT — watch-only (14 names, never sizes)#
Top by 52w-range: RBA, NKE, STLA, AMRZ, CPRI, ESAB, ROL, GPI, GME, HDB, BKNG, TTD, KLAC, ZTS.
Yahoo-verified. The UW pct_52w_range for the leaders prints negative (RBA −4.11%, NKE −2.27%, STLA −1.87%) — that is stale w52l not yet including today's new low, not a false signal. Yahoo confirms all are genuinely at 52w lows set today: STLA 0.3% of range, RBA 0.2%, AMRZ 0.4%, NKE 0.6%, CPRI 0.8%. 44 of 1,920 names carry out-of-range values tonight and only the detectable class is visible — the in-range-but-wrong class (un-split-adjusted w52h) is what manufactures false shorts, so this verification is not optional.
MOM_LONG — basket/watch only (30 names, never sizes)#
Verified genuinely at highs: PSX 99.9% of range, PTGX 99.7%, RVMD 97.8%, ARGX 95.9%, IESC 95.5%.
S4 sentiment-contrarian — lane output corrected before use#
The lane returned 15 names ranked by raw PCR with no call-volume floor, and its top names are denominator artifacts, not sentiment: NWG's PCR of 682 is three call contracts against 2,046 puts. TNGX (32 calls), SAN (66), AMRZ (68), HST (90), JAZZ (63) are the same failure.
Applying call_volume ≥ 500 drops the population 1,920 → 917 and collapses max PCR from 682 to 33; adding the issue_type = 'Common Stock' cut removes a fresh ETP leak (XRT, JETS, XLI, XLY, ARKK, IYR all rank top-15 without it). Only 2 of the lane's 15 names survive (CARR, EXE — which it had ranked 8th and 10th).
Corrected advisory list: CARR, EXE, APO, CHYM, XEL, VLO, RYN, BKR, FSLR, BURL, EQT, EIX, WM, SMMT, ARE.
Note this dissolves an apparent cross-lane contradiction: AMRZ appeared as both a MOM_SHORT (short) and an S4 (long) candidate. AMRZ's S4 entry is a 68-contract artifact and drops out, so there is no live directional conflict.
S2 liquidity-reversion — advisory, zero starters#
194 DP candidates → 106 after Common Stock + liquidity → 103 after the h5 trading-day earnings gate.
Excluded as catalyst-informed flow (the lane's hard rule — this is informed positioning, not mean-reversion): RDDT ($2.6B DP — S&P 500 inclusion announced today + Form 144 insider sales), GH ($609M — post-Q2 upgrades), COF ($396M — ex-dividend today), COP ($378M — ex-dividend today + CEO retirement).
Blocked on prior policy: V, KLAC (weekly standdowns), RTX (basket-only), NXPI (OI_FADE demotion 08-12/13).
Watch-only, news UNVERIFIED (10 of 15 unchecked — labeled, not silently passed): LYB, TWLO, EQIX, ROKU, AME, MFC, IDXX.
(KLAC appears in both the MOM_SHORT watch list and S2's blocked set. Noted as evidence-type diversification only — never summed.)
Risk#
- Correlation clusters: not binding — nothing sized, so no cluster can collapse.
- Event calendar — the entire Tier-1 cluster sits inside the h10 window (08-18 → 09-01):
- 08-20 FOMC minutes (July)
- 08-21 Jackson Hole opens (Powell) — Tier-1
- 08-26 Core PCE, 8:30am ET — Tier-1
- 08-26 AH NVDA Q2 FY27 — index-moving, especially QQQ
- 08-18→08-21 HD / WMT / LOW / TJX / ADI (consumer read-through)
- Tail caps: vacuous tonight — nothing reached a sizing band, so Phase D had nothing to gate.
fundamentals-gatewas not spawned for the same reason (it runs only on names about to be sized). - Vol left tail: 0DTE stood aside on two independent grounds (negative LOW-tercile conditional net and short-gamma regime). Earnings-crush implied moves are floors, not estimates.
- Hedge note: no book, no hedge required.
Addendum — S4 floor shipped as a code fix (post-scan, same day)#
The S4 defect found during this scan was fixed in the lane itself after the scan was written:
S4_MIN_CALL_VOLUME = 250, paired across scripts/retro_harness.py and
.claude/agents/sentiment-contrarian.md. The shipped floor is 250, not the ad-hoc 500 used above — the
scan's correction was written before the threshold was calibrated. This section is left as-recorded rather
than rewritten; the corrected watchlist above remains the 500-basis list.
Consequence, recorded in full at docs/regression-gate.md:
S4 re-baselined +0.0041 → +0.0025 (n=1241). The fix lowers measured excess because the artifact names
were supplying the lane's right tail, and it exposed that S4's hit − base was already negative before
the fix (−0.041 → −0.056) — the lane has never had a hit-rate edge on this panel. The forward +1.25%
figure that made S4 "the only lane positive forward as well as historically" is not clean either, since
those rows were selected by the buggy filter; S4 forward is pre-registered again from 2026-08-17.
Data integrity (Phase 0)#
The truth-set parquets were stale on arrival — all three ended 2026-08-14 against a 2026-08-17 trade date. Rebuilt before any lane ran: prices (352,331 rows / 2,448 of 2,471 tickers priced; 23 unpriced fail closed downstream), returns (SPY self-excess 0.0 at every horizon), features (172,300 rows / 2,484 tickers / 89 dates). Preflight re-run clean. Panel 5/5 complete for 08-17.
Had this not been caught, every lane would have scored a Friday tape against a Monday date.