Starr Quant Lab Desk Research

US · Recap

US Market Recap | 2026-08-04 (ET) Tuesday

Tue US Recap · 13 tables America/New_York

Machine-translated from the Chinese original. In case of any discrepancy, the Chinese version prevails.

Single-name entries

This is a reconciliation report — it carries no single-name score table. Recaps are structured around hit-rate reconciliation, theme verification and next-day outlook.

Coverage window: 2026-08-04 09:30–16:00 ET regular session + 16:00–18:05 ET after-hours. Quote basis: single-stock and ETF percentage changes are taken from the stockanalysis.com real-time quote API (close stamp Aug 4, 2026, 4:00 PM EDT); after-hours prices are as of 18:00–18:05 ET and are still moving — the next day's open is the final word. VIX is taken from the CBOE official delayed-quote API. All times are stated in US Eastern Time (ET).


0. Recap in One Line

  1. Today was an outright risk-on session: the S&P +1.79% to 7,736.52, an all-time high (prior high 7,609.78); the Dow +1.71% to 54,085.88, its first-ever close above 54,000; the Nasdaq +2.59% to 26,584.99; the Russell 2000 +1.85% to 3,037. Four straight up days.
  2. The genuinely strongest theme today was not "AI software monetization" — the pre-market's number-one — but "a broad semiconductor re-rating": SOXX +6.80%, SMH +5.55%, ARM +17.36%, MU +7.62%, QCOM +7.32%, AVGO +6.61%, AMD +7.00%. The pre-market gave "semiconductor power-supply recovery" only an A- and ranked it 5th — this is the single biggest underestimate in this piece.
  3. Pre-market list reconciliation: of the 5 actively bullish names, 4 rose and 3 beat the broad market; all 8 names on the avoid list fell, 8/8 hit; two clear misjudgments — AAOI was downgraded to "avoid" and actually rose +19.44%; SNAP was tagged "watch only" and actually rose +14.88%. PLTR +29.45% was the largest payoff of the day.
  4. Tone for tomorrow: cautiously constructive, but guard against a spreading "good news is fully priced" dynamic. The two largest after-hours earnings today — AMD (+7.00% at the close → -9.13% after hours) and SPCX (+9.43% at the close → -7.59% after hours) — both "beat and got sold". That is today's most important signal.
  5. One divergence that must be flagged: as the S&P set an all-time high, the VIX rose rather than fell, +4.04% to 16.50 (CBOE official basis, open 15.57 / high 16.65). An index high plus rising volatility usually means money is buying protection into the rally, not chasing it carefree. The 10Y Treasury at 4.625%, -5.9bp (-11.8bp over two days) was supportive on the rates side; but XLU -0.56%, XLV -0.09%, XLRE -0.02% — all three defensive sectors closed lower, so money was pulled out of defensives to fund AI, this is not incremental inflow.

1. Market Overview

Index / Metric Close Change Change% Note
S&P 500 7,736.52 +136.02 +1.79% All-time high (prior closing high 7,609.78)
Dow Jones Industrial 54,085.88 +907.47 +1.71% First-ever close above 54,000
Nasdaq Composite 26,584.99 +671.10 +2.59% Leader
Russell 2000 3,037 +55.16 +1.85% Small caps in step, not left behind
SPY 771.33 +1.80% Volume 69.52 million shares
QQQ 723.85 +3.40% Pulled up by AI weightings
IWM 301.71 +1.85% In line with the Russell
RSP (S&P equal weight) 220.23 +1.44% Lagged SPY by 36bp → gains still concentrated at the top
VIX 16.50 +0.64 +4.04% Open 15.57 / high 16.65 / low 15.57; rose on a record-high day
10Y Treasury 4.625% -5.9bp -11.8bp over two days
Dollar Index DXY ~99.97 roughly flat Sitting just under 100
WTI crude $75.77 -$4.57 -5.69% Second straight sharp drop
Brent crude $79.36 -$4.41 -5.26% Broke below $80
Gold (December futures) $4,152.60 +$62.10 +1.52% Rose alongside equities

Market breadth (using a verifiable basis in place of advance/decline counts):

  • Of the 11 SPDR sector ETFs, 7 up, 4 down — on a day the index gained +1.79% and set a record, that breadth is only middling.
  • RSP (+1.44%) lagged SPY (+1.80%), while IWM (+1.85%) tracked the broad market. Conclusion: this was not a broad rally, but a structure of "AI heavyweights lifting the index + small caps following + defensives bleeding".
  • ⚠️ Advancers/decliners could not be confirmed via a reliable source; this piece gives no specific figure.

