Strasmore Research
Deep Dives · 2026-07-04

NVDA: NVIDIA's Full June 2026, Tick by Tick

NVIDIA's June 2026 in full: a $235 pre-market peak, a slide of 7.4% across 21 sessions, 55.64 million prints, and the fourth-biggest dollar volume on the US tape.

NVIDIA opened June 2026 at $215.77 and closed the month at $199.76 — a -7.4% decline over 21 sessions. The stock peaked at $235 in pre-market trading on 2026-06-02 04:00 ET, hit a regular-hours high of $232.28 at 2026-06-02 09:59 ET, and bottomed at $189.8 on 2026-06-29 10:17 ET — all regular hours. Total volume: 2.75 billion shares, $571.9 billion in dollar turnover — the fourth-biggest name on the US tape by regular-hours dollar volume (basis: June 1–30 regular hours; one reused-symbol June listing excluded pending entity verification). Every number here is a stored query result; expand any panel for the exact SQL.

QueryThe month on one row: open, close, extremes, volume, and their receipts
The exact SQL behind every number
WITH
    (
        SELECT (toString(argMax(et_date, c)), max(c), argMax(c, et_date))
        FROM (
            SELECT
                toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
                argMax(toFloat64(close), window_start) AS c
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ticker = 'NVDA'
              AND window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
              AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
            GROUP BY et_date
        )
    ) AS closes,
    (
        SELECT max(toFloat64(high)) FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'NVDA'
          AND window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
    ) AS hi,
    (
        SELECT min(toFloat64(low)) FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'NVDA'
          AND window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
    ) AS lo,
    (
        SELECT maxIf(toFloat64(high), (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'NVDA'
          AND window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
    ) AS rth_hi,
    (
        SELECT minIf(toFloat64(low), (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'NVDA'
          AND window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
    ) AS rth_lo,
    (
        SELECT count() FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= toDateTime('2026-06-19 00:00:00') AND window_start < toDateTime('2026-06-20 00:00:00')
    ) AS spy_jun19
SELECT
    round(toFloat64(argMin(open, window_start)), 2) AS month_open,
    closes.3 AS month_close,
    round((closes.3 / toFloat64(argMin(open, window_start)) - 1) * 100, 1) AS month_change_pct,
    round((1 - closes.3 / toFloat64(argMin(open, window_start))) * 100, 1) AS month_decline_abs_pct,
    closes.1 AS peak_close_date,
    round(closes.2, 2) AS peak_close,
    round(hi, 2) AS month_high,
    formatDateTime(toTimeZone(minIf(window_start, toFloat64(high) >= hi - 0.011), 'America/New_York'), '%Y-%m-%d %H:%i') AS month_high_first_bar_et,
    countIf(toFloat64(high) >= hi - 0.011) AS bars_within_cent_of_high,
    argMinIf(transactions, window_start, toFloat64(high) >= hi - 0.011) AS high_minute_trades,
    round(rth_hi, 2) AS rth_month_high,
    formatDateTime(toTimeZone(minIf(window_start, toFloat64(high) >= rth_hi - 0.011 AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199), 'America/New_York'), '%Y-%m-%d %H:%i') AS rth_high_first_bar_et,
    countIf(toFloat64(high) >= rth_hi - 0.011 AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) AS rth_bars_near_high,
    round(lo, 2) AS month_low,
    formatDateTime(toTimeZone(minIf(window_start, toFloat64(low) <= lo + 0.011), 'America/New_York'), '%Y-%m-%d %H:%i') AS month_low_bar_et,
    countIf(toFloat64(low) <= lo + 0.011) AS bars_within_cent_of_low,
    argMin(transactions, toFloat64(low)) AS low_minute_trades,
    round(rth_lo, 2) AS rth_month_low,
    round(rth_lo - lo, 2) AS rth_minus_extended_low,
    round(toFloat64(sum(volume)) / 1e9, 2) AS month_shares_bn,
    round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 1) AS month_dollar_bn,
    round(sumIf(toFloat64(close) * toFloat64(volume), (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) / 1e9, 1) AS rth_dollar_bn,
    round(sumIf(toFloat64(volume), (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) / 1e9, 2) AS rth_shares_bn,
    uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS session_days_observed,
    spy_jun19 AS spy_bars_june19
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'NVDA'
  AND window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')

The arc is a steady downtrend with one sharp gap lower in the final week. NVDA closed above $224.43 just once — on 2026-06-01, the first session. The month low printed in regular hours at 2026-06-29 10:17 ET, with 1 bar within a cent and 43131 trades in that minute. The pre-market $235 peak at 2026-06-02 04:00 ET is an extended-hours print; the regular-hours high of $232.28 stood at 2026-06-02 09:59 ET. June 19 was a market-wide closure (0 SPY bars that day), so NVDA had 21 trading sessions.

Session by session

QueryThe 21 sessions: regular-hours close, close-over-close change, full-day volume
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 = 'NVDA'
          AND window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
        GROUP BY et_date
    )
)
ORDER BY et_date

The session table reads as a persistent slide. The first close above $224.43 set the high-water mark on 2026-06-01. The steepest single-session decline was -6.2% on 2026-06-05 — a Friday — coinciding with the highest volume of the month at 187.3 million shares. The defining stretch was 5 straight declines, 2026-06-22 through 2026-06-26, ending at the month's lowest close of $191.72; the last two sessions recovered 1.7% and 2.5%. Volume was front-loaded: 185.5 million shares on day one, 119.6 million on the last day.

QueryThe five-session slide, bounded: every claim in the streak sentence as a checked column
The exact SQL behind every number
WITH per_session AS (
    SELECT et_date, close_usd,
           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
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'NVDA'
          AND window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
        GROUP BY et_date
    )
)
SELECT
    toString(minIf(et_date, et_date >= toDate('2026-06-22') AND et_date <= toDate('2026-06-26'))) AS run_start,
    toString(maxIf(et_date, et_date >= toDate('2026-06-22') AND et_date <= toDate('2026-06-26'))) AS run_end,
    countIf(et_date >= toDate('2026-06-22') AND et_date <= toDate('2026-06-26')) AS sessions_in_run,
    countIf(et_date >= toDate('2026-06-22') AND et_date <= toDate('2026-06-26') AND close_usd < prev_close) AS declining_sessions,
    round(minIf(close_usd, et_date >= toDate('2026-06-22') AND et_date <= toDate('2026-06-26')), 2) AS run_low_close,
    toUInt8(min(close_usd) = minIf(close_usd, et_date >= toDate('2026-06-22') AND et_date <= toDate('2026-06-26'))) AS run_holds_month_low_close
FROM per_session

June against its trailing six months

Is a month like this unusual for NVDA, or ordinary? The panel below recomputes the same three figures for each of the last six months in one pass — the June row is produced by exactly the same query as the five before it, fresh from the warehouse at generation time.

QueryThe trailing six months, recomputed live: turnover, shares, and month return
The exact SQL behind every number
SELECT
    toString(toStartOfMonth(toDate(toTimeZone(window_start, 'America/New_York')))) AS period_start,
    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)) / 1e9, 2) AS shares_bn,
    round((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, 1) AS month_return_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'NVDA'
  AND window_start >= toDateTime('2026-01-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY period_start
ORDER BY period_start

By turnover, June was ordinary: $523 billion in regular hours sat mid-range for the window, below May's $557.5 billion and March's $572.5 billion. The return column is where June stands out: -7.4% was the sharpest monthly decline of the six, against -4.8% in February and gains in April and May.

The fourth-biggest ticker on the tape

QueryThe whole US tape ranked by June 2026 regular-hours dollar volume
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 = 'NVDA') AS is_nvda
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
  AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
AND ticker NOT IN ('SPCX')
GROUP BY ticker
ORDER BY regular_hours_dollar_bn DESC
LIMIT 12

NVDA ranked fourth on the entire US tape by regular-hours dollar volume: $523 billion, $141.5 billion clear of SNDK below it, behind only MU ($995.7 billion), SPY ($771.5 billion), and QQQ ($672.8 billion). The basis: June 1–30 regular hours, with one reused-symbol June listing excluded pending entity verification — its receipts live in its own deep-dive. Of the three names above NVDA, 1 is a single stock — MU, another semiconductor name; the other two are the big index ETFs.

QueryThe rank receipt: NVDA's place, its lead over the next name, and the basis — as checked columns
The exact SQL behind every number
WITH (
    SELECT sum(toFloat64(volume) * toFloat64(close))
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'NVDA'
      AND window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
) AS nvda_d
SELECT
    countIf(d > nvda_d AND ticker != 'NVDA') + 1 AS nvda_rank,
    round(nvda_d / 1e9, 1) AS nvda_dollar_bn,
    round((nvda_d - maxIf(d, d < nvda_d AND ticker != 'NVDA')) / 1e9, 1) AS lead_over_next_bn,
    countIf(d > nvda_d AND ticker NOT IN ('SPY', 'QQQ', 'NVDA')) AS single_stocks_above_nvda,
    round(100 * nvda_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-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
)

What the tape was made of

QueryThe whole NVDA tape in one row: prints, print sizes, and the quote census
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),
                countIf(bid_price > 0 AND ask_price > 0 AND ask_price = bid_price),
                countIf(bid_price > 0 AND ask_price > 0 AND ask_price < bid_price),
                countIf(bid_price <= 0 OR ask_price <= 0))
        FROM global_markets.cache_stocks_quotes
        WHERE ticker = 'NVDA'
          AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 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(avg(toFloat64(size)), 1) AS avg_print_shares,
    round(100.0 * countIf(size < 100) / count(), 1) AS odd_lot_pct_of_prints,
    round(100.0 * countIf(toFloat64(size) != round(toFloat64(size))) / count(), 2) AS fractional_pct_of_prints,
    quote_census.1 AS nbbo_updates_m,
    quote_census.2 AS clean_two_sided_pct,
    quote_census.3 AS locked_updates,
    quote_census.4 AS crossed_updates,
    quote_census.5 AS one_sided_or_empty_updates
