Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor · · Updated 2026-09-27

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):

QuerySymbol dey trade history by month: the gap and when the new entity show up
monthminute barslow usdhigh usdshares m
2025-07-015824.326.40.02
2025-08-01482425.010.02
2025-09-016423.7725.350.02
2025-10-014524.6325.910.02
2025-11-012725.325.730.01
2025-12-0110121.3225.570.04
2026-01-014621.6722.510.02
2026-02-013021.6922.570.01
2026-03-016421.6222.590.04
2026-04-011321.9223.640.01
2026-06-0110960146.88225.642168.65
2026-07-016608145.07176.14485.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 month
Run am yourself

The 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

QuerySPCX, week of July 6, 2026: the slide, receipt don dey
prior week closeweek closeweek change pctweek highweek lowweek low bar etrth minutes below 150underwater threshold usdcloses below 150prior closing lownew low margin usdrth dollar bnweek shares msession days observed
161.86145.4-10.2167.9145.072026-07-10 15:597901503152.747.3441.7327.75
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')
Run am yourself

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

QuerySPCX by session: close, change, shares, dollars
et dateclose usdchange pctshares mdollar bn
2026-07-06160.4-0.9109.817.55
2026-07-07149.58-6.774.111.3
2026-07-08148.33-0.857.78.58
2026-07-09152.122.643.36.53
2026-07-10145.4-4.442.76.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_date
Run am yourself

Monday 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.

QueryThe week's news flow: counts, plus the three storyline receipts, quoted word for word
week articlespublishersindex add headlinesquiet period headlinequiet period dateresults headlineresults dateborrowing headlineborrowing date
5135Analysts Go All-In on SpaceX as the Quiet Period Ends2026-07-07SpaceX Lost $4.28 Billion on $4.7 Billion in Revenue Last Quarter2026-07-09SpaceX Borrowed $25 Billion and Is Buying Up AI Companies2026-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')
Run am yourself

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

QueryEvery week of the new entity's life: open-to-close return and RTH dollars (entity-bounded)
period startweek return pctweek rth dollar bnsessions
2026-06-087.581.21
2026-06-157.7166.54
2026-06-22-13.2745
2026-06-292.945.34
2026-07-06-12.441.75
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_start
Run am yourself

Five 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.

QueryBig recent debuts, first month on one ruler: first trade to day-28 close (ET regular hours)
tickerlistedissue pxfirst trade openday28 closeopen to day28 pctissue to day28 pctis spcx
VG2025-01-242524.0515.39-36-38.40
CBRS2026-05-14185350227-35.122.70
KLAR2025-09-10405242.17-18.95.40
SPCX2026-06-12135150145.4-3.17.71
LINE2024-07-25788284.382.98.20
CRWV2025-03-28403941.566.63.90
MDLN2025-12-17293543.3823.949.60
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_pct
Run am yourself

For 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

QueryThe week's heaviest tickers by regular-hours dollar volume: where the newcomer dey now
tickerregular hours dollar bnpct of leaderis spcx
MU1641000
SPY137.383.70
NVDA107.165.30
QQQ103.463.10
SNDK8853.70
TSLA69.342.20
META58.335.50
AMD5835.40
AAPL50.530.80
INTC47.929.20
SPCX41.725.41
MSFT41.125.10
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
Run am yourself
QueryRank receipt: the week's dollar volume against every other ticker
spcx rankspcx dollar bnpct of leader
1141.725.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
)
Run am yourself

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

QueryPrint-size anatomy and quote census: full week
prints mmedian print sharesodd lot pct of printsnbbo updates mclean two sided pct
5.521080.12.299.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)
Run am yourself

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

QueryMedian quoted spread by session, regular hours (bps of midpoint)
sessionmed spread bpsquote updates
2026-07-063.12417594
2026-07-073.93498486
2026-07-084.07384283
2026-07-093.99341861
2026-07-102.7350334
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 session
Run am yourself

Median 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

QueryOptions on the new entity, full week: contracts, put-call, busiest contract
contracts traded mweek put call ratiopremium notional busdcontract wey busiest
3.140.81.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)
Run am yourself

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:

QueryThe week's contracts by strike bucket ($20 buckets; tails capped at $80 and $240)
strike bucketcall contractsput contractsput share pctwey go expire by jul17 pctpct of biggest bucket
$8039499137895.91.87.8
$100747411833494.19.310.3
$1201429733314995.946.228.5
$14047448674591461.183.2100
$1604616888494615.577.944.8
$18021437869513.170.418.1
$2001047631679513.864.910
$2204657311802.571.73.9
$24041335622290.583.734.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 bucket
Run am yourself

The 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

QueryFINRA daily short volume during the week: short shares and their off-exchange share
dshort shares moffexchange total mshort pct of offexchange
2026-07-0623.735.566.8
2026-07-0818.725.373.8
2026-07-0912.118.565.4
2026-07-1012.217.370.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 date
Run am yourself

Reported 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:

QueryThe new entity's short-interest prints so far, with implied days-to-cover
settlementshares short maverage daily volume mvendor days to coverimplied days to cover
2026-06-1523.369.210.34
2026-06-30111.3151.610.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_date
Run am yourself

Between 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, FINRA stocks_short_volume and stocks_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.

#spcx#weekly#deep dive#ipos