Macro data (three releases today at 10:00 ET):

  • June JOLTS job openings 7.359 million, down 178,000 month over monthsoft.
  • June factory orders -0.3%, versus consensus +0.2% — a miss.
  • Trade deficit $73.3 billion, essentially unchanged.

Correction to the pre-market call: the pre-market explicitly warned that "with the Fed leaning toward a hike, a strong JOLTS print is actually bearish". The actual direction was exactly the opposite — JOLTS came in soft, factory orders missed, the 10Y fell 5.9bp accordingly, and that became a tailwind for today's risk appetite instead. The risk the pre-market feared did not materialize, but the direction of the concern was right (rates were today's key variable) — the data simply landed on the other side.

Sentiment read: risk-on, but a "rotate out of defense into offense" stock-of-existing-money risk-on, not an incremental-money risk-on. Three pieces of evidence: ① the three defensive sectors (utilities -0.56%, health care -0.09%, real estate -0.02%) closed lower together; ② the equal-weight index lagged the cap-weighted one; ③ the VIX rose +4.04% against the tape on a record-high day.


2. Pre-Market List Reconciliation

2.1 Bullish Side (pre-market "priority deep-dive / watch closely")

Ticker Pre-market call Pre-market gap Open change% Today's close change% Measured from the open Delivered? Comment
PLTR priority deep-dive (78) +15~16% +15.52% +29.45% +11.99% ✅ delivered strongly Textbook gap-and-go. Rose another 12% after the gap, closing at 162.66, near the intraday high of 164.52. Strongest of the day
CAT priority deep-dive (82) +10.7% +11.08% +5.60% -4.93% ⚠️ right direction, wrong price Opened at $922 (session high 934.999), then gave it back all day. Anyone buying at the open lost 4.93%; the pre-market warning that "the safety cushion is very thin" held up
ON watch closely (78) +7.0% +4.96% +0.47% -4.24% ❌ did not deliver The gap was almost entirely filled. The pre-market called it "the best risk-reward of the day" — this is the call in most need of review in this piece
VRTX watch closely (72) drifted slightly lower +0.12% +1.70% +1.59% ⚠️ marginal Closed positive in absolute terms, but lagged SPY (+1.80%); the defensive property delivered, the excess return did not
AMRC watch closely · do not chase (67) +33% +40.48% +22.92% -12.50% ✅ thesis delivered / ⚠️ chasers buried The opening price of $31.93 was the high of the entire day, followed by a 12.5% slide. The pre-market judgment — "absolutely do not chase, wait for the gap to fill" — was exactly right

Summary: 5 actively bullish names → 4 rose (80%), 3 beat SPY (60%).

2.2 "Watch Only" (explicitly not recommended for purchase pre-market)

Ticker Pre-market call Today's close change% After hours In hindsight
AMD watch only (wait for earnings) +7.00% -9.13% ✅ correct call. Anyone holding into the close had the entire intraday gain eaten after hours, and then some
SPCX watch only (variance too high) +9.43% -7.59% ✅ correct call. Same as above
SNAP watch only (62) +14.88% -1.38% ❌ clearly missed. The gap was only +5.75%, yet it rose another +8.63% from the open — one of the few names that kept strengthening after the gap
MCD watch only (64) +1.17% +0.02% ✅ broadly correct. Lagged the broad market; the soft earnings read was confirmed

2.3 Avoid List

Ticker Pre-market call Today's close change% Delivered?
USO avoid -5.19%
APA avoid -2.90%
POWL avoid -3.80% ✅ (but intraday it recovered from -12.74% at the open to +9.84%, shorts who chased the open would have had a rough ride)
SPOT avoid -1.68%
CVX avoid -1.44%
DVN avoid -1.17%
XOM avoid -0.71%
OXY avoid -0.69%
AAOI avoid (downgraded from "watch only") +19.44% ❌ wrong call

Avoid list (excluding AAOI): 8/8 all fell, 100% hit rate.

2.4 Hit Rate and Self-Review

Basis Hits Total Hit rate
Bullish names closing positive 4 5 80%
Bullish names beating SPY 3 5 60%
Avoid-list names falling (excluding AAOI) 8 8 100%
"Watch only" correct in hindsight 3 4 75%
Directional calls, total 15 18 83.3%