FROM global_markets.stocks_trades
WHERE ticker = 'NVDA'
  AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)

The texture is small-print and quote-dense: 55.64 million prints at a median of 5 shares (average 72.9 — institutional crosses pull the mean up), 84.6% odd lots (under 100 shares), 32.91% fractional — consistent with retail apps slicing orders into market-maker inventory. The quote half: 55.7 million NBBO updates, 99.35% clean two-sided; 33941 momentarily crossed (bid above ask), 329679 locked (bid equals ask), 63 one-sided or empty. A mega-cap prints more quotes in a month than many names print in a decade.

The spread stayed tight

A mega-cap like NVDA carries a structurally narrow bid-ask spread — the question is how stable that tightness was across a month with a 20-point price range. The quote census above shows the month-level median; this panel measures it per session.

QueryThe spread by session: regular-hours median and time-weighted average (bps)
The exact SQL behind every number
SELECT
    session,
    round(quantileDeterministicIf(0.5)(toFloat64(ask_price) - toFloat64(bid_price), toUInt64(toUnixTimestamp64Micro(sip_timestamp)), bid_price > 0 AND ask_price >= bid_price) * 100, 1) AS med_spread_cents,
    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,
    countIf(NOT (bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price)) AS invalid_dropped
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'NVDA'
  AND sip_timestamp >= toDateTime64('2026-06-01 13:30:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 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

The spread held in a narrow band all month: 1.34 bps on 2026-06-01 and 1.01 bps on 2026-06-30 — a mega-cap spread that barely moved over a 20-point price drop. The widest session was 2026-06-05 at 0.97 bps (the -6.2% decline day), the tightest 2026-06-15 at 0.95 bps. For scale against a thin name, see the June 29 microstructure deep-dive where a single-ticker spread panel covers the same session.

Options: 64.64 million contracts, calls every session

QueryNVDA's options market in one row: totals, expiry structure, flagship contracts
The exact SQL behind every number
WITH
    (
        SELECT (round(sum(toFloat64(price) * size) * 100 / 1e9, 2), round(sum(size) / 1e6, 1))
        FROM global_markets.options_trades
        WHERE startsWith(ticker, 'O:AAPL') AND length(ticker) = 21
          AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
    ) AS aapl,
    (
        SELECT (round(sum(toFloat64(price) * size) * 100 / 1e9, 2), round(sum(size) / 1e6, 1))
        FROM global_markets.options_trades
        WHERE startsWith(ticker, 'O:TSLA') AND length(ticker) = 21
          AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
    ) AS tsla,
    (
        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:NVDA') AND length(ticker) = 21
          AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
        GROUP BY ticker ORDER BY sum(size) DESC LIMIT 1
    ) AS busiest_name,
    (
        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:NVDA') AND length(ticker) = 21
          AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
        GROUP BY ticker ORDER BY sum(toFloat64(price) * size) DESC LIMIT 1
    ) AS premium_name,
    (
        SELECT round(toFloat64(toUInt32OrZero(substring(ticker, 14, 8))) / 1000, 2)
        FROM global_markets.options_trades
        WHERE startsWith(ticker, 'O:NVDA') AND length(ticker) = 21
          AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
        GROUP BY ticker ORDER BY sum(toFloat64(price) * size) DESC LIMIT 1
    ) AS premium_strike,
    (
        SELECT max(pc)
        FROM (
            SELECT round(toFloat64(sumIf(size, substring(ticker, 13, 1) = 'P')) / toFloat64(sumIf(size, substring(ticker, 13, 1) = 'C')), 3) AS pc
            FROM global_markets.options_trades
            WHERE startsWith(ticker, 'O:NVDA') AND length(ticker) = 21
              AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
            GROUP BY toDate(sip_timestamp)
        )
    ) AS max_daily_pc
SELECT
    formatDateTime(toTimeZone(min(sip_timestamp), 'America/New_York'), '%Y-%m-%d %H:%i:%S') AS first_print_et,
    uniqExact(toDate(sip_timestamp)) AS option_sessions,
    round(count() / 1e6, 2) AS prints_m,
    uniqExact(ticker) AS distinct_contracts,
    round(sum(size) / 1e6, 2) AS contracts_traded_m,
    round(sum(toFloat64(price) * size) * 100 / 1e9, 2) AS premium_notional_busd,
    round(toFloat64(sumIf(size, substring(ticker, 13, 1) = 'P')) / toFloat64(sumIf(size, substring(ticker, 13, 1) = 'C')), 2) AS month_put_call_ratio,
    max_daily_pc AS max_session_put_call_ratio,
    uniqExact(substring(ticker, 7, 6)) AS expiries_traded,
    concat('20', substring(max(substring(ticker, 7, 6)), 1, 2), '-', substring(max(substring(ticker, 7, 6)), 3, 2), '-', substring(max(substring(ticker, 7, 6)), 5, 2)) AS longest_expiry,
    round(100 * toFloat64(sumIf(size, substring(ticker, 7, 6) = '260618')) / toFloat64(sum(size)), 1) AS jun18_expiry_share_pct,
    busiest_name AS busiest_contract,
    premium_name AS top_premium_contract,
    premium_strike AS top_premium_strike_usd,
    aapl.1 AS aapl_premium_bn,
    aapl.2 AS aapl_contracts_m,
    tsla.1 AS tsla_premium_bn,
    tsla.2 AS tsla_contracts_m
FROM global_markets.options_trades
WHERE startsWith(ticker, 'O:NVDA') AND length(ticker) = 21
  AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)

