The receipt: AAPL's opening cross vs. everything that traded before it, July 1-2, 2026
Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-07-26, from What Is the Opening Auction? How Stocks Open.
spy session bars jul02
390
jul01 close print count
1
prior close price
294.38
opening print count
1
auction price
294.1
auction et
09:30:00.491313
overnight gap pct
-0.1
first trade et
04:00:00
first trade price
296.1
trades before official open
15,832
bell to cross trades
173
official open msgs
2
listing venue open msgs
1
listing open msg price difference
0
- Rows × columns
- 1 × 14
- Computed
- Completeness
- No missing values
- Source
- US exchange, SIP and OPRA market data
- Licence
- Strasmore terms · free, no signup
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
spy_session_bars_jul02 |
number | every row is 390 | |
jul01_close_print_count |
number | every row is 1 | US dollars |
prior_close_price |
number | every row is 294.38 | US dollars |
opening_print_count |
number | every row is 1 | count |
auction_price |
number | every row is 294.1 | US dollars |
auction_et |
text | 1 distinct value (09:30:00.491313) | |
overnight_gap_pct |
number | every row is -0.1 | percent |
first_trade_et |
text | 1 distinct value (04:00:00) | |
first_trade_price |
number | every row is 296.1 | US dollars |
trades_before_official_open |
number | every row is 15,832 | US dollars |
bell_to_cross_trades |
number | every row is 173 | count |
official_open_msgs |
number | every row is 2 | US dollars |
listing_venue_open_msgs |
number | every row is 1 | US dollars |
listing_open_msg_price_difference |
number | every row is 0 | US dollars |
Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.
the exact SQL behind every number
WITH
(
SELECT countIf(window_start >= toDateTime('2026-07-02 09:30:00', 'America/New_York') AND window_start < toDateTime('2026-07-02 16:00:00', 'America/New_York'))
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-07-02 00:00:00', 'America/New_York') AND window_start < toDateTime('2026-07-03 00:00:00', 'America/New_York')
) AS bars_jul02,
(
SELECT argMax(sip_timestamp, (size, sip_timestamp))
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL' AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00' AND has(conditions, 17)
) AS auction_ts,
(
SELECT argMax(exchange, (size, sip_timestamp))
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL' AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00' AND has(conditions, 17)
) AS listing_exchange
SELECT
bars_jul02 AS spy_session_bars_jul02,
countIf(has(conditions, 8) AND sip_timestamp < '2026-07-02 00:00:00') AS jul01_close_print_count,
toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8) AND sip_timestamp < '2026-07-02 00:00:00')) AS prior_close_price,
countIf(has(conditions, 17) AND sip_timestamp >= '2026-07-02 00:00:00') AS opening_print_count,
toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 17) AND sip_timestamp >= '2026-07-02 00:00:00')) AS auction_price,
formatDateTime(toTimeZone(auction_ts, 'America/New_York'), '%H:%i:%S.%f') AS auction_et,
round(100 * (toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 17) AND sip_timestamp >= '2026-07-02 00:00:00')) - toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8) AND sip_timestamp < '2026-07-02 00:00:00'))) / toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8) AND sip_timestamp < '2026-07-02 00:00:00')), 2) AS overnight_gap_pct,
formatDateTime(toTimeZone(minIf(sip_timestamp, sip_timestamp >= '2026-07-02 00:00:00' AND NOT hasAny(conditions, [15, 16, 38])), 'America/New_York'), '%H:%i:%S') AS first_trade_et,
toFloat64(argMinIf(price, (sip_timestamp, sequence_number), sip_timestamp >= '2026-07-02 00:00:00' AND NOT hasAny(conditions, [15, 16, 38]))) AS first_trade_price,
countIf(sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < auction_ts AND NOT hasAny(conditions, [15, 16, 38])) AS trades_before_official_open,
countIf(sip_timestamp >= toDateTime('2026-07-02 09:30:00', 'America/New_York') AND sip_timestamp < auction_ts AND NOT hasAny(conditions, [15, 16, 38])) AS bell_to_cross_trades,
countIf(has(conditions, 16) AND sip_timestamp >= '2026-07-02 00:00:00') AS official_open_msgs,
countIf(has(conditions, 16) AND sip_timestamp >= '2026-07-02 00:00:00' AND exchange = listing_exchange) AS listing_venue_open_msgs,
round(toFloat64(anyIf(price, has(conditions, 16) AND sip_timestamp >= '2026-07-02 00:00:00' AND exchange = listing_exchange)) - toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 17) AND sip_timestamp >= '2026-07-02 00:00:00')), 4) AS listing_open_msg_price_difference
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL' AND sip_timestamp >= '2026-07-01 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
Run your own version of this
The same 22 years of US equities and 12 years of options data are queryable in SQL or plain English. A free account runs 100 queries a day and takes no card.
More from this analysisWhat Is the Opening Auction? How Stocks Open
AAPL volume by quarter-hour, July 2, 2026: pre-market to after-hours (ET)
series 64×2
→
The tape's own labels for the open, straight from the code dictionary
ranking 5×3
→
The opening cross vs. the rest of the day: SPY, AAPL, NVDA on July 2, 2026
series 3×12
→
The 9:30 bar vs. the 12:30 bar: SPY, AAPL, NVDA on July 2, 2026
table 3×8
→
MU, the biggest-volume session of June 2026: time-adjusted vs. naive RVOL, plus the full-day figure
scalar 1×8
→
The closing-cross window (3:59-4:00 p.m. ET): dollar volume on witching day vs. a typical June 2026 session
scalar 1×5
→
See all 2,170 queries →