Three lines of self-review, no whitewashing:

  1. AAOI was a wrong call, and wrong at the method level. The pre-market downgraded it from "watch only" to "avoid" on the grounds of "no new same-day catalyst + a 40% four-day run". The logic itself is fine — but "no new catalyst" does not equal "will fall". Today it rose +19.44%, third strongest of the day. The real reason was a systematic re-rating of the entire semiconductor sector (SOXX +6.80%), and AAOI, as a high-beta elastic name, was carried up by that beta. Lesson: when a single stock's "expensiveness" conflicts with the sector's "strength", using single-stock valuation pre-market to veto sector beta is an overreach of judgment.
  2. ON was the costliest misjudgment. The pre-market spent a full paragraph arguing that "its gap is the mildest at +7%, it is -40% from its high, and short interest is 8.08% of float — the best risk-reward of the day", and wrote it into the final conclusion as one of the five. In reality: it gapped only +4.96%, then filled steadily, closing +0.47%, essentially flat — lagging its sector by more than 6 percentage points on a day semiconductors rose 6.8%. "Deep drawdown + small gap + high short interest" — not one of those three converted into upside today.
  3. SNAP was missed, and the miss has a traceable cause. The pre-market itself spelled out "revenue growth accelerating for two consecutive quarters, P/S of 1.34x at a five-year low, North American revenue +15%" — the evidence chain was complete — yet it stopped at "watch only" because "two variables had no answer". This was not insufficient information; it was treating "there is still uncertainty" as a reason to refuse a bullish call.

3. Theme Verification for Today

Theme Pre-market strength/rank Today's actual Leading / lagging names Stage Conclusion
Broad semiconductor re-rating A-, 5th SOXX +6.80% / SMH +5.55% ARM +17.36%, ALAB +12.65%, SMCI +10.65%, MU +7.62%, QCOM +7.32%, AMD +7.00%, AVGO +6.61%, NVDA +2.56%; lagging: ON +0.47% Main advance (beta repair after the July drawdown) ❌ badly underestimated pre-market. This was the genuinely strongest theme today
AI software monetization S, 1st PLTR +29.45% PLTR; no read-through: MSFT +1.06%, GOOG +0.77% Single-stock event > sector move ✅ right on the leader, ❌ wrong on the breadth. The pre-market's "MSFT/NOW/CRM benefit from the read-across" did not materialize — this was a single-name move, not a theme move
AI data center power and distribution A+, 2nd Clearly divergent AMRC +22.92%, BE +4.48%, VRT +2.62%, ETN +1.49%, GEV +1.17%; POWL -3.80%, XLU -0.56% Building, but already stock-selective ⚠️ partially delivered. Names with their own catalyst rose, those without went nowhere, and the utilities ETF actually fell
Middle East de-risking / falling oil A, 3rd WTI -5.69%, Brent -5.26% Hurt: USO -5.19%, APA -2.90%, XLE -0.46%; benefiting: JETS (airlines) +2.23% Ongoing ✅ fully correct, and the airline beneficiary line that the pre-market tagged "watch only" actually rose +2.23%, beating the broad market
AI optical interconnect (800G/1.6T) C, avoid AAOI +19.44% AAOI Sentiment + beta dual-driven ❌ wrong call (see 2.4)
Restaurant consumption downgrade B (bearish) MCD +1.17%, lagging the broad market MCD Slow variable ✅ correct call (on a relative-return basis)

Two Surprise Themes the Pre-Market Missed

  1. Valuation repair in social/advertising platformsSNAP +14.88%, PINS +5.88% intraday. The pre-market's fundamental breakdown of SNAP was one of the most detailed in the whole piece, yet it never connected SNAP with PINS into a single theme line, and so failed to identify the "low-valuation ad stocks repricing together" sector effect.
  2. The "second layer" of AI networking and interconnectALAB +12.65%, ANET +3.04% (a further +9.44% after hours), SMCI +10.65%. The pre-market's AI theme covered only "compute (AMD/NVDA)" and "power (CAT/AMRC)"; the intermediate layer of "networking/interconnect/servers" never appeared on the list at all, and it outperformed the power line today.

Sector ETF Panorama (descending)

ETF Sector Change%
SOXX Semiconductors +6.80%
SMH Semiconductors +5.55%
XLK Technology +4.98%
XLB Materials +1.94%
XLI Industrials +1.77% (closed at a 52-week high of 186.87)
XLF Financials +0.87%
XLC Communications +0.63%
XLP Consumer staples +0.60%
XLY Consumer discretionary +0.07%
XLRE Real estate -0.02%
XLV Health care -0.09%
XLE Energy -0.46%
XLU Utilities -0.56%

4. After-Hours Earnings Moves (catalysts for tomorrow)

4.1 AMD — Beat Across the Board, and Sold Off 9%