In 21 option sessions: 8.9 million prints across 5163 distinct contracts, 64.64 million contracts and $24.43 billion in premium (price times the 100-share multiplier). The month put/call ratio was 0.55 — calls out-traded puts every single session; the daily ratio peaked at 0.782 and never reached 1.0. 38 expiries traded, from the June 18 weekly out to 2028-12-15 LEAPS; the June 18 expiry alone took 10.5% of month volume. Busiest contract: $210 call, expiry 2026-06-18. Premium magnet: $0.5 call, expiry 2026-12-18 — a deep-in-the-money $0.5 strike. For comparison, AAPL options collected $8.84 billion on 27 million contracts in June; TSLA $33.68 billion on 58 million.

QueryOptions session by session: contracts, the call/put split, and the put/call ratio
The exact SQL behind every number
SELECT
    toDate(sip_timestamp) AS session,
    count() AS prints,
    toUInt64(sum(size)) AS contracts_traded,
    toUInt64(sumIf(size, substring(ticker, 13, 1) = 'C')) AS call_contracts,
    toUInt64(sumIf(size, substring(ticker, 13, 1) = 'P')) AS put_contracts,
    round(toFloat64(sumIf(size, substring(ticker, 13, 1) = 'P')) / toFloat64(sumIf(size, substring(ticker, 13, 1) = 'C')), 2) AS put_call_ratio,
    round(100 * toFloat64(sum(size)) / max(toFloat64(sum(size))) OVER (), 1) AS pct_of_busiest_session
