Rotation check: eight names, defensives, mega-caps, biotech
Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-07-26, from Market Recap: July 8, 2026, The Day in Numbers.
| ticker | prior_close | day_open | day_close | gap_pct | intraday_pct | pct_chg | day_dollar_bn |
|---|---|---|---|---|---|---|---|
| CRNX | 83.53 | 83.52 | 83.45 | -0.01 | -0.08 | -0.1 | 1.38 |
| CVX | 173.97 | 176.8 | 175.92 | 1.63 | -0.5 | 1.12 | 1.36 |
| JNJ | 267.29 | 268.6 | 263.36 | 0.49 | -1.95 | -1.47 | 1.38 |
| LLY | 1235.64 | 1221.1 | 1215.87 | -1.18 | -0.43 | -1.6 | 2.55 |
| META | 615.57 | 614.38 | 603.03 | -0.19 | -1.85 | -2.04 | 5.86 |
| TSLA | 402.88 | 399.38 | 393.92 | -0.87 | -1.37 | -2.22 | 11.71 |
| UNH | 428.18 | 427.14 | 425.56 | -0.24 | -0.37 | -0.61 | 1.28 |
| XOM | 141.65 | 143.44 | 140.96 | 1.26 | -1.73 | -0.49 | 2.08 |
- Rows × columns
- 8 × 8
- Computed
- Completeness
- No missing values
- Source
- US exchange, SIP and OPRA market data
- Licence
- Strasmore terms · free, no signup
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
ticker |
text | 8 distinct values (CRNX, CVX, JNJ…) | |
prior_close |
number | 83.53 to 1,235.64 | US dollars |
day_open |
number | 83.52 to 1,221.1 | US dollars |
day_close |
number | 83.45 to 1,215.87 | US dollars |
gap_pct |
number | -1.18 to 1.63 | percent |
intraday_pct |
number | -1.95 to -0.08 | percent |
pct_chg |
number | -2.22 to 1.12 | percent |
day_dollar_bn |
number | 1.28 to 11.71 |
Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.
the exact SQL behind every number
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-08 00:00:00')) AS prior_close_raw,
toFloat64(argMinIf(open, window_start, window_start >= '2026-07-08 00:00:00')) AS day_open_raw,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 00:00:00')) AS day_close_raw,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-08 00:00:00') / 1e9, 2) AS day_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('CRNX', 'CVX', 'JNJ', 'LLY', 'META', 'TSLA', 'UNH', 'XOM')
AND ((window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00')
OR (window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00'))
GROUP BY ticker
)
SELECT
ticker,
round(prior_close_raw, 2) AS prior_close,
round(day_open_raw, 2) AS day_open,
round(day_close_raw, 2) AS day_close,
round((day_open_raw / prior_close_raw - 1) * 100, 2) AS gap_pct,
round((day_close_raw / day_open_raw - 1) * 100, 2) AS intraday_pct,
round((day_close_raw / prior_close_raw - 1) * 100, 2) AS pct_chg,
day_dollar_bn
FROM per_name
ORDER BY ticker
Run your own version of this
The same 22 years of US equities and 12 years of options data are queryable in SQL or plain English. A free account runs 100 queries a day and takes no card.
More from this analysisMarket Recap: July 8, 2026, The Day in Numbers
Fourteen chip names: prior close, day close, day range, dollar volume, low/high minute ET
table 14×10
→
Top 6 by dollars traded, top 4 by shares traded: July 8 regular hours
table 10×6
→
SPY / QQQ / DIA / IWM: July 8 vs the July 7 close, regular hours
table 4×10
→
Shares per 30-minute ET bucket, regular hours, with % of the day's biggest bucket
series 13×3
→
Treasury yields: July 8 vs July 7, populated maturities + 2s10s
ranking 8×3
→
SPY / QQQ / NVDA / TSLA / MU / SNDK / AVGO: RTH median quoted spread in basis points
ranking 7×2
→
See all 2,170 queries →