Item Actual Benchmark set pre-market Conclusion
Q2 revenue $11.5 billion (+50% YoY), a company record Consensus $11.305 billion / company guidance $11.2 billion ±$300 million Beat
Non-GAAP EPS $1.66 (+246%) Consensus $1.61 Beat
GAAP EPS $1.38 (+156%)
Non-GAAP gross margin 56% Pre-market threshold: "can it hold 56%" ✅ held
Data Center segment $6.7 billion, +107% YoY, 58% of total revenue Strong
Client & Gaming $3.8 billion (+6%); Client +23%, Gaming -31% Divergent
Embedded $977 million (+19%) Modest
Q3 revenue guidance about $13 billion ±$300 million (YoY ~+41%, QoQ ~+13%) Pre-market threshold: "can it reach $12.5 billion" ✅ cleared it by a wide margin
Q3 gross margin guidance about 56% Maintained

After hours: $471.24, -9.13% (close $518.58).

This is the thing most worth remembering today. The pre-market laid out AMD's two decisive variables very clearly — whether Q3 guidance reaches $12.5 billion, and whether gross margin holds 56%. Both thresholds were cleared, Q3 guidance of $13 billion came in 4% above the benchmark, Data Center was +107% — and the stock still fell 9%.

The pre-market's exact words were: "at a P/S above its five-year upper band, 'in line' may well equal bearish". Reality was one notch more extreme than that sentence: a large beat also equaled bearish. When valuation sits at its own five-year highest percentile (P/S 21.1x), what drives the stock is no longer "was there a beat" but "did the size of the beat exceed the size already priced in". CEO Lisa Su said "EPYC demand is accelerating, Instinct deployments are ramping, Helios is beginning to scale" — there is nothing wrong with the narrative; the problem is the price.

4.2 SPCX — First Report Since Listing, Revenue Doubled and Still Fell 7.6%

Item Actual
Q2 revenue $7.81 billion, versus $4.1 billion a year ago (roughly doubled); consensus about $6.81 billion → a large beat
Operating loss Narrowed to -$143 million (-$970 million a year ago), Starlink operating profit +79%
Net loss per share -$0.09 (better than expected)
Starlink subscriptions 12 million households, doubled YoY, +17% QoQ
ARPU per user -22% YoY (international expansion + low-priced plans)
Capital expenditure $18.37 billion, more than 6x YoY; of which $15.83 billion went to AI
Cash and equivalents $93.5 billion (versus $24.7 billion at the end of Q1, IPO proceeds received)
Company statement CFO Bret Johnsen: on track to reach $100 billion in annualized recurring revenue (ARR) before year-end

After hours: $115.82, -7.59% (close $125.33).

The selling point is not revenue, it is capex. Revenue doubled, losses narrowed 85%, cash of $93.5 billion — all good news. But $18.37 billion of capex in a single quarter (6x YoY), of which $15.83 billion was thrown at AI, layered on top of ARPU -22% YoY, means the market is questioning whether "the subscriber doubling was bought with price cuts, while the money is burning out the door even faster".

The pre-market's three questions on SPCX (the true post-IPO balance sheet, whether the Q1 operating margin of -41.4% could be explained, and Starlink profitability versus the capex cadence) were all answered by tonight's numbers, and the answer is "an extremely strong balance sheet, sharply narrowed losses, but capex expanding out of control". ⚠️ And do not forget: the 20% lock-up tranche release on 8/6 (Thursday) has been confirmed as triggered, estimated pre-market at about 911.5 million shares. Tonight's -7.59% and the supply shock two days out are two separate things, and they will compound.

4.3 Other After-Hours Moves at a Glance

Ticker Close change% After-hours change% After-hours price Reason
ANET +3.04% +9.44% $208.50 Q2 EPS $1.02 vs consensus $0.89, revenue $3.04 billion (+37.7%) vs consensus $2.83 billion; Q3 guidance about $3.3 billion vs consensus $2.95 billion, a fifth straight beat. First $3 billion quarter
APPS +5.67% +24.61% $11.85 Largest after-hours gain; the specific cause could not be confirmed via an authoritative source, so this piece draws no conclusion
UPST +3.02% +12.14% $34.00 After-hours earnings
BKNG +0.81% +5.70% $205.35 After-hours earnings
WYNN -0.77% +5.43% $102.90 After-hours earnings
ALAB +12.65% -1.84% $355.02 Big intraday gain; Q3 guidance beat after hours but the stock slipped modestly
CPNG +2.19% -6.91% $15.62 After-hours earnings
ZETA +7.54% -7.30% $22.49 Big intraday gain given back after hours
LCID +1.04% -7.84% $7.17 After-hours earnings
PINS +5.88% -8.91% $23.30 Q3 guidance below expectations
MTCH +1.73% -9.46% $37.34 After-hours earnings
TDC +7.17% -18.58% $28.00 Largest after-hours decline