FROM global_markets.options_trades
WHERE startsWith(ticker, 'O:NVDA') AND length(ticker) = 21
  AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
GROUP BY session
ORDER BY session

The busiest options session was 2026-06-055298529 contracts, 100% of the month's peak — the same -6.2% decline day that posted the highest equity volume. The put/call ratio rose alongside the price decline: it bottomed at 0.33 on 2026-06-02 (near the price peak) and climbed to 0.61 by 2026-06-12 (the session the stock first closed below $205.14). Put volume grew as the price fell — hedging activity or directional bets; the data shows the co-movement, not the intent.

QueryWhere the contracts landed: call and put volume by strike bucket
The exact SQL behind every number
SELECT
    concat('$', toString(toUInt32(bucket))) AS strike_bucket,
    call_contracts,
    put_contracts,
    round(100.0 * put_contracts / (call_contracts + put_contracts), 1) AS put_share_pct,
    round(100 * (call_contracts + put_contracts) / max(call_contracts + put_contracts) OVER (), 1) AS pct_of_biggest_bucket
FROM (
    SELECT
        least(floor(toFloat64(toUInt32OrZero(substring(ticker, 14, 8))) / 1000 / 25) * 25, 450) AS bucket,
        toUInt64(sumIf(size, substring(ticker, 13, 1) = 'C')) AS call_contracts,
        toUInt64(sumIf(size, substring(ticker, 13, 1) = 'P')) AS put_contracts
    FROM global_markets.options_trades
    WHERE startsWith(ticker, 'O:NVDA') AND length(ticker) = 21
      AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
    GROUP BY bucket
)
ORDER BY toUInt32OrZero(substring(strike_bucket, 2))

