SpaceX enta Nasdaq-100: wetin di index-add trade be
SpaceX fast-tracked Nasdaq-100 add and di giant closing auction wey price am: Matt Levine account, verified and extended on our own tick tape.
SpaceX enta Nasdaq-100 index for Tuesday, July 7, 2026 — and di biggest trade for di mata print for afternoon before: 74.94 million shares of SPCX for one single closing-auction print at $160.42. Matt Levine cover am for Money Stuff di next morning; dis post check hin numbers against our tick tape, den go where newsletter no fit reach — auction by auction, minute by minute, SQL under every panel.
One index add wey dem fast-track
Nasdaq add SpaceX join Nasdaq-100 wey start dey effective Tuesday, July 7, 2026 — e no even reach one month afta di June 12 debut our first-month deep dive dey cover receipt by receipt. Funds wey dey track di index — roughly $800 billion in assets, including Invesco own QQQ, per Wall Street Journal reporting wey Levine cite — dey transact for di official closing price of di last session before di change go take effect: one giant matched trade for 4:00 p.m. ET, di closing auction.
"Why yesterday closing auction big pass as e dey usually be? Dis one no be any big mystery." — Matt Levine, Money Stuff (Bloomberg Opinion), July 7, 2026
One ground rule: we dey measure wetin print; di mechanism story — who buy, who supply, why — na Levine and di literature own, we go attribute am anywhere e show.
One symbol, two companies
SPCX na symbol wey dem don reuse, so verification na di first tin: di ticker bin dey trade as one thin fund near $22 till April 2026, e go silent for May, and dem reassign am to Space Exploration Technologies Corp. for di June 12 listing. Di receipt panel mark dat boundary — 13 minute bars for di old entity last active month (2026-04), between $21.92 and $23.64; one silent May (5 rows for six calendar months); den 10960 June bars between $146.88 and $225.64. No row wey dey before June 12 here belong to SpaceX.
The exact SQL behind every number
WITH
(
SELECT (toString(listing_date), issuer_name)
FROM global_markets.stocks_ipos
WHERE ticker = 'SPCX'
ORDER BY listing_date DESC LIMIT 1
) AS ipo
SELECT
formatDateTime(toStartOfMonth(window_start), '%Y-%m') AS month,
count() AS minute_bars,
round(min(toFloat64(low)), 2) AS low_usd,
round(max(toFloat64(high)), 2) AS high_usd,
ipo.1 AS spacex_listing_date,
ipo.2 AS issuer
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPCX'
AND window_start >= '2026-01-01 00:00:00' AND window_start < '2026-07-01 00:00:00'
GROUP BY month
ORDER BY monthLevine three sessions, wey dem verify
Levine dey print three readings per session, from Bloomberg terminal pages. Wednesday, July 1: 109.3 million shares trade, about 5.4 million for the closing auction, close na $157.54. Thursday, July 2: 61.3 million shares, 2.6 million, $162. Monday, July 6: 188.8 million shares, 74.9 million, $160.42 — e drop about 1% for day wey the broad market rise. Our tape show the same picture:
The exact SQL behind every number
SELECT
toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS session,
round(toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]))) / 1e6, 1) AS day_matched_shares_m,
round(toFloat64(maxIf(size, has(conditions, 8))) / 1e6, 2) AS auction_shares_m,
round(100 * toFloat64(maxIf(size, has(conditions, 8))) / toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]))), 1) AS auction_pct_of_day,
round(toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8))), 2) AS official_close,
countIf(has(conditions, 8)) AS code8_prints,
formatDateTime(toTimeZone(argMaxIf(sip_timestamp, (size, sip_timestamp), has(conditions, 8)), 'America/New_York'), '%H:%i:%S') AS auction_time_et
FROM global_markets.stocks_trades
WHERE ticker = 'SPCX'
AND ((sip_timestamp >= '2026-07-01 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'))
GROUP BY session
ORDER BY sessionThe auction sizes and official closes match hin own reach the rounding — 5.38 million at $157.54, 2.58 million at $162, 74.94 million at $160.42 — each session show exactly one code-8 auction print (the receipt column). Day totals land within few percent of hin own (112.4, 61.6, and 188.9 million shares; vendor accounting differ for the edges; check data notes). The extra column na one wey e no print — the cross share of each day: 4.8% for Wednesday, 4.2% for Thursday, 39.7% for Monday.
Every SPCX closing auction since listing
“Order of magnitude” na wetin dem fit measure. Dis na di closing cross for all 15 SPCX sessions, from listing reach add-eve:
The exact SQL behind every number
SELECT
toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS session,
round(toFloat64(maxIf(size, has(conditions, 8))) / 1e6, 2) AS auction_shares_m,
round(100 * toFloat64(maxIf(size, has(conditions, 8))) / toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]))), 1) AS auction_pct_of_day,
round(toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]))) / 1e6, 1) AS day_matched_shares_m,
round(toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8))), 2) AS official_close,
countIf(has(conditions, 8)) AS code8_prints
FROM global_markets.stocks_trades
WHERE ticker = 'SPCX'
AND sip_timestamp >= '2026-06-12 00:00:00' AND sip_timestamp < '2026-07-07 00:00:00'
GROUP BY session
ORDER BY sessionDi median SPCX cross before July 6 measure 4.49 million shares. July 6 print 74.94 million — 16.7 times dat prior median. Levine tok hold ground afta di measurement. Two earlier jumbo closes stand out: 52.28 million shares on 2026-06-18 — na expiration Thursday, di session before di June 19 closure — and 39.56 million on 2026-06-26 (31.1% of dat day). Na calendar context, no be explanation — and none of dem match July 6 on any axis: di add-eve cross big pass for shares and carry 39.7% of im day.
July 6, minute by minute
Add-eve, minute by minute: SPCX open for $165.95, e stand for $162.18 by 1:00 p.m. ET, and e just dey slide. The 3:30 p.m. minute bar stretch from $155.42 go reach $155.92 — Levine im "$155.50 at 3:30 p.m." checkpoint dey inside that bar — and the bar close for $155.46. From there go reach the bell, the tape climb $4.96 on top 19.3 million continuous shares, the final continuous print land for $160.5 by 16:00:00 ET. The five-minute path wey dey below (78 buckets) end for $160.4:
The exact SQL behind every number
SELECT
formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 5 MINUTE), '%H:%i') AS et_time,
round(toFloat64(argMax(close, window_start)), 2) AS price_usd,
round(toFloat64(sum(volume)) / 1e6, 2) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPCX'
AND window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'
GROUP BY et_time
ORDER BY et_timeEvery checkpoint sit for one row wey dem fit audit, with the print wey matter:
The exact SQL behind every number
WITH
(
SELECT (
round(toFloat64(argMin(open, window_start)), 2),
round(toFloat64(argMaxIf(close, window_start, window_start < '2026-07-06 17:01:00')), 2),
round(toFloat64(argMaxIf(close, window_start, window_start < '2026-07-06 19:31:00')), 2),
round(toFloat64(minIf(low, window_start = '2026-07-06 19:30:00')), 2),
round(toFloat64(maxIf(high, window_start = '2026-07-06 19:30:00')), 2),
round(toFloat64(sumIf(volume, window_start >= '2026-07-06 19:30:00')) / 1e6, 1)
)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPCX'
AND window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'
) AS bars,
(
SELECT round(quantileDeterministic(0.5)(auction_m, day_key), 2)
FROM (
SELECT
toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS d,
toUInt64(toYYYYMMDD(toDate(toTimeZone(sip_timestamp, 'America/New_York')))) AS day_key,
toFloat64(maxIf(size, has(conditions, 8))) / 1e6 AS auction_m
FROM global_markets.stocks_trades
WHERE ticker = 'SPCX'
AND sip_timestamp >= '2026-06-12 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
GROUP BY d, day_key
)
) AS med_prior,
(
SELECT round(toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8))), 2)
FROM global_markets.stocks_trades
WHERE ticker = 'SPCX'
AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
) AS spcx_prev_close,
(
SELECT (
round(toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8) AND sip_timestamp < '2026-07-03 00:00:00')), 2),
round(toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8) AND sip_timestamp >= '2026-07-06 00:00:00')), 2)
)
FROM global_markets.stocks_trades
WHERE ticker = 'SPY'
AND ((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'))
) AS spy,
(
SELECT maxIf(sip_timestamp, has(conditions, 8))
FROM global_markets.stocks_trades
WHERE ticker = 'SPCX' AND sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-07 00:00:00'
) AS auction_ts
SELECT
bars.1 AS open_0930,
bars.2 AS px_1300_et,
bars.3 AS px_1530_close,
bars.4 AS px_1530_bar_low,
bars.5 AS px_1530_bar_high,
bars.6 AS shares_1530_1559_m,
round(toFloat64(argMaxIf(price, (sip_timestamp, sequence_number), sip_timestamp < auction_ts AND NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38]))), 2) AS last_continuous_px,
formatDateTime(toTimeZone(maxIf(sip_timestamp, sip_timestamp < auction_ts AND NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38])), 'America/New_York'), '%H:%i:%S') AS last_continuous_et,
countIf(has(conditions, 8)) AS code8_prints,
round(toFloat64(maxIf(size, has(conditions, 8))) / 1e6, 2) AS auction_shares_m,
round(toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8))), 2) AS auction_price,
formatDateTime(toTimeZone(auction_ts, 'America/New_York'), '%H:%i:%S') AS auction_time_et,
round(toFloat64(maxIf(size, has(conditions, 8))) * toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8))) / 1e9, 2) AS auction_notional_busd,
round(toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8))) - bars.3, 2) AS close_minus_1530_usd,
round(bars.1 - toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8))), 2) AS open_minus_close_usd,
round(bars.2 - toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8))), 2) AS px1300_minus_close_usd,
round(bars.1 - bars.2, 2) AS open_minus_1300_usd,
round((toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8))) - toFloat64(argMaxIf(price, (sip_timestamp, sequence_number), sip_timestamp < auction_ts AND NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38])))) * 100, 1) AS cross_vs_last_tick_cents,
round((1 - toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8))) / spcx_prev_close) * 100, 2) AS spcx_close_below_prior_pct,
spy.2 AS spy_close_jul6,
round((spy.2 / spy.1 - 1) * 100, 2) AS spy_day_change_pct,
med_prior AS median_prior_auction_m,
round(toFloat64(maxIf(size, has(conditions, 8))) / 1e6 / med_prior, 1) AS auction_vs_prior_median_x
FROM global_markets.stocks_trades
WHERE ticker = 'SPCX'
AND sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-07 00:00:00'The auction: 74.94 million shares for $160.42, dem stamp am 16:00:00 ET — $12.02 billion for just one print. Levine carry Bloomberg Intelligence im Rob Du Boff estimate say at least $5.4 billion of index-fund buying happen for that close, about 31.2 million out of the 74.9 million shares. The figures no be the same by design: our own na the whole print, both sides; im own na the estimated index-demand slice wey dey inside am.
The close no be spike. The official close print $5.53 below SPCX im own 9:30 a.m. open and $1.76 below im 1:00 p.m. price; the session finish 0.98% under Thursday close while SPY rise 0.87% (Monday recap get the whole session). Levine, for one auction wey get plenty supply:
"If e dey work, supply go match demand for the closing auction, and the price no go move too much." — Matt Levine, Money Stuff (Bloomberg Opinion), July 7, 2026
By that yardstick, cross wey be 16.7 times the prior median wey print within cents of the last continuous trade ($160.42 against $160.5) na the trade wey dey function. Na im framing; na our measurements.
Who dey for di oda side
Here di tape stop and na attribution take over. For Levine im own tori, index demand dey gada for di add-date close; liquidity providers — wey before na bank desks, but now na mostly multistrategy pod shops — dey accumulate for di sessions wey don pass and supply inside di auction, dem dey earn di gap between dia average buy price and di auction price.
"Di banks dia incentives here dey largely benign: Dia job na to smooth out demand." — Matt Levine, Money Stuff (Bloomberg Opinion), July 7, 2026
For scale e point to Bloomberg im Nishant Kumar report wey talk say two Millennium index-rebalance teams make roughly $3.7 billion for June on index-change trades, and for di wider frame, two papers: Chinco and Sammon (2024), wey put passive ownership near 33.5% of di US market — about double di 16% headline figure — and Greenwood and Sammon (2024), wey document di index-add price effect dey shrink across di decades. None of those claims dey measurable on our tape; none dey conflict with wetin dey.
Where di rest of Monday volume show
Di cross carry 39.7% of July 6 matched volume. Di rest split two ways: 45.1 million shares for continuous on-exchange trading (23.9%); 68.8 million off-exchange through FINRA trade-reporting facilities (36.4%) — na di bucket wey dark pools, wholesalers, and negotiated block trades dey report into. One trade out-print di entire continuous on-exchange session.
The exact SQL behind every number
SELECT
multiIf(has(conditions, 8), 'Closing auction (one print)', exchange = 4, 'Off-exchange (TRF)', 'On-exchange, continuous') AS bucket,
round(toFloat64(sum(size)) / 1e6, 1) AS shares_m,
round(100 * toFloat64(sum(size)) / sum(toFloat64(sum(size))) OVER (), 1) AS pct_of_matched,
count() AS prints
FROM global_markets.stocks_trades
WHERE ticker = 'SPCX'
AND sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-07 00:00:00'
AND NOT hasAny(conditions, [15, 16, 38])
GROUP BY bucket
ORDER BY bucketDi morning afta
Levine yarn say SPCX trade go down again Tuesday morning — and di shape of dat morning deserve one panel: dis na selling wey happen through di session, no be overnight gap. SpaceX open Tuesday for $158.92 — just 0.9% below di $160.42 add-eve close — den e trade one $150.12–$159.3 range and sit 5.2% under dat close by 12:59 ET, di panel fixed edge. (Dis panel first edition, wey dem write July 8 on top tape wey dem never fully ingest, show one deeper "open" — na artifact of missing early bars, dem correct am here for di complete session; check data notes.)
The exact SQL behind every number
WITH
(
SELECT round(toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8))), 2)
FROM global_markets.stocks_trades
WHERE ticker = 'SPCX'
AND sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-07 00:00:00'
) AS monday_close
SELECT
count() AS morning_bars,
formatDateTime(toTimeZone(max(window_start), 'America/New_York'), '%H:%i') AS last_bar_et,
round(toFloat64(argMin(open, window_start)), 2) AS open_0930,
round((1 - toFloat64(argMin(open, window_start)) / monday_close) * 100, 1) AS open_below_monday_close_pct,
round(min(toFloat64(low)), 2) AS morning_low,
round(max(toFloat64(high)), 2) AS morning_high,
round(toFloat64(argMax(close, window_start)), 2) AS px_1259_et,
round((1 - toFloat64(argMax(close, window_start)) / monday_close) * 100, 1) AS px_1259_below_monday_close_pct,
round(toFloat64(sum(volume)) / 1e6, 1) AS morning_shares_m,
monday_close AS monday_official_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPCX'
AND window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 17:00:00'Di panel above deliberately stop for 12:59 p.m. ET (data notes). Di complete July 7 session — di stock first inside di index, and di day wey im slide back to di IPO price finish — dem measure am end to end for SpaceX stock round trip from di peak.
SpaceX Nasdaq-100 FAQ
Why SpaceX enter Nasdaq-100 so quick?
Nasdaq index rule dey allow dem add stock between di December reconstitution wey dem dey do every year, and wetin Levine quote from press reports (including WSJ) talk say dem fast-track SpaceX entry for July 7, 2026, just within one month after di June 12 IPO.
Wetin be index-add closing auction?
When stock enter index, di funds wey dey track am go transact for di official closing price of di last session before di change take effect — na price wey di closing auction set, one matched print for 4:00 p.m. ET. For July 6, 2026, SPCX add-eve cross carry 39.7% of im day matched volume.
SpaceX stock spike when e join Nasdaq-100?
E no show for our tape. Di add-eve close print $5.53 below di day own open and 0.98% under di prior close — after $4.96 climb for di final half hour — and di next morning e open 0.9% lower still. Na observation from di tape, no be verdict on anybody execution.
How big be SpaceX index-add closing auction?
74.94 million shares for one print at $160.42 — $12.02 billion, 39.7% of dat day matched volume, and 16.7 times di median SPCX closing cross before am.
Data notes
Full data notes
- Entity boundary (the basis for frontmatter verified_tickers). Dem reassign SPCX to Space Exploration Technologies Corp. for di 2026-06-12 listing; di old tape end for April 2026, May show zero bars (panel wey dey up). Di first-month deep dive get di full verification (IPO record, news-tag switch, short-interest cliff).
- "Matched volume" na di consolidated tape own accounting: sale conditions wey im dictionary entry carry updates_volume = false (15, 16, 38) dem comot from every total and denominator. Vendor "shares traded" figures trim different edges: our July 1 total dey about 3% above Levine im print; July 2 and July 6 agree within a fraction of a percent.
- Di closing cross na sale condition 8, as e dey for di closing-auction explainer. Few sessions carry one extra negligible code-8 record from a second venue (2 for listing day); di cross na di session largest code-8 print. July 1, 2, and 6 each show exactly one.
- Di morning panel stop for 12:59 p.m. ET by design (210 bars for di 9:30–1:00 window): na di ingested edge when dem first write dis post (July 8, 2026), and dem pin di window so di figures reproduce. Dem measure di completed July 7 session for di round-trip post.
- Attributed numbers stay attributed. Levine im own, di WSJ own, Du Boff im own, Kumar im own, and di papers figures na dia claims, dem reproduce am for context, no be say dem measure am here; dis post no assert any cause for any move.
- Dem store timestamps for UTC; July 2026 na EDT (regular hours 13:30–20:00 UTC). Di auction notional na print size times print price, nothing more.
Every panel na one stored object — chart, table, SQL. Take dis auctions apart further, for any ticker, for di Strasmore terminal.