One pattern that runs across the whole table: the harder a name rose intraday today, the higher the probability it gave it back after hours (ZETA +7.54%→-7.30%, TDC +7.17%→-18.58%, ALAB +12.65%→-1.84%, AMD +7.00%→-9.13%, SPCX +9.43%→-7.59%). A meaningful share of the intraday broad rally was front-running ahead of earnings, not post-earnings repricing.

One more reconciliation item: Section 6 of the pre-market listed a group of micro-cap names that had fallen sharply pre-market but whose "reason for the decline could not be cross-verified via an authoritative source and therefore was not included in the conclusions" — among them AHCO (AdaptHealth), -27% pre-market, which actually closed -38.04% today. The pre-market's handling — "not included in the conclusions, do not trade on this" — was right (no position when evidence is insufficient), but in hindsight the decline was real.


5. Flows and Sentiment

Sector rotation direction: defensives → semiconductors.

  • Leading: semiconductors (SOXX +6.80%, SMH +5.55%) ≫ technology (XLK +4.98%) > materials (+1.94%) > industrials (+1.77%, XLI closed at a 52-week high).
  • Lagging: utilities (XLU -0.56%), energy (XLE -0.46%), health care (XLV -0.09%), real estate (XLRE -0.02%).
  • Key observation: the decline in utilities sits in tension with the "AI data center power" theme. The pre-market ranked the power line 2nd among themes (A+), but today money bought the "single-stock story" of AI power (AMRC +22.92%), not the "power sector" (XLU -0.56%). That suggests the theme is still bottom-up single-stock alpha and has not yet become top-down sector beta.

VIX and Treasuries:

  • VIX 16.50 (+4.04%), open 15.57, high 16.65, low 15.57 — a one-way climb all day, closing near the intraday high. On a day the S&P set an all-time high, that is an unambiguous hedging-demand signal, directly tied to the event risk of the two heavyweight reports from AMD and SPCX. VIX futures ETFs moved the same way: VIXY +0.49%, VXX +0.90%, UVXY +1.09%.
  • 10Y Treasury 4.625%, -5.9bp, -11.8bp over two days. The driver was a soft JOLTS print and a factory orders miss, not a flight to safety. Falling rates provided direct support to high-valuation growth (PLTR fwd P/E 66.7) — part of PLTR's +29.45% today should be charged to the rates account, not entirely to the earnings account.
  • The dollar index at about 99.97, sitting just under 100 and essentially flat; gold +1.52% rose alongside equities, a combination of a soft dollar plus falling real rates.

Risk-on / risk-off characterization:

Risk-on during the session, turning risk-off after hours.

  • Intraday: oil -5.69% pushed inflation expectations down → rates fell → long-duration assets benefited; JETS +2.23%, XRT +0.97%, KRE +1.01% showed the cyclicals following; IWM +1.85% showed that risk appetite was not confined to large caps.
  • After hours: the two most important reports both "beat and got sold", QQQ -0.31% after hours, SMH -1.02% after hours, SOXX -1.54% after hours, while SPY was +0.08% after hours. Index futures barely moved, but semiconductors weakened on their own after the close — that is the clearest piece of flow language tonight.

6. Outlook for Tomorrow (2026-08-05, Wednesday)

① Theme Continuation

Theme Continuation call Basis
Semiconductors ⚠️ high risk, continuation in doubt Today's SOXX +6.80% main advance was driven by expectations for AMD's earnings, and AMD is -9.13% after hours while SMH/SOXX are already -1.0%/-1.5% after hours. Semiconductors will most likely gap down tomorrow; money that chased today is tomorrow's selling pressure.
AI software monetization Neutral, leaning toward fading After a single-day +29.45%, PLTR enters a digestion phase, -1.54% after hours; and today not a single same-theme name followed it up, so there is no sector to absorb it
AI networking/interconnect ✅ most likely to take the baton ANET +9.44% after hours is tonight's only large-cap positive catalyst, with Q3 guidance of $3.3 billion vs consensus $2.95 billion. ALAB/SMCI already strengthened today
AI data center power Neutral, be selective Names with their own catalyst were strong, those without went nowhere; the decline in XLU shows sector beta has not formed yet
Middle East de-risking / falling oil Continuing, but at a diminishing margin Already down more than 10% cumulatively over two sessions, most of the bearish impulse has been released; from here it depends on whether an agreement actually lands, not on expectations

② Tomorrow's Earnings and Macro Calendar