The strike map is a barbell around the $200 trading range. The $200 bucket — at the money — took the most volume, split 32.7% puts (two-way traffic). Below the range puts dominate (88.3% of the $150 bucket); above it calls own the book (6.3% puts at $225, 120039 contracts at the $450 ceiling). The structure is textbook: protective puts below, speculative calls above, a two-way market at the money.

The news flow

QueryThe information flow in one row: volume, composition, and co-tags
The exact SQL behind every number
WITH
    (
        SELECT (toString(d), n)
        FROM (
            SELECT toDate(toTimeZone(published_utc, 'America/New_York')) AS d, count() AS n
            FROM global_markets.stocks_news
            WHERE has(tickers, 'NVDA')
              AND published_utc >= toDateTime('2026-06-01 00:00:00')
              AND published_utc < toDateTime('2026-07-01 04:00:00')
            GROUP BY d ORDER BY n DESC, d ASC LIMIT 1
        )
    ) AS peak_day,
    (
        SELECT (JSONExtractString(any(publisher), 'name'), count())
        FROM global_markets.stocks_news
        WHERE has(tickers, 'NVDA')
          AND published_utc >= toDateTime('2026-06-01 00:00:00')
          AND published_utc < toDateTime('2026-07-01 04:00:00')
        GROUP BY JSONExtractString(publisher, 'name') ORDER BY count() DESC LIMIT 1
    ) AS top_pub
