SPCX: SPCX Week It Go Underwater
SPCX week of July 6, 2026: index-add flow don leave, three of five closes fall below June first-trade price, and Friday set new post-listing low.
SPCX spend the week of July 6, 2026 doing wetin young listings no suppose do: e go underwater. From the previous week $161.86 close, the stock fall by -10.2% across five sessions to $145.4. E close below the $150 first-trade price for 3 of 5 sessions, and print new post-listing closing low on Friday. The week open with the last surge of index-add flow and close with the quietest tape since listing. The first analyst ratings and first quarterly numbers since the listing land in between. Every number below come from stored query; expand any panel to see the SQL.
First, receipts: which SPCX be this
SPCX bin belong to another security wey no relate before, so every window here dey tied to the entity wey list am for June 12, 2026, Space Exploration Technologies Corp. (the deep-dive for the first month carry the full verification):
| month | minute bars | low usd | high usd | shares m |
|---|---|---|---|---|
| 2025-07-01 | 58 | 24.3 | 26.4 | 0.02 |
| 2025-08-01 | 48 | 24 | 25.01 | 0.02 |
| 2025-09-01 | 64 | 23.77 | 25.35 | 0.02 |
| 2025-10-01 | 45 | 24.63 | 25.91 | 0.02 |
| 2025-11-01 | 27 | 25.3 | 25.73 | 0.01 |
| 2025-12-01 | 101 | 21.32 | 25.57 | 0.04 |
| 2026-01-01 | 46 | 21.67 | 22.51 | 0.02 |
| 2026-02-01 | 30 | 21.69 | 22.57 | 0.01 |
| 2026-03-01 | 64 | 21.62 | 22.59 | 0.04 |
| 2026-04-01 | 13 | 21.92 | 23.64 | 0.01 |
| 2026-06-01 | 10960 | 146.88 | 225.64 | 2168.65 |
| 2026-07-01 | 6608 | 145.07 | 176.14 | 485.33 |
The exact SQL behind every number
SELECT
toStartOfMonth(window_start) AS month,
count() AS minute_bars,
round(min(toFloat64(low)), 2) AS low_usd,
round(max(toFloat64(high)), 2) AS high_usd,
round(toFloat64(sum(volume)) / 1e6, 2) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPCX'
AND window_start >= toDateTime('2025-07-01 00:00:00') AND window_start < toDateTime('2026-07-11 00:00:00')
GROUP BY month
ORDER BY monthThe gap wey last for months na the old entity comot from the tape. The heavy bars from June 2026 onward na the new one. Everything below concern only those prints.
Week dey show for one line
| prior week close | week close | week change pct | week high | week low | week low bar et | rth minutes below 150 | underwater threshold usd | closes below 150 | prior closing low | new low margin usd | rth dollar bn | week shares m | session days observed |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 161.86 | 145.4 | -10.2 | 167.9 | 145.07 | 2026-07-10 15:59 | 790 | 150 | 3 | 152.74 | 7.34 | 41.7 | 327.7 | 5 |
The exact SQL behind every number
WITH
(
SELECT argMax(toFloat64(close), window_start) FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPCX' AND window_start >= toDateTime('2026-07-02 00:00:00') AND window_start < toDateTime('2026-07-03 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
) AS pw_close,
(
SELECT min(toFloat64(low)) FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPCX' AND window_start >= toDateTime('2026-07-06 00:00:00') AND window_start < toDateTime('2026-07-11 00:00:00')
) AS lo,
(
SELECT max(toFloat64(high)) FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPCX' AND window_start >= toDateTime('2026-07-06 00:00:00') AND window_start < toDateTime('2026-07-11 00:00:00')
) AS hi,
(
SELECT min(c) FROM (
SELECT argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) AS c
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPCX' AND window_start >= toDateTime('2026-06-12 00:00:00') AND window_start < toDateTime('2026-07-03 00:00:00')
GROUP BY toDate(toTimeZone(window_start, 'America/New_York'))
)
) AS prior_low_close,
(
SELECT countIf(c < 150) FROM (
SELECT argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) AS c
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPCX' AND window_start >= toDateTime('2026-07-06 00:00:00') AND window_start < toDateTime('2026-07-11 00:00:00')
GROUP BY toDate(toTimeZone(window_start, 'America/New_York'))
)
) AS closes_under_150
SELECT
round(pw_close, 2) AS prior_week_close,
round(toFloat64(argMaxIf(close, window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199)), 2) AS week_close,
round((toFloat64(argMaxIf(close, window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199)) / pw_close - 1) * 100, 1) AS week_change_pct,
round(hi, 2) AS week_high,
round(lo, 2) AS week_low,
formatDateTime(toTimeZone(minIf(window_start, toFloat64(low) <= lo + 0.011), 'America/New_York'), '%Y-%m-%d %H:%i') AS week_low_bar_et,
countIf(toFloat64(close) < 150 AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) AS rth_minutes_below_150,
150 AS underwater_threshold_usd,
closes_under_150 AS closes_below_150,
round(prior_low_close, 2) AS prior_closing_low,
round(prior_low_close - toFloat64(argMaxIf(close, window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199)), 2) AS new_low_margin_usd,
round(sumIf(toFloat64(close) * toFloat64(volume), (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) / 1e9, 1) AS rth_dollar_bn,
round(toFloat64(sum(volume)) / 1e6, 1) AS week_shares_m,
uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS session_days_observed
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPCX'
AND window_start >= toDateTime('2026-07-06 00:00:00') AND window_start < toDateTime('2026-07-11 00:00:00')For the week, -10.2%, from $167.9 high reach $145.07 low (e print am 2026-07-10 15:59 ET), and 790 regular-session minutes below the $150 first-trade price. Friday $145.4 closing price fall below the previous post-listing closing low of $152.74.
One important point: "underwater" mean say e dey below the June 12 opening-cross price, na the price wey public buyers first pay, as dem record am for the deep-dive for the first month; compared with the lower offering price, the listing still dey above water. Total dollars traded during regular hours na 41.7B across 5 sessions.
Session by session: flow dey comot
| et date | close usd | change pct | shares m | dollar bn |
|---|---|---|---|---|
| 2026-07-06 | 160.4 | -0.9 | 109.8 | 17.55 |
| 2026-07-07 | 149.58 | -6.7 | 74.1 | 11.3 |
| 2026-07-08 | 148.33 | -0.8 | 57.7 | 8.58 |
| 2026-07-09 | 152.12 | 2.6 | 43.3 | 6.53 |
| 2026-07-10 | 145.4 | -4.4 | 42.7 | 6.31 |
The exact SQL behind every number
SELECT
et_date,
close_usd,
round(if(prev_close = 0, NULL, (close_usd / prev_close - 1) * 100), 1) AS change_pct,
shares_m,
dollar_bn
FROM (
SELECT et_date, close_usd, shares_m, dollar_bn,
lagInFrame(close_usd) OVER (ORDER BY et_date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close
FROM (
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
round(argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199), 2) AS close_usd,
round(toFloat64(sum(volume)) / 1e6, 1) AS shares_m,
round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 2) AS dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPCX'
AND window_start >= toDateTime('2026-07-02 00:00:00') AND window_start < toDateTime('2026-07-11 00:00:00')
GROUP BY et_date
)
)
WHERE et_date >= toDate('2026-07-06')
ORDER BY et_dateMonday carry 17.55B, as the remaining index-add flow wey the index-add deep-dive document talk. Then the flow comot: 11.3B on Tuesday (the -6.7% session wey get the first close below $150, according to the decline-from-peak note), before e fade reach 6.31B by Friday, roughly one-third of Monday’s tape. Thursday’s +2.6% bounce no hold; Friday close -4.4% lower at $145.4.
Wetin the news feed really talk
Wetin the feed dey write as the tape dey fall? The titles carry information wey simple count no fit show.
| week articles | publishers | index add headlines | quiet period headline | quiet period date | results headline | results date | borrowing headline | borrowing date |
|---|---|---|---|---|---|---|---|---|
| 51 | 3 | 5 | Analysts Go All-In on SpaceX as the Quiet Period Ends | 2026-07-07 | SpaceX Lost $4.28 Billion on $4.7 Billion in Revenue Last Quarter | 2026-07-09 | SpaceX Borrowed $25 Billion and Is Buying Up AI Companies | 2026-07-07 |
The exact SQL behind every number
WITH
(
SELECT (arrayElement(splitByString('. ', argMin(title, published_utc)), 1), toString(min(toDate(toTimeZone(published_utc, 'America/New_York')))))
FROM global_markets.stocks_news
WHERE has(tickers, 'SPCX') AND published_utc >= toDateTime('2026-07-06 04:00:00') AND published_utc < toDateTime('2026-07-11 04:00:00')
AND title ILIKE '%quiet period%'
) AS quiet,
(
SELECT (arrayElement(splitByString('. ', argMin(title, published_utc)), 1), toString(min(toDate(toTimeZone(published_utc, 'America/New_York')))))
FROM global_markets.stocks_news
WHERE has(tickers, 'SPCX') AND published_utc >= toDateTime('2026-07-06 04:00:00') AND published_utc < toDateTime('2026-07-11 04:00:00')
AND title ILIKE '%lost%revenue%'
) AS results,
(
SELECT (arrayElement(splitByString('. ', argMin(title, published_utc)), 1), toString(min(toDate(toTimeZone(published_utc, 'America/New_York')))))
FROM global_markets.stocks_news
WHERE has(tickers, 'SPCX') AND published_utc >= toDateTime('2026-07-06 04:00:00') AND published_utc < toDateTime('2026-07-11 04:00:00')
AND title ILIKE '%borrowed%'
) AS borrow
SELECT
count() AS week_articles,
uniqExact(JSONExtractString(publisher, 'name')) AS publishers,
countIf(title ILIKE '%nasdaq-100%') AS index_add_headlines,
quiet.1 AS quiet_period_headline,
quiet.2 AS quiet_period_date,
results.1 AS results_headline,
results.2 AS results_date,
borrow.1 AS borrowing_headline,
borrow.2 AS borrowing_date
FROM global_markets.stocks_news
WHERE has(tickers, 'SPCX')
AND published_utc >= toDateTime('2026-07-06 04:00:00')
AND published_utc < toDateTime('2026-07-11 04:00:00')51 tagged articles from 3 publishers; three main storylines dey dominate the titles. On 2026-07-07, the feed framing itself be "Analysts Go All-In on SpaceX as the Quiet Period Ends", as underwriters’ silence after the IPO end and ratings begin to show, the same day wey -6.7% session happen. On 2026-07-09: "SpaceX Lost $4.28 Billion on $4.7 Billion in Revenue Last Quarter", the stock first quarterly figures as public company reach the feed. Alongside am, the balance-sheet storyline, "SpaceX Borrowed $25 Billion and Is Buying Up AI Companies" (2026-07-07), plus 5 headlines about the Nasdaq-100 add itself. The normal discipline still apply: na one aggregated feed attention this table dey measure, no be all the world media. The fall and the storylines only share the same calendar; this table fit only show say dem happen together.
The entity own whole weekly table so far
| period start | week return pct | week rth dollar bn | sessions |
|---|---|---|---|
| 2026-06-08 | 7.5 | 81.2 | 1 |
| 2026-06-15 | 7.7 | 166.5 | 4 |
| 2026-06-22 | -13.2 | 74 | 5 |
| 2026-06-29 | 2.9 | 45.3 | 4 |
| 2026-07-06 | -12.4 | 41.7 | 5 |
The exact SQL behind every number
SELECT
toString(wk) AS period_start,
round(ret, 1) AS week_return_pct,
round(dollar_bn, 1) AS week_rth_dollar_bn,
sessions
FROM (
SELECT toStartOfWeek(toDate(toTimeZone(window_start, 'America/New_York')), 1) AS wk,
uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions,
(argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) / argMinIf(toFloat64(open), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) - 1) * 100 AS ret,
sumIf(toFloat64(close) * toFloat64(volume), (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) / 1e9 AS dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPCX'
AND window_start >= toDateTime('2026-06-12 00:00:00') AND window_start < toDateTime('2026-07-11 00:00:00')
GROUP BY wk
)
ORDER BY period_startFive calendar weeks since e start, all for one small table: the listing pop, the peak, the fade, and now this one — a -12.4% open-to-close week on 41.7B dollars. The baseline na the entity own previous tape, wey dem dey calculate live. Every new week still dey rewrite one-fifth of the history.
Fade like this normal? Six other big debuts, same ruler
This one na normal post-IPO seasoning, or something worse? The check simple: use one measurement — from the first regular-hours trade to the day-28 regular-hours close — for other billion-dollar-plus debuts wey happen for the past two years.
| ticker | listed | issue px | first trade open | day28 close | open to day28 pct | issue to day28 pct | is spcx |
|---|---|---|---|---|---|---|---|
| VG | 2025-01-24 | 25 | 24.05 | 15.39 | -36 | -38.4 | 0 |
| CBRS | 2026-05-14 | 185 | 350 | 227 | -35.1 | 22.7 | 0 |
| KLAR | 2025-09-10 | 40 | 52 | 42.17 | -18.9 | 5.4 | 0 |
| SPCX | 2026-06-12 | 135 | 150 | 145.4 | -3.1 | 7.7 | 1 |
| LINE | 2024-07-25 | 78 | 82 | 84.38 | 2.9 | 8.2 | 0 |
| CRWV | 2025-03-28 | 40 | 39 | 41.56 | 6.6 | 3.9 | 0 |
| MDLN | 2025-12-17 | 29 | 35 | 43.38 | 23.9 | 49.6 | 0 |
The exact SQL behind every number
SELECT
b.ticker AS ticker,
toString(any(i.ld)) AS listed,
round(any(i.ipx), 2) AS issue_px,
round(argMinIf(toFloat64(b.open), b.window_start, rth), 2) AS first_trade_open,
round(argMaxIf(toFloat64(b.close), b.window_start, rth), 2) AS day28_close,
round((argMaxIf(toFloat64(b.close), b.window_start, rth) / argMinIf(toFloat64(b.open), b.window_start, rth) - 1) * 100, 1) AS open_to_day28_pct,
round((argMaxIf(toFloat64(b.close), b.window_start, rth) / any(i.ipx) - 1) * 100, 1) AS issue_to_day28_pct,
toUInt8(b.ticker = 'SPCX') AS is_spcx
FROM global_markets.delayed_stocks_minute_aggs AS b
INNER JOIN (
SELECT ticker, max(listing_date) AS ld, argMax(toFloat64(final_issue_price), listing_date) AS ipx
FROM global_markets.stocks_ipos
WHERE ticker IN ('SPCX', 'CRWV', 'CBRS', 'KLAR', 'VG', 'MDLN', 'LINE')
GROUP BY ticker
) AS i ON b.ticker = i.ticker
WHERE b.ticker IN ('SPCX', 'CRWV', 'CBRS', 'KLAR', 'VG', 'MDLN', 'LINE')
AND b.window_start >= toDateTime('2024-07-25 00:00:00')
AND b.window_start < toDateTime('2026-07-11 00:00:00')
AND toDate(toTimeZone(b.window_start, 'America/New_York')) >= i.ld
AND toDate(toTimeZone(b.window_start, 'America/New_York')) <= i.ld + 28
AND ((toHour(toTimeZone(b.window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(b.window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS rth
GROUP BY b.ticker
ORDER BY open_to_day28_pctFor this ruler, SPCX's -3.1% dey middle of the table. VG (-36%), CBRS (-35.1%) and KLAR (-18.9%) all fall more from their first public trade. MDLN gain 23.9% during its own first month. If we compare am with the offering price instead, SPCX's +7.7% dey where most names for this table dey: above issue price but below the opening print. VG na the only debut here wey remain below its own issue price by day 28. Based on this evidence, giving back part of the opening-print gain during the first month na common pattern for a large debut, no be sign of distress.
Still heavyweight, but e dey fade
| ticker | regular hours dollar bn | pct of leader | is spcx |
|---|---|---|---|
| MU | 164 | 100 | 0 |
| SPY | 137.3 | 83.7 | 0 |
| NVDA | 107.1 | 65.3 | 0 |
| QQQ | 103.4 | 63.1 | 0 |
| SNDK | 88 | 53.7 | 0 |
| TSLA | 69.3 | 42.2 | 0 |
| META | 58.3 | 35.5 | 0 |
| AMD | 58 | 35.4 | 0 |
| AAPL | 50.5 | 30.8 | 0 |
| INTC | 47.9 | 29.2 | 0 |
| SPCX | 41.7 | 25.4 | 1 |
| MSFT | 41.1 | 25.1 | 0 |
The exact SQL behind every number
SELECT
ticker,
round(sum(toFloat64(volume) * toFloat64(close)) / 1e9, 1) AS regular_hours_dollar_bn,
round(100 * sum(toFloat64(volume) * toFloat64(close)) / max(sum(toFloat64(volume) * toFloat64(close))) OVER (), 1) AS pct_of_leader,
toUInt8(ticker = 'SPCX') AS is_spcx
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= toDateTime('2026-07-06 00:00:00') AND window_start < toDateTime('2026-07-11 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY ticker
ORDER BY regular_hours_dollar_bn DESC
LIMIT 12| spcx rank | spcx dollar bn | pct of leader |
|---|---|---|
| 11 | 41.7 | 25.4 |
The exact SQL behind every number
WITH (
SELECT sum(toFloat64(volume) * toFloat64(close))
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPCX'
AND window_start >= toDateTime('2026-07-06 00:00:00') AND window_start < toDateTime('2026-07-11 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
) AS spcx_d
SELECT
countIf(d > spcx_d AND ticker != 'SPCX') + 1 AS spcx_rank,
round(spcx_d / 1e9, 1) AS spcx_dollar_bn,
round(100 * spcx_d / max(d), 1) AS pct_of_leader
FROM (
SELECT ticker, sum(toFloat64(volume) * toFloat64(close)) AS d
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= toDateTime('2026-07-06 00:00:00') AND window_start < toDateTime('2026-07-11 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY ticker
)Rank eleventh by dollars for the week, e still dey among the tape’s biggest names, at 25.4% of the week’s leader. For June post-listing window, e dey among the market’s top few names. The basis na every ticker’s regular-hours dollars across the five sessions. The subject dey included with receipt flag, no be excluded. This page’s topic na the verified entity.
Wetin dey make up the tape
| prints m | median print shares | odd lot pct of prints | nbbo updates m | clean two sided pct |
|---|---|---|---|---|
| 5.52 | 10 | 80.1 | 2.2 | 99.35 |
The exact SQL behind every number
WITH
(
SELECT (round(count() / 1e6, 2),
round(100.0 * countIf(bid_price > 0 AND ask_price > 0 AND ask_price > bid_price) / count(), 2))
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'SPCX'
AND sip_timestamp >= toDateTime64('2026-07-06 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-11 00:00:00', 9)
) AS quote_census
SELECT
round(count() / 1e6, 2) AS prints_m,
quantileDeterministic(0.5)(toFloat64(size), toUInt64(abs(sequence_number))) AS median_print_shares,
round(100.0 * countIf(size < 100) / count(), 1) AS odd_lot_pct_of_prints,
quote_census.1 AS nbbo_updates_m,
quote_census.2 AS clean_two_sided_pct
FROM global_markets.stocks_trades
WHERE ticker = 'SPCX'
AND sip_timestamp >= toDateTime64('2026-07-06 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-11 00:00:00', 9)5.52 million executed trades, 80.1% of dem odd lots, against 2.2 million NBBO updates (99.35% clean two-sided). One month after listing, the microstructure dey read like any large active stock own.
The spread: seasoning dey continue
| session | med spread bps | quote updates |
|---|---|---|
| 2026-07-06 | 3.12 | 417594 |
| 2026-07-07 | 3.93 | 498486 |
| 2026-07-08 | 4.07 | 384283 |
| 2026-07-09 | 3.99 | 341861 |
| 2026-07-10 | 2.7 | 350334 |
The exact SQL behind every number
SELECT
session,
round(quantileDeterministicIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, toUInt64(toUnixTimestamp64Micro(sip_timestamp)), bid_price > 0 AND ask_price >= bid_price), 2) AS med_spread_bps,
count() AS quote_updates
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'SPCX'
AND sip_timestamp >= toDateTime64('2026-07-06 13:30:00', 9) AND sip_timestamp < toDateTime64('2026-07-11 00:00:00', 9)
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS session
ORDER BY sessionMedian regular-hours spreads open at 3.12 bps on Monday, widen reach 4.07 bps by middle of the week, then ease to 2.7 bps by Friday. This young listing’s spread dey churn for big-name territory even as price dey fall. Liquidity provision and price direction na different machines. This week separate the two clearly.
Options: puts wey dey below market, lottery calls wey dey above am
| contracts traded m | week put call ratio | premium notional busd | contract wey busiest |
|---|---|---|---|
| 3.14 | 0.8 | 1.71 | $450 call, expiry 2026-07-17 |
The exact SQL behind every number
WITH
(
SELECT concat('$', toString(round(toFloat64(toUInt32OrZero(substring(ticker, 14, 8))) / 1000, 2)),
if(substring(ticker, 13, 1) = 'P', ' put', ' call'),
', expiry 20', substring(ticker, 7, 2), '-', substring(ticker, 9, 2), '-', substring(ticker, 11, 2))
FROM global_markets.options_trades
WHERE startsWith(ticker, 'O:SPCX') AND length(ticker) = 21
AND sip_timestamp >= toDateTime64('2026-07-06 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-11 00:00:00', 9)
GROUP BY ticker ORDER BY sum(size) DESC LIMIT 1
) AS busiest_name
SELECT
round(sum(size) / 1e6, 2) AS contracts_traded_m,
round(toFloat64(sumIf(size, substring(ticker, 13, 1) = 'P')) / toFloat64(sumIf(size, substring(ticker, 13, 1) = 'C')), 2) AS week_put_call_ratio,
round(sum(toFloat64(price) * size) * 100 / 1e9, 2) AS premium_notional_busd,
busiest_name AS busiest_contract
FROM global_markets.options_trades
WHERE startsWith(ticker, 'O:SPCX') AND length(ticker) = 21
AND sip_timestamp >= toDateTime64('2026-07-06 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-11 00:00:00', 9)The book trade 3.14 million contracts with put-call ratio of 0.8. Calls still pass puts for number, but the book lean much more toward puts than normal single stock. NVDA same-week book get roughly half of that ratio. Ratio no fit tell us WHERE the puts dey. The strike map fit:
| strike bucket | call contracts | put contracts | put share pct | wey go expire by jul17 pct | pct of biggest bucket |
|---|---|---|---|---|---|
| $80 | 3949 | 91378 | 95.9 | 1.8 | 7.8 |
| $100 | 7474 | 118334 | 94.1 | 9.3 | 10.3 |
| $120 | 14297 | 333149 | 95.9 | 46.2 | 28.5 |
| $140 | 474486 | 745914 | 61.1 | 83.2 | 100 |
| $160 | 461688 | 84946 | 15.5 | 77.9 | 44.8 |
| $180 | 214378 | 6951 | 3.1 | 70.4 | 18.1 |
| $200 | 104763 | 16795 | 13.8 | 64.9 | 10 |
| $220 | 46573 | 1180 | 2.5 | 71.7 | 3.9 |
| $240 | 413356 | 2229 | 0.5 | 83.7 | 34.1 |
The exact SQL behind every number
SELECT
concat('$', toString(toUInt32(bucket))) AS strike_bucket,
toUInt64(sumIf(size, substring(ticker, 13, 1) = 'C')) AS call_contracts,
toUInt64(sumIf(size, substring(ticker, 13, 1) = 'P')) AS put_contracts,
round(100.0 * sumIf(size, substring(ticker, 13, 1) = 'P') / sum(size), 1) AS put_share_pct,
round(100.0 * sumIf(size, substring(ticker, 7, 6) <= '260717') / sum(size), 1) AS expiring_by_jul17_pct,
round(100 * sum(size) / max(sum(size)) OVER (), 1) AS pct_of_biggest_bucket
FROM global_markets.options_trades
WHERE startsWith(ticker, 'O:SPCX') AND length(ticker) = 21
AND toUInt32OrZero(substring(ticker, 14, 8)) > 0
AND sip_timestamp >= toDateTime64('2026-07-06 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-11 00:00:00', 9)
GROUP BY least(greatest(floor(toFloat64(toUInt32OrZero(substring(ticker, 14, 8))) / 1000 / 20) * 20, 80), 240) AS bucket
ORDER BY bucketThe shape be barbell. Below the trading range, the book nearly na pure put: 95.9% puts dey inside $120 bucket (333149 contracts), and every bucket below am still pass ninety percent. The at-the-money $140 bucket carry the highest volume of any bucket: 61.1% puts, with 83.2% of them expiring by July 17. Above the range, the balance turn around (15.5% puts for $160), while the far tail nearly na all call: 413356 call contracts dey inside the $240-and-up bucket. Na there the busiest contract for the week dey (the $450 call, expiry 2026-07-17). This table fit show say puts dey stacked at and below the market. Na the classic footprint of downside protection, with long-shot calls far above. But e no fit show whether those puts dey hedge stock or whether dem express outright bearish views. Prints no carry identity or intent (the put-call ratio explainer dey explain that boundary).
The shorts, with a denominator this time
| d | short shares m | offexchange total m | short pct of offexchange |
|---|---|---|---|
| 2026-07-06 | 23.7 | 35.5 | 66.8 |
| 2026-07-08 | 18.7 | 25.3 | 73.8 |
| 2026-07-09 | 12.1 | 18.5 | 65.4 |
| 2026-07-10 | 12.2 | 17.3 | 70.5 |
The exact SQL behind every number
SELECT toString(date) AS d,
round(toFloat64(any(short_volume)) / 1e6, 1) AS short_shares_m,
round(toFloat64(any(total_volume)) / 1e6, 1) AS offexchange_total_m,
round(100 * toFloat64(any(short_volume)) / toFloat64(any(total_volume)), 1) AS short_pct_of_offexchange
FROM global_markets.stocks_short_volume
WHERE ticker = 'SPCX' AND date >= toDate('2026-07-06') AND date <= toDate('2026-07-10')
GROUP BY date
ORDER BY dateReported short volume drop from 23.7M shares on Monday to 12.2M on Friday, as the total tape too move lower. As a share of off-exchange volume, e remain around 66.8%. Most of am na market-maker plumbing, where dem dey short to fill customer buys, no be directional bet, as the short-volume explainer explain. Two things dey important. The market-wide file for July 7 come truncated (receipted in the weekly market recap). So the week get 4 daily files instead of five. Also, short volume na flow, no be position. The position dey inside the short-interest series:
| settlement | shares short m | average daily volume m | vendor days to cover | implied days to cover |
|---|---|---|---|---|
| 2026-06-15 | 23.3 | 69.2 | 1 | 0.34 |
| 2026-06-30 | 111.3 | 151.6 | 1 | 0.73 |
The exact SQL behind every number
SELECT toString(settlement_date) AS settlement,
round(toFloat64(max(short_interest)) / 1e6, 1) AS shares_short_m,
round(toFloat64(max(avg_daily_volume)) / 1e6, 1) AS avg_daily_volume_m,
max(days_to_cover) AS vendor_days_to_cover,
round(toFloat64(max(short_interest)) / toFloat64(max(avg_daily_volume)), 2) AS implied_days_to_cover
FROM global_markets.stocks_short_interest
WHERE ticker = 'SPCX' AND settlement_date >= toDate('2026-06-01') AND settlement_date <= toDate('2026-06-30')
GROUP BY settlement_date
ORDER BY settlement_dateBetween the 2026-06-15 and 2026-06-30 settlements, shares short grow from 23.3M to 111.3M. But the denominator matter. Against the vendor's 151.6M-share average day, that mean implied days-to-cover of just 0.73. The vendor's own field no dey go below 1. So the whole short book fit cover inside one average session. One disclosure stand out: the source don restate the June 15 print once since the first-month page first publish am. These figures na the current record, and dem dey re-run plus bounds-check am every time dem regenerate am.
Wetin to watch from here
Four matter still dey open. The index-add flow na one-time event by design. Index funds buy when dem add the stock, then dem hold am. So Monday’s 17.55B tape na ceiling wey that mechanism no go rebuild.
The July 17 expiry go remove most of the at-the-money options traffic (83.2% of the biggest strike bucket). Where the put wall rebuild go give the clearest sign of whether demand for protection still dey.
The next short-interest settlement go publish on FINRA usual delay and e go show whether shares short continue to grow as the slide dey happen.
And every IPO get one fixed supply date: the lock-up expiration. The FAQ below cover am.
FAQ
SPCX still dey above im IPO price?
E dey above the offering price, but e dey below the first public trade. SPCX end the week for $145.4, 7.7% above the $135 offering price, but below the $150 opening cross wey public trading start with for June 12.
Wetin SPCX put-call ratio really mean?
0.8 puts trade for every call. Calls still pass puts for number, but the tilt for the same week dey roughly double wetin NVDA options book show. Ratio alone no fit separate hedging from bearish bets; the strike map show say puts gather for the market price and below am. Na so the protection take shape.
Why index-add buying disappear?
Index inclusion na one-time rebalance. Tracking funds buy around the effective date, then dem just hold. The big July 6 closing cross na when that buying happen. The mechanism no dey buy again.
June first-trade price fit be support level for SPCX?
That $150 mark na where the June 12 opening cross print. E be reference point, no be automatic floor. The tape spend 790 regular-session minutes below am this week and close under am 3 times. So as hard floor, e don already give way.
When SPCX IPO lock-up go expire?
The prospectus set the date. The usual term na 180 days from the offering, so for June 12, 2026 listing, na early December 2026. Until that date pass, most insider and pre-IPO shares no fit sell. The lock-up expiration na the standard supply date for every IPO calendar.
Data notes
All timestamps na UTC; regular trading hours na the 810-1199 UTC-minute band (the EDT session). But the debut-comparison panel dey filter the 9:30-16:00 ET clock, so winter listings remain for the actual session. The week na July 6-10, with the previous close from Thursday July 2 because July 3 na holiday. This symbol dey on the ambiguity guard list: every SPCX window start on or after the verified entity list date of June 12, 2026. The symbol-history panel also dey show the boundary for the old entity.
The “underwater” measure dey count regular-session minutes and closes below the first-trade price. That price na the June 12 opening cross, wey the system emit as a declared column. E no be the offering price. The debut comparison dey run each listing from its own first regular-hours trade to its own day-28 close. E use the same ruler but different calendars, with issue prices from the IPO record.
OCC option tickers dey parse positionally. Any strike wey no parse fit enter only if the strike > 0 filter pass. News counts and quoted headlines dey measure ONE aggregated feed. Headline receipts na trims of the first sentence. Short-volume inherit the completeness of its source file, as flagged above. The short-interest series don get restated before.
Methodology
- Source: consolidated tape,
delayed_stocks_minute_aggs,stocks_trades,cache_stocks_quotes,options_trades,stocks_news,stocks_ipos, FINRAstocks_short_volumeandstocks_short_interest. - Entity discipline: verified_tickers assertion; windows dey bounded to the post-listing entity; reuse receipt dey lead the page.
- Deterministic aggregates; prior-period and cross-listing comparisons dey compute live, dem no dey quote am from other posts.
- Warehouse as-of: July 12, 2026.
Cross-links: the first month, the index add, the decline from peak, and the week's market recap. Every panel na one stored object, chart, table, SQL, and every query dey run for Strasmore terminal.