Macro (all pre-market through the morning)

  • 08:15 ET — July ADP private-sector employment (a leading read on Friday's nonfarm payrolls)
  • 09:45 ET — S&P Global composite/services PMI (July final)
  • 10:00 ET — July ISM non-manufacturing index (the single most important data point of the day)
  • 10:30 ET — EIA crude inventories (a direct variable for oil after two straight declines)

Earnings

  • Pre-market: DIS (Disney), LLY (Eli Lilly), CVS, SHOP
  • After hours: DASH, EBAY, ETSY, EXPE

The following two days (position for these in advance)

  • 08-06 (Thursday): SPCX 20% lock-up tranche release confirmed as triggered (about 911.5 million shares); after hours AMZN (Amazon), ABNB, ROKU; pre-market COP, BDX; 08:30 ET initial jobless claims + Q2 nonfarm productivity
  • 08-07 (Friday) 08:30 ET — July nonfarm payrolls (consensus 80,000–120,000, prior 57,000) — the real macro checkpoint of this week

③ Focus List (ticker + verification point)

Ticker Reason for focus Verification point tomorrow
AMD Beat across the board yet -9.13% after hours, a specimen of "good news gets sold" Whether it can reclaim the gap after the open. If it stabilizes and bounces around $471 → sentiment-driven selling; if it opens lower and keeps weakening → confirmation that high-valuation sectors have entered "good news fully priced" mode, and that signal will spill over to the entire semiconductor space
ANET Tonight's only large-cap positive after-hours catalyst, with Q3 guidance far above consensus Whether the +9.44% after hours can be held in the regular session. It is the single-point test of "can AI networking take the baton from AI compute"
SOXX / SMH Whether today's +6.80% / +5.55% main advance was a one-day sentiment move Whether the first 30 minutes hold against the after-hours decline. ETF follow-through > individual names going it alone is what makes a theme real
SPCX -7.59% after hours, with the 8/6 unlock two days away Volume today already reached 141 million shares (abnormally elevated). Watch whether selling pressure front-runs the unlock
PLTR The first day after +29.45% — digestion or acceleration Whether it can hold the $155 area (the midpoint between today's open of 145.145 and close of 162.55)
XLU / utilities The divergence from the AI power theme If it falls again tomorrow while AMRC/VRT/GEV rise, that confirms the power line is alpha, not beta

④ What to Avoid

  1. Names that led intraday today but gave it back after hours (TDC -18.58%, MTCH -9.46%, PINS -8.91%, ZETA -7.30%, LCID -7.84%, CPNG -6.91%) — after-hours declines usually continue to be realized in the next regular session.
  2. Chasing semiconductors. Today's SOXX +6.80% was achieved on expectations for AMD's earnings, and AMD has now falsified "a beat means the stock goes up". Buying into a sector that has already risen 6.8%, on the day after a bearish earnings reaction, offers terrible odds.
  3. AAOI. Today's +19.44% came from sector beta rather than its own catalyst, and the cumulative gain over five trading sessions is now close to 70%. The pre-market's "avoid" got the direction wrong for one day, but not one of the three risks — no catalyst of its own + not yet stably profitable + an extreme run — has gone away; if anything they are more extreme. This piece maintains avoid, and states plainly that this is a call already proven to have missed short-term gains.
  4. The SPCX unlock window (today through 8/6). This is a supply shock with a fixed date, not a probabilistic event.
  5. Chasing AMRC at the open. Today already demonstrated it in full: the opening price was the high of the day, followed by -12.5%.
  6. Heavy bets ahead of Friday's payrolls. Within a framework where three officials argued for a hike at the Fed's 7/29 meeting, employment data can be read as bearish in either direction.

⑤ Input Notes for Tomorrow's Pre-Market List

  1. "AI networking and interconnect" (ANET / ALAB / SMCI / CRDO, etc.) must be broken out as its own theme line. It outperformed the power line today, and this layer was entirely absent from the pre-market list — this is a structural omission, not a stock-picking error.
  2. Recalibrate the boundaries of the "valuation veto". Today AAOI (vetoed on valuation → +19.44%) and AMD (valuation risk correctly identified → -9.13% after hours) provided two opposite samples. The conclusion is not "valuation is useless", but: valuation determines the direction of the post-earnings reaction, and does not determine intraday direction within a sector beta move. Pre-market, "high-beta names with no catalyst that day" should get "do not participate" rather than "avoid" — the two differ in semantic strength.
  3. Turn "gap size → post-open path" into a fixed field. Today's five gapping names showed a very clean pattern: PLTR, which gapped +15.5%, rose another 12%, while AMRC, which gapped +40.5%, topped out at the open. Gap size and post-open performance were clearly negatively correlated today (AMRC -12.5% < CAT -4.93% ≈ ON -4.24% < AAOI +2.38% < PLTR +11.99%), the only exception being PLTR — and its exception comes from the base condition of "already down 39.5% ahead of earnings". Recommendation: for tomorrow's list, force every gapping name to be tagged with "drawdown from the 52-week high".
  4. The VIX/index divergence should go into Section 0 of the pre-market. Today's combination of "index at a record high + VIX +4%" is a forward signal now shown to work — it accurately foreshadowed tonight's risk release.
  5. AMD's Q3 guidance of $13 billion (+41% YoY) is the pricing benchmark for the entire AI compute chain tomorrow, and even with AMD itself falling, that number remains a positive demand read for NVDA/AVGO/MU/TSM. Do not conflate the stock price reaction with the industry read.

Data Sourcing and Pipeline Failure Log (internal)

⚠️ yfinance has now been unavailable on this machine for a fourth consecutive trading day:

  • yf.Ticker('SPY').history()YFRateLimitError: Too Many Requests, top of stack data.py:361 _get_crumb_csrf — blocked at the crumb-fetch stage, same as the 8/4 pre-market run, never reaching the data endpoint.
  • This piece contains zero yfinance data; all quotes come from backup channels.

Channels that actually worked this run (all HTTP 200):

  • stockanalysis.com/api/quotes/s/{ticker} (the biggest win this run) — this endpoint returns both the regular-session close (p/cp/cl/v, with a u timestamp) and the after-hours price (ep/ecp/eu). This single item solves the problem of sourcing after-hours moves; previously we could only get after-hours percentage changes from WebSearch summaries, with a high error rate. Strongly recommend writing it into the standard pipeline.
  • stockanalysis.com/api/symbol/s/{ticker}/history?range=5D&period=Daily — OHLC, used for this piece's gap / post-open path analysis.
  • cdn.cboe.com/api/global/delayed_quotes/quotes/_VIX.json (the second win) — CBOE's official delayed VIX quote, returning current_price / prev_day_close / open / high / low. This is the only authoritative source that could settle the VIX data conflict this run.
  • cdn.cboe.com/api/global/us_indices/daily_prices/VIX_History.csv — VIX historical OHLC, but only updated through T-1 (latest this run was 08/03); same-day data must go through the quotes endpoint above.
  • investrade.com (closing wrap + weekly calendar), fool.com, ir.amd.com (AMD earnings release).

Channels that failed:

  • stooq.comJS PoW anti-scraping (returns a SHA-256 mining challenge page), consistent with the 8/4 pre-market log, now confirmed as permanently unusable; recommend removing it from the pipeline.
  • thestreet.comHTTP 403; marketscreener.comHTTP 403; cnbc.com → still 403 (not retried).
  • stockanalysis index endpoints: /api/quotes/i/{spx,dji,ixic,rut,vix,tnx,dxy} all return 400, and the /indexes/ page 404s. The site has no usable index endpoint, so index levels can only come from search/web pages. This is the weakest link in this piece.
  • The first serial data-fetch script was killed by Bash's default 120s timeout; switching to ThreadPoolExecutor(8) concurrency + an explicit timeout got it through; individual requests still occasionally hit read operation timed out (XLI, QCOM, ARM failed once each), and succeeded on retry — intermittent jitter, not a block.

Data Conflict Log (handled conservatively in the body)

Item Conflict Handling
VIX 8/4 close Search source A: 15.81 (-0.32%); search source B: 16.51 (+4.10%). ⚠️ Both are arithmetically self-consistent with CBOE's official 8/3 close of 15.86, so a consistency check cannot separate them Settled via the CBOE official endpoint: 16.50 (+4.04%), open 15.57 / high 16.65 / low 15.57. Source B was close to correct, source A was wrong. Had source A been adopted, the core judgment in Sections 0 and 5 about "VIX rising on a record-high day" would have been completely reversed.
Russell 2000 close Source A: 2,981.91 (+1.73%); source B: 3,037 (+55.16, +1.85%) Adopted source B — IWM's measured +1.85% matches it exactly, while source A's +1.73% cannot be reconciled
Dow close Two sources: 54,085.88; ts2.tech: 54,215.07 (+1,036.66) Adopted 54,085.88 (two independent sources agree, and 53,178.41 + 907.47 is self-consistent)
Nasdaq One search returned 25,913.90 and called it the 8/4 close That figure is in fact the 8/3 close and was discarded. 8/4 was 26,584.99
10Y Treasury 4.61% / 4.625% / 4.63% / 4.665% Adopted 4.625% (-5.9bp), from the source giving the most precise bp change; the body does not emphasize the third decimal place
SPCX after-hours decline One source said -7%, another said -5% Adopted the measured -7.59% (stockanalysis after-hours endpoint, 18:02 ET stamp)
QCOM gain tradingkey said +7.46% Adopted the measured +7.32% (endpoint value)
AMZN "first to break $3 trillion market cap" One summary attached the event to 8/4 Falsified by measurement: AMZN closed 8/4 at $277.42, -2.32%. The event belongs to 8/3 and has been removed from the body

Data Error Found in the Pre-Market Report (2026-08-04.md)

⚠️ The S&P 500's 8/3 closing level is wrong in the pre-market report:

  • Section 0 of the pre-market wrote "S&P +1.5% to 7,489.72"
  • The actual 8/3 close was 7,600.50 (+110.78 points); 7,489.72 is the 7/31 close, i.e. it was written in as that day's close by mistake
  • The error is highly self-consistent (110.78 / 7,489.72 = 1.48% ≈ +1.5%), which is why the pre-market's own self-check did not catch it — because the numerator and denominator came from the same misalignment
  • The Dow at 53,178 and the Nasdaq's change were correct in the pre-market report; only the S&P line was wrong
  • This piece has recalculated against 7,600.50: 7,736.52 is +1.79% versus the prior close and breaks the prior high of 7,609.78, so the "all-time high" conclusion holds

Lesson: a self-consistency check cannot detect "whole-group misalignment" errors. Recommend adding a hard check to the pre-market workflow: index closing levels must be cross-aligned with the percentage changes of the ETFs (SPY/DIA/QQQ/IWM), and any item deviating by >0.15pct rejects publication.

Data This Piece Could Not Obtain / Did Not Accept

  1. NYSE advancers/decliners — the only source giving numbers (1,499 vs 701) simultaneously treated the Nasdaq's 8/3 close as 8/4, so credibility is insufficient and it was rejected. The body instead uses "7 up, 4 down among 11 sector ETFs + RSP vs SPY" as a verifiable breadth proxy.
  2. The specific cause of APPS's +24.61% after hours — no authoritative disclosure was found; the body explicitly states "the cause could not be confirmed via an authoritative source, so this piece draws no conclusion".
  3. Earnings line items for UPST / BKNG / WYNN / CPNG / MTCH / LCID / TDC — only after-hours prices were obtained; EPS/guidance were not verified one by one. The body lists only prices and the words "after-hours earnings", and fabricates no beat/miss conclusion.
  4. PINS's specific Q3 guidance figures — only the qualitative "below expectations" is known; the range was not obtained.
  5. SPCX Q2 consensus revenue of $6.81 billion — from a single search summary. ⚠️ The pre-market report already argued that sell-side consensus for SPCX is internally inconsistent (FY2026 $39.12 billion contradicts the quarterly figures); this $6.81 billion is used only to support the qualitative "beat", with no quantitative derivation whatsoever.
  6. AMD Q3 consensus of $12.51 billion — carried over from the pre-market report's captured value, not re-fetched this run. The body uses it as "the benchmark set pre-market" rather than as the current market expectation, and the basis is stated in the table.
  7. A market-wide basis for today's turnover/volume — not obtained. Single-stock volumes are measured endpoint values.

Process Recommendations (carrying over the pre-market's three, adding two)

  1. Promote stockanalysis.com/api/quotes/s/{ticker} to a first-class channel for after-hours recaps. One call gives both the regular session and after hours, and it is the sole reason Section 4 of this piece is possible. Previously after-hours percentage changes depended on WebSearch summaries, a high-error area.
  2. Write cdn.cboe.com/.../quotes/_VIX.json into the fixed data-fetch set. This run, two search sources gave opposite VIX directions and both "looked self-consistent"; only the official source could settle it. VIX direction directly determines the sentiment characterization in Section 0 of the recap and cannot rest on summaries.
  3. Index levels must be cross-checked against ETF percentage changes (see above — the direct lesson from the pre-market S&P error).
  4. The pre-market report's "gap size" field should be paired with a recorded "opening price" and "change from the open"; Section 2's reconciliation in this piece derives all of its value from the combination of those three fields, and they are currently pulled in ad hoc at recap time.
  5. The internal-only hard block in bin/send.py still has not landed (already raised once in the pre-market report). This piece's internal section contains keywords such as yfinance, HTTP 403, rate limiting, stooq, and data-fetch script, and a single missing marker would send the entire section to subscribing clients. Recommend implementing it soon: refuse to send if the markers are not paired.

⚠️ Risk disclaimer: this recap is a post-close information review and observation only and does not constitute investment advice. Data may differ in timeliness or basis — refer to company disclosures / SEC filings, and do not use this directly as a basis for trading.