SELECT
    count() AS june_articles,
    uniqExact(JSONExtractString(publisher, 'name')) AS publishers,
    toString(min(toDate(toTimeZone(published_utc, 'America/New_York')))) AS first_tagged_day,
    peak_day.1 AS peak_day_date,
    peak_day.2 AS peak_day_articles,
    top_pub.1 AS top_publisher,
    top_pub.2 AS top_publisher_articles,
    round(100.0 * top_pub.2 / count(), 0) AS top_publisher_pct,
    countIf(has(tickers, 'TSLA')) AS tsla_co_articles,
    countIf(has(tickers, 'AMD')) AS amd_co_articles,
    countIf(has(tickers, 'MSFT')) AS msft_co_articles,
    countIf(has(tickers, 'AAPL')) AS aapl_co_articles
FROM global_markets.stocks_news
WHERE has(tickers, 'NVDA')
  AND published_utc >= toDateTime('2026-06-01 00:00:00')
  AND published_utc < toDateTime('2026-07-01 04:00:00')

642 NVDA-tagged articles in June from 4 publishers. Read those counts skeptically: The Motley Fool alone wrote 63% — one feed's attention, not the world's media. The peak day was 2026-06-01 with 45 articles. Co-tags show the framing: MSFT in 169, AAPL in 134, AMD in 101, TSLA in 69 — this feed covered NVDA as a mega-cap tech story, not a semiconductor story.

The shorts

QueryFINRA off-exchange short volume by session: marked-short share and reported volume
The exact SQL behind every number
SELECT
    date,
    round(toFloat64(any(short_volume)) / 1e6, 2) AS short_shares_m,
    round(toFloat64(any(total_volume)) / 1e6, 2) 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 = 'NVDA' AND date >= toDate('2026-06-01') AND date <= toDate('2026-06-30')
GROUP BY date
ORDER BY date

Off-exchange short volume is the share of FINRA-reported volume marked short; much of it is market makers selling short to fill customer buys — routine plumbing, not short interest. NVDA's marked-short share ranged from 29.3% on 2026-06-01 to 48.1% on 2026-06-30. Off-exchange reported volume peaked at 86.77 million shares on 2026-06-02 and bottomed at 43.31 million on 2026-06-16, across the 20 sessions on file.

QueryThe off-exchange peak and trough, bounded (deduped per session)
The exact SQL behind every number
SELECT
    toString(argMax(date, offex_m)) AS peak_date,
    max(offex_m) AS peak_offex_m,
    toString(argMin(date, offex_m)) AS trough_date,
    min(offex_m) AS trough_offex_m,
    round(max(offex_m) - min(offex_m), 2) AS peak_minus_trough_m,
    count() AS sessions_on_file
FROM (
    SELECT date, round(toFloat64(any(total_volume)) / 1e6, 2) AS offex_m
    FROM global_markets.stocks_short_volume
    WHERE ticker = 'NVDA' AND date >= toDate('2026-06-01') AND date <= toDate('2026-06-30')
    GROUP BY date
)
QueryThe mid-June short-interest print
The exact SQL behind every number
SELECT
    toString(maxIf(settlement_date, settlement_date >= toDate('2026-06-01'))) AS settlement,
    round(toFloat64(maxIf(short_interest, settlement_date >= toDate('2026-06-01'))) / 1e6, 2) AS shares_short_m,
    round(toFloat64(maxIf(avg_daily_volume, settlement_date >= toDate('2026-06-01'))) / 1e6, 2) AS avg_daily_volume_m,
    maxIf(days_to_cover, settlement_date >= toDate('2026-06-01')) AS reported_days_to_cover,
    round(toFloat64(maxIf(short_interest, settlement_date >= toDate('2026-06-01'))) / toFloat64(maxIf(avg_daily_volume, settlement_date >= toDate('2026-06-01'))), 2) AS implied_days_to_cover,
    countIf(settlement_date > toDate('2026-06-15')) AS settlements_after_jun15
