Market Recap July 6 2026 — growth-led gap up wey hold
Back from Independence Day break: growth-led gap up, sector split wey pass index move, reverse-split wall, and di tightest quotes for di month. QQQ lead DIA as breadth run green.
Monday, July 6, 2026 — di first session afta Independence Day weekend — open wit one growth-led gap up and hold am. QQQ close 1.39% against DIA 0.42%, di mirror of Thursday rotation, and breadth run green: 3861 liquid names rise against 2242. Most of di move na di reopening gap, price at di tightest index quote of di trailing month. Every number wey dey below na from stored query dem read am.
Di scoreboard
Changes dey compare July 6 last regular-session minute bar wit Thursday July 2 own — one market holiday don pass.
The exact SQL behind every number
WITH prior AS (
SELECT ticker, argMax(close, window_start) AS prior_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
AND window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'
GROUP BY ticker
),
sess AS (
SELECT ticker,
argMin(open, window_start) AS day_open,
argMax(close, window_start) AS day_close,
max(high) AS day_high,
min(low) AS day_low,
round(toFloat64(sum(volume)) / 1e6, 1) AS shares_traded_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
AND window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'
GROUP BY ticker
)
SELECT
s.ticker AS ticker,
round(toFloat64(p.prior_close), 2) AS prior_close,
round(toFloat64(s.day_open), 2) AS day_open,
round(toFloat64(s.day_close), 2) AS day_close,
round((toFloat64(s.day_open) / toFloat64(p.prior_close) - 1) * 100, 2) AS gap_pct,
round((toFloat64(s.day_close) / toFloat64(s.day_open) - 1) * 100, 2) AS intraday_pct,
round((toFloat64(s.day_close) / toFloat64(p.prior_close) - 1) * 100, 2) AS pct_change,
round(toFloat64(s.day_high), 2) AS day_high,
round(toFloat64(s.day_low), 2) AS day_low,
s.shares_traded_m AS shares_traded_m
FROM sess s
JOIN prior p ON s.ticker = p.ticker
ORDER BY s.tickerQQQ 1.39% lead di four index ETFs and DIA 0.42% dey behind — na di exact opposite of Thursday, wen DIA rise and QQQ fall. SPY close 0.87%, IWM 0.45%. Gap versus grind na di real shape of di day: QQQ open 1.01% above Thursday close and add only 0.38% more from open to close; SPY 0.53% gap carry most of im 0.87% day. IWM (0.07%) and DIA (0.17%) barely gap and instead grind higher inside di session.
Di day dey unusual?
The exact SQL behind every number
SELECT round(anyIf(oc_pct, d = toDate('2026-07-06')), 2) AS day_move_pct,
arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-07-06'))), groupArrayIf(abs(oc_pct), d != toDate('2026-07-06'))) + 1 AS abs_move_rank,
count() AS sessions_compared,
toString(min(d)) AS first_session
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
(argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS oc_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2026-06-06 00:00:00')
AND window_start < toDateTime('2026-07-07 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY d
)For di index level, e no be so: SPY open-to-close move of 0.34% rank 13 out of 19 trailing sessions by absolute size — e just dey mid-pack. Di intraday tape bin dey ordinary; na di gap be where di day happen.
Breadth: green tape, growth dey front again
The exact SQL behind every number
WITH per_ticker AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-06 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 00:00:00')) AS day_close,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-06 00:00:00') AS day_dollar_volume
FROM global_markets.delayed_stocks_minute_aggs
WHERE (window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00')
OR (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')
GROUP BY ticker
)
SELECT
countIf(day_close > prior_close AND day_dollar_volume >= 1000000) AS advancers,
countIf(day_close < prior_close AND day_dollar_volume >= 1000000) AS decliners,
countIf(day_close = prior_close AND day_dollar_volume >= 1000000) AS unchanged,
countIf(day_dollar_volume >= 1000000) AS liquid_tickers,
count() AS tickers_traded_both_sessions,
count() - countIf(day_dollar_volume >= 1000000) AS dropped_by_liquidity_filter,
round(100.0 * countIf(day_close > prior_close AND day_dollar_volume >= 1000000)
/ countIf(day_dollar_volume >= 1000000), 1) AS advancer_pct
FROM per_ticker
WHERE prior_close > 0 AND day_close > 03861 advancers, 2242 decliners, 86 unchanged — 62.4% of di liquid tape rise. Index weighting and equal-count breadth gree, both green, where Thursday divide dem. Di filter drop 5361 of 11550 dual-session tickers wey trade under $1M.
Sector by sector: how wide the split be?
Four megacaps no fit make market. The panel dey price the day through the eleven big sector ETFs — one fund per slice of the S&P 500, the same basket every session. Watch the spread between best sector and worst: na the day dispersion.
The exact SQL behind every number
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-06 00:00:00')) AS prior_close,
toFloat64(argMinIf(open, window_start, window_start >= '2026-07-06 00:00:00')) AS day_open,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 00:00:00')) AS day_close,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-06 00:00:00') / 1e9, 2) AS day_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('XLB', 'XLC', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')
AND ((window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00')
OR (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'))
GROUP BY ticker
)
SELECT
ticker,
round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
round((day_open / prior_close - 1) * 100, 2) AS gap_pct,
round((day_close / day_open - 1) * 100, 2) AS intraday_pct,
day_dollar_bn,
round(max((day_close / prior_close - 1) * 100) OVER () - (day_close / prior_close - 1) * 100, 2) AS points_behind_leader
FROM per_name
ORDER BY pct_chg DESC, ticker ASCTechnology (XLK) carry the day for 1.71%, almost all of am na the gap: 1.19% for open, 0.52% over the next six and a half hours. Financials (0.99%) and industrials (0.9%) follow. Then the table turn: five green rows give way to six red, the defensive end — utilities, health care, staples — as low as -1.08%. Top to bottom, 2.79 percentage points separate best from worst for a day wey the S&P tracker move 0.87% — several times the index move, and na the case against reading a green day as one thing. Real estate and utilities run the opposite shape to tech: near-flat opens (0.09%, -0.11%), then a slide all session (-1.01% and -0.92% open to close).
Di big tori for today: di memory rout wey half-reverse
Di memory-and-storage group wey scatter for Wednesday and Thursday bounce back for Monday — but na only half of am.
The exact SQL behind every number
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-06 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 00:00:00')) AS day_close,
maxIf(toFloat64(high), window_start >= '2026-07-06 00:00:00') AS day_high,
minIf(toFloat64(low), window_start >= '2026-07-06 00:00:00') AS day_low,
argMinIf(window_start, toFloat64(low), window_start >= '2026-07-06 00:00:00') AS low_bar,
argMaxIf(window_start, toFloat64(high), window_start >= '2026-07-06 00:00:00') AS high_bar,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-06 00:00:00') / 1e9, 2) AS day_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('MU', 'SNDK', 'STX', 'WDC')
AND ((window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00')
OR (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'))
GROUP BY ticker
)
SELECT
ticker,
round(prior_close, 2) AS prior_close,
round(day_close, 2) AS day_close,
round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
round(day_high, 2) AS day_high,
formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
round(day_low, 2) AS day_low,
formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
round((day_high / day_low - 1) * 100, 2) AS range_pct,
day_dollar_bn
FROM per_name
ORDER BY tickerDi two drive makers lead di rebound: Western Digital 7.14% and Seagate 6%, both of dem reach dia peak for mid-morning (10:44 and 10:39 ET). Di two wey heavy pass no follow: MU add 0.88%, e print im low for di closing bar (15:59); SanDisk finish -0.03% across a 7.27% range. MU still move $30.9 billion of stock, wey pass wetin di other three combine (di MU deep-dive cover im quarter).
Di oda half of di rotation dey inside di megacaps:
The exact SQL behind every number
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-06 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 00:00:00')) AS day_close,
maxIf(toFloat64(high), window_start >= '2026-07-06 00:00:00') AS day_high,
minIf(toFloat64(low), window_start >= '2026-07-06 00:00:00') AS day_low,
argMinIf(window_start, toFloat64(low), window_start >= '2026-07-06 00:00:00') AS low_bar,
argMaxIf(window_start, toFloat64(high), window_start >= '2026-07-06 00:00:00') AS high_bar,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-06 00:00:00') / 1e9, 2) AS day_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'TSLA')
AND ((window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00')
OR (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'))
GROUP BY ticker
)
SELECT
ticker,
round(prior_close, 2) AS prior_close,
round(day_close, 2) AS day_close,
round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
round(day_high, 2) AS day_high,
formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
round(day_low, 2) AS day_low,
formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
round((day_high / day_low - 1) * 100, 2) AS range_pct,
day_dollar_bn
FROM per_name
ORDER BY tickerTSLA run one-way climb go 6.86% — low dey for 09:37 ET, high for di closing bar (15:59) — na di mirror of im Thursday fall. AAPL add 1.49% and NVDA 0.57%; MSFT na di only megacap wey red for -0.7%, im high print for di 09:30 open.
Where the money trade
The exact SQL behind every number
SELECT leaderboard, ticker, dollar_volume_bn, shares_m,
round(100 * if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m)
/ max(if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m)) OVER (PARTITION BY leaderboard), 1) AS pct_of_board_leader
FROM (
SELECT
'by dollars traded' AS leaderboard,
ticker,
round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 2) AS dollar_volume_bn,
round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'
AND ticker NOT IN ('SPCX')
GROUP BY ticker
ORDER BY dollar_volume_bn DESC
LIMIT 6
UNION ALL
SELECT
'by shares traded' AS leaderboard,
ticker,
round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 2) AS dollar_volume_bn,
round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'
AND ticker NOT IN ('SPCX')
GROUP BY ticker
ORDER BY shares_m DESC
LIMIT 4
)
ORDER BY leaderboard ASC, if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m) DESCSPY lead the dollar tape with $31.49 billion, MU ($30.9 billion) dey one step behind — e end MU four-session run for the top (Monday reach Thursday get the receipts). For the share board, SOXS — the 3x-inverse semiconductor ETF — trade 467.1 million shares, e top the count again even as the chips wey e track rise.
The exact SQL behind every number
SELECT
formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
round(sum(toFloat64(volume)) / 1e9, 2) AS shares_bn,
round(100 * sum(toFloat64(volume)) / max(sum(toFloat64(volume))) OVER (), 1) AS pct_of_biggest_bucket
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'
GROUP BY et_time
ORDER BY et_time1.96 billion shares for the first half hour, 0.68 billion trough for 14:30, 2.1 billion enter the 15:30 close — the normal intraday smile, e heavy pass for both ends.
Di options tape
The exact SQL behind every number
WITH
(
SELECT (any(underlying_symbol), any(toFloat64(strike_price)), any(option_type),
any(toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6)))),
sum(size), count(), round(avg(toFloat64(price)), 3))
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-07 00:00:00'
GROUP BY ticker
ORDER BY sum(size) DESC
LIMIT 1
) AS top_contract,
(
SELECT round(toFloat64(argMax(close, window_start)), 2)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'
) AS spy_regular_close
SELECT
round(count() / 1e6, 2) AS option_prints_m,
round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
round(100.0 * sumIf(size, option_type = 'C') / sum(size), 1) AS call_pct_of_volume,
round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260706') / sum(size), 1) AS same_day_expiry_pct,
round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260706')) / 1e6, 2) AS same_day_contracts_m,
round(toFloat64(sumIf(size, underlying_symbol = 'SPY')) / 1e6, 2) AS spy_contracts_m,
round(toFloat64(sumIf(size, underlying_symbol = 'QQQ')) / 1e6, 2) AS qqq_contracts_m,
round(toFloat64(sumIf(size, underlying_symbol = 'TSLA')) / 1e6, 2) AS tsla_contracts_m,
top_contract.1 AS top_contract_underlying,
top_contract.2 AS top_contract_strike,
top_contract.3 AS top_contract_type,
if(top_contract.3 = 'C', 1, 0) AS top_contract_is_call,
top_contract.4 AS top_contract_expiry,
round(toFloat64(top_contract.5) / 1e6, 2) AS top_contract_volume_m,
round(top_contract.7, 3) AS top_contract_avg_price,
round(spy_regular_close - top_contract.2, 2) AS spy_close_minus_strike
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-07 00:00:00'Options trade 60.98 million contracts across 10.53 million prints, 58.4% of am na calls. Same-day expiries carry 38.7% of di tape (23.57 million contracts) — na normal Monday 0DTE share, e dey below Thursday own wey double-loaded for holiday-eve figure. Di contract wey busy pass na di same-day SPY $751 call, 1.08 million contracts for average $0.564, as SPY close $0.3 above di strike — e dey in di money. Na call dey top di board, where Thursday finish on a put.
Di quote tape: di gap open trade for wide market?
Under every price wey dey up, na di quote stream dey — di National Best Bid and Offer, dem dey re-quote am steady for every listed name. Gap open na where quotes fit turn wahala, so we dey measure am, every session.
The exact SQL behind every number
SELECT
round(countIf(toDate(sip_timestamp) = toDate('2026-07-06')) / 1e6, 2) AS jul6_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-02')) / 1e6, 2) AS jul2_updates_m,
round((countIf(toDate(sip_timestamp) = toDate('2026-07-06')) / countIf(toDate(sip_timestamp) = toDate('2026-07-02')) - 1) * 100, 1) AS day_over_day_pct,
round(countIf(sip_timestamp >= '2026-07-06 13:30:00' AND sip_timestamp < '2026-07-06 14:00:00') / 1e6, 2) AS jul6_open_half_hour_m,
round(countIf(sip_timestamp >= '2026-07-06 17:30:00' AND sip_timestamp < '2026-07-06 18:00:00') / 1e6, 2) AS jul6_midday_half_hour_m,
round(countIf(sip_timestamp >= '2026-07-06 19:30:00' AND sip_timestamp < '2026-07-06 20:00:00') / 1e6, 2) AS jul6_close_half_hour_m
FROM global_markets.cache_stocks_quotes
WHERE (sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00')
OR (sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-07 00:00:00')Di tape carry 391.96 million NBBO updates for Monday against 597.22 million Thursday — -34.4%, na one-third fewer messages pass di pre-holiday session — and dem jam di open well-well: 58.66 million for di first half hour against 20.74 million by 1:30pm and 33.7 million into di close. Quotes wey no reach Thursday own, but no be wider ones:
The exact SQL behind every number
SELECT
ticker,
round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-06 13:30:00' AND sip_timestamp < '2026-07-06 13:42:00'), 2) AS open_spread_bps,
round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-06 17:30:00' AND sip_timestamp < '2026-07-06 17:42:00'), 2) AS midday_spread_bps,
round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-06 13:30:00' AND sip_timestamp < '2026-07-06 13:42:00')
- quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-06 17:30:00' AND sip_timestamp < '2026-07-06 17:42:00'), 2) AS spread_delta_bps,
round(countIf(sip_timestamp >= '2026-07-06 13:30:00' AND sip_timestamp < '2026-07-06 13:42:00') / 1e3, 1) AS open_updates_k,
round(countIf(sip_timestamp >= '2026-07-06 17:30:00' AND sip_timestamp < '2026-07-06 17:42:00') / 1e3, 1) AS midday_updates_k,
round(countIf(sip_timestamp >= '2026-07-06 13:30:00' AND sip_timestamp < '2026-07-06 13:42:00') / countIf(sip_timestamp >= '2026-07-06 17:30:00' AND sip_timestamp < '2026-07-06 17:42:00'), 1) AS quote_rate_ratio,
round(count() / 1e6, 2) AS session_updates_m,
countIf(bid_price <= 0 OR ask_price <= 0 OR bid_price > ask_price) AS dropped_invalid_quotes
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('DIA', 'IWM', 'MSFT', 'MU', 'QQQ', 'SNDK', 'SPY', 'STX', 'TSLA', 'WDC')
AND sip_timestamp >= '2026-07-06 13:30:00' AND sip_timestamp < '2026-07-06 20:00:00'
GROUP BY ticker
ORDER BY tickerDi bid-ask spread na di cost of crossing, for basis points of di mid-price — 1 bp na one penny on top $100 stock. No checked name quote tighter for di gap first twelve minutes pass midday, and SPY own touch dey identical for both (0.27 bps, 0 bps of change) even as e re-quote 3x faster into di open. Di width penalty land for single names, no be index funds: SanDisk pay di most (+12.9 bps, 8.16 to 21.07), MU +3.63, TSLA +2.89, against QQQ own 0.42 bps on top 0.83 bps touch. Seagate answer "no be everything liquid?": 30.94 bps wide for di open, over hundred times SPY own touch.
The exact SQL behind every number
SELECT
round(anyIf(avg_spread_cents, d = toDate('2026-07-06')), 3) AS jul6_avg_spread_cents,
arrayCount(x -> x < anyIf(avg_spread_cents, d = toDate('2026-07-06')), groupArrayIf(avg_spread_cents, d != toDate('2026-07-06'))) + 1 AS tightness_rank,
count() AS sessions_compared,
round(max(avg_spread_cents), 3) AS widest_session_cents,
round(avgIf(avg_spread_cents, d != toDate('2026-07-06')), 3) AS other_sessions_avg_cents,
replaceAll(formatDateTime(min(d), '%M %e, %Y'), ' ', ' ') AS first_session,
sum(dropped_invalid) AS dropped_invalid_quotes
FROM (
SELECT toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS d,
avgIf(toFloat64(ask_price - bid_price), bid_price > 0 AND ask_price >= bid_price) * 100 AS avg_spread_cents,
countIf(NOT (bid_price > 0 AND ask_price >= bid_price)) AS dropped_invalid
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'SPY'
AND sip_timestamp >= toDateTime('2026-06-04 00:00:00')
AND sip_timestamp < toDateTime('2026-07-07 00:00:00')
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY d
)Across di whole regular day, July 6 na SPY tightest session of di trailing month: na update-weighted average quoted spread of 1.815 cents, rank 1 of 21 sessions since June 4, 2026, against month wey dey average 2.337 cents and reach 2.865 for im widest. Quote count wey holiday thin still give di index buyer di cheapest touch for board.
Rates: di curve quiet well-well for di long weekend
The exact SQL behind every number
SELECT
t.1 AS curve_point,
round(t.2, 2) AS jul6_yield_pct,
round((t.2 - t.3) * 100) AS session_change_bp
FROM (
SELECT arrayJoin([
('1 month', toFloat64(d.yield_1_month), toFloat64(p.yield_1_month)),
('3 month', toFloat64(d.yield_3_month), toFloat64(p.yield_3_month)),
('1 year', toFloat64(d.yield_1_year), toFloat64(p.yield_1_year)),
('2 year', toFloat64(d.yield_2_year), toFloat64(p.yield_2_year)),
('5 year', toFloat64(d.yield_5_year), toFloat64(p.yield_5_year)),
('10 year', toFloat64(d.yield_10_year), toFloat64(p.yield_10_year)),
('30 year', toFloat64(d.yield_30_year), toFloat64(p.yield_30_year)),
('2s10s spread', toFloat64(d.yield_10_year - d.yield_2_year), toFloat64(p.yield_10_year - p.yield_2_year))
]) AS t
FROM (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-06') AS d,
(SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-02') AS p
)Di curve no really move for di long weekend. Di 10-year siddon for 4.48% and di 2s10s spread dey for 0.35 percentage points, both of dem dey within one or two basis points of wetin dem print for July 2; na di 3-month be di only one wey move wey get level for 5 basis points.
Di calendar wey dey behind di day
The exact SQL behind every number
WITH
(
SELECT (count(), uniqExact(publisher))
FROM global_markets.stocks_news
WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-06'
) AS news,
(
SELECT (argMax(t, n), max(n))
FROM (
SELECT t, count() AS n
FROM (
SELECT arrayJoin(tickers) AS t
FROM global_markets.stocks_news
WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-06'
)
WHERE t != 'SPCX'
GROUP BY t
)
) AS top_news
SELECT
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-06') AS ex_dividend_records,
(SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06') AS splits_executed,
(SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06') AS reverse_splits,
(SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06') AS forward_splits,
(SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-06') AS ipos_listed,
(SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-06') AS sec_filings,
(SELECT uniqExactIf(accession_number, form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-06') AS insider_form4_filings,
(SELECT uniqExactIf(accession_number, form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-06') AS filings_8k,
news.1 AS news_articles,
news.2 AS news_publishers,
top_news.1 AS most_covered_ticker,
top_news.2 AS most_covered_articles118 dividend records go ex-dividend, 15 splits execute, 0 new listings enter, and di SEC index record 3161 filings — 1219 Form 4s, 201 8-Ks — e be lighter book pass di Thursday before holiday. Di news feed carry 236 articles, di name wey dem cover pass na NVDA at 25.
Di reverse-split wall wey dey behind di mover screens
14 out of di 15 splits na reverse splits — share consolidations, most of dem dey for sub-dollar prices — against 1 forward. One reverse split dey turn many old shares into one for one price wey high proportionally, wey one screen wey dem no adjust go report as triple-digit "gain" for where dem no gain anything. Di whole wall:
The exact SQL behind every number
SELECT
s.ticker AS ticker,
toFloat64(s.split_from) AS old_shares,
toFloat64(s.split_to) AS new_shares,
round(toFloat64(s.split_from) / toFloat64(s.split_to), 0) AS old_shares_per_new,
p.prev_close AS jul2_close,
d.day_close AS jul6_close,
round((d.day_close / p.prev_close - 1) * 100, 1) AS unadjusted_pct_chg
FROM (
SELECT ticker, any(split_from) AS split_from, any(split_to) AS split_to
FROM global_markets.stocks_splits
WHERE execution_date = '2026-07-06'
GROUP BY ticker
) s
INNER JOIN (
SELECT ticker, round(toFloat64(argMax(close, window_start)), 2) AS prev_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'
AND ticker IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06')
GROUP BY ticker
HAVING prev_close > 0
) p ON s.ticker = p.ticker
INNER JOIN (
SELECT ticker, round(toFloat64(argMax(close, window_start)), 2) AS day_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'
AND ticker IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06')
GROUP BY ticker
HAVING day_close > 0
) d ON s.ticker = d.ticker
ORDER BY unadjusted_pct_chg DESC, ticker ASCEvery single one of di 12 rows na consolidation wey dey print triple-digit or better "gain" for di raw tape — from 31450% for di top (na 200-for-1 consolidation, unadjusted close $0.02 to $6.31) come down to 226.1% for di smallest ratio (3-for-1). Halfway down di table na di cleanest teaching case: one 10-for-1 reverse split carry TXXS unadjusted close from $2.35 Thursday go $24.34 Monday — ten old shares dey become one, no be tenfold rally. One raw-price-change screener dey put dis whole table above every real mover; our own dey exclude splits. Thursday CRWD forward split fake di opposite, one crash.
Di session, wey dem verify — di first one afta di break
The exact SQL behind every number
SELECT
formatDateTime(min(toTimeZone(window_start, 'America/New_York')), '%H:%i') AS first_spy_bar_et,
formatDateTime(max(toTimeZone(window_start, 'America/New_York')), '%H:%i') AS last_spy_bar_et,
count() AS spy_minute_bars,
countIf(window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00') AS regular_session_bars,
uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00') AS day_sessions,
(SELECT count() FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-03 00:00:00' AND window_start < '2026-07-04 00:00:00') AS jul3_spy_bars,
(SELECT replaceAll(formatDateTime(min(date), '%M %e, %Y'), ' ', ' ') FROM global_markets.stocks_market_holidays WHERE date > '2026-07-06' AND status = 'closed') AS next_closure_date,
(SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-06' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-06 00:00:00' AND window_start < '2026-07-07 00:00:00'July 6 na full session, no be early close: SPY bars dey run from 04:00 go reach 19:59 New York time wit exactly 390 regular-window bars. Di Friday before, July 3, print 0 SPY bars — na full closure for Independence Day, becos July 4 fall for Saturday. Next closure: Labor Day, September 7, 2026. Di four-session week before di break dey measured for di week recap.
FAQ
How stock market take be for July 6, 2026?
All four big index ETFs close up — QQQ 1.39%, SPY 0.87%, IWM 0.45%, DIA 0.42% — with 62.4% of liquid names dey advance, most of am na overnight gap.
Which sector lead for July 6, 2026?
Technology (XLK) lead di eleven sector ETFs at 1.71%, di defensive end dey as low as -1.08% — a best-to-worst spread of 2.79 percentage points, wey be several times di S&P tracker im 0.87% move.
Stock market open for Independence Day 2026?
No. July 4 fall for Saturday, and di exchanges observe Independence Day for Friday July 3 — na closure wey di 0 SPY minute bars wey print show for up. July 6 na di first session wey dem come back.
Why some stocks show big one-day gains for July 6?
14 reverse splits execute. To consolidate many old shares into one at a price wey high proportionally dey make unadjusted screen report "gain" of hundreds of percent where di holder im position value no change — di 12 names wey dey up na all of dat kind.
Spreads wide for di gap open?
Only for single stocks. SPY im median quoted spread for di first twelve minutes na 0.27 basis points, wey be di same as im midday level; SanDisk quote 12.9 bps wider dan midday.
Data notes
- Dollar volume na per-minute proxy — close × volume wey dem sum for each minute bar.
- Di sector basket na declared method, no be vendor field: di eleven big S&P sector ETFs (XLB, XLC, XLE, XLF, XLI, XLK, XLP, XLRE, XLU, XLV, XLY), di same set every session.
- Quoted spreads na medians of (ask − bid) ÷ mid over valid two-sided quotes; one-sided, zero and crossed quotes dem dey drop dem and count dem for di panel.
- One reused-symbol listing dem exclude am from di leaderboards pending entity verification (receipts).
How We Do Am
- Di period na one single trading session (1 session, wey we confam from di bars wey we see). We dey store timestamps for UTC, den we convert am to New York time inside di queries. “Close” mean di last regular-session minute bar; day changes dey compare July 6 wit July 2 — di session wey dey before di July 3 closure, wey we confam from bars, no be assumption.
- We dey cast decimals to 64-bit floats before we do ratio arithmetic. We dey read panels once, for di time wey we dey write am, through di gated read-only path.
Every panel na stored query result — chart, table, and SQL na one object. Copy any of dem put inside Strasmore terminal make you use am for yourself. Di session wey don pass: July 2. Di next one: July 7.