FROM global_markets.stocks_short_interest
WHERE ticker = 'NVDA'

Actual short interest printed at 2026-06-15: 299.67 million shares short against a 167.96 million-share average day. The vendor reports days-to-cover as 1.78; the raw ratio is 1.78 — shorts needed roughly two average days to cover. The June 30 settlement was not yet published as of this writing (0 later settlements on file).

Data notes

QueryNVDA fundamentals census: balance sheets, income statements, cash flows
The exact SQL behind every number
SELECT
    (SELECT count() FROM global_markets.stocks_balance_sheets WHERE has(tickers, 'NVDA')) AS balance_sheet_rows,
    (SELECT count() FROM global_markets.stocks_income_statements WHERE has(tickers, 'NVDA')) AS income_statement_rows,
    (SELECT count() FROM global_markets.stocks_cash_flow_statements WHERE has(tickers, 'NVDA')) AS cash_flow_rows
Full data notes
  • Entity. NVDA is NVIDIA Corporation, CIK 0001045810, listed on Nasdaq. No symbol-reuse ambiguity; no entity-boundary caveats apply. The warehouse carries 83 balance-sheet rows, 152 income-statement rows, and 152 cash-flow-statement rows for NVDA — the fundamentals exist, unlike the June 29 microstructure deep-dive case.
  • Month extremes. The $235 high printed at 2026-06-02 04:00 ET in pre-market (4:00 AM); the regular-hours high of $232.28 printed at 2026-06-02 09:59 ET. Both the month low and regular-hours low are $189.8 — the low was a regular-hours print.
  • June 19 closure. The warehouse carries 0 SPY bars for June 19 (Juneteenth), so NVDA's June spans 21 sessions. The holidays table does not extend back to June 2026 (it starts July 3 2026); the zero-bar observation is the receipt.
  • Dollar volume. Minute close times minute volume, summed — a close-weighted proxy for notional. The regular-hours figure ($523 billion) excludes pre-market and post-close bars; the full-day figure ($571.9 billion) includes them.
  • Options parsing. Expiry, type, and strike are re-parsed from the OCC ticker (the table's expiration_date column is unreliable); premium notional assumes the 100-share multiplier.
  • Per-update spread statistics weight each NBBO update equally; time-weighted statistics are in the panel. Medians use deterministic quantiles.
  • No tick-dump guard tripped. All tick-table queries are aggregated; the tape-texture query sums the full trade table into one row.
  • Short-volume gap on June 29. The FINRA off-exchange short-volume file for June 29 was truncated market-wide (the source file ends mid-alphabet); NVDA sorts before the cutoff so its row is absent. The short-volume panel carries 20 sessions; the June 29 row is missing (market-wide file truncation), not zero. The June 29 deep-dive carries the market-wide probe receipt.

Methodology

  • Timestamps are stored in UTC and filtered with raw UTC bounds; June 2026 is entirely EDT, so regular hours are 13:30–20:00 UTC (9:30 am–4:00 pm ET). toTimeZone appears only in SELECT lists.
  • A session close is the last regular-hours minute bar. Dollar volume is minute close times minute volume, summed.
  • Options expiry, type and strike are re-parsed from the OCC ticker. Premium notional assumes the 100-share multiplier.
  • Generation is batch-only through the gated read-only path; the public page never queries live. The warehouse retains full tick history with no rolling expiry, so this analysis reproduces from the same tables at any time. Warehouse state as of July 4, 2026.

Every panel is one stored object — chart, table and SQL. Take any query further on the Strasmore terminal.