opening_volume_curve
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-10-09, from nse-pre-open-session-explained.
| et_time | share_of_day_pct |
|---|---|
| 09:30 | 9.35 |
| 09:40 | 4.48 |
| 09:50 | 3.83 |
| 10:00 | 3.83 |
| 10:10 | 3.08 |
| 10:20 | 3.05 |
| 10:30 | 2.99 |
| 10:40 | 2.53 |
| 10:50 | 2.68 |
| 11:00 | 2.49 |
| 11:10 | 2.32 |
| 11:20 | 2.22 |
| 11:30 | 2.27 |
| 11:40 | 2.21 |
| 11:50 | 2.08 |
| 12:00 | 1.91 |
| 12:10 | 1.71 |
| 12:20 | 1.96 |
| 12:30 | 1.54 |
| 12:40 | 1.64 |
| 12:50 | 1.38 |
| 13:00 | 1.73 |
| 13:10 | 1.55 |
| 13:20 | 1.59 |
| 13:30 | 1.73 |
| 13:40 | 1.43 |
| 13:50 | 1.65 |
| 14:00 | 1.68 |
| 14:10 | 1.79 |
| 14:20 | 1.63 |
| 14:30 | 1.39 |
| 14:40 | 1.9 |
| 14:50 | 2.5 |
| 15:00 | 2.07 |
| 15:10 | 2.18 |
| 15:20 | 1.91 |
| 15:30 | 2.3 |
| 15:40 | 2.44 |
| 15:50 | 8.98 |
- Rows × columns
- 39 × 2
- 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 |
|---|---|---|---|
et_time |
text | 39 distinct values (09:30, 09:40, 09:50…) | |
share_of_day_pct |
number | 1.38 to 9.35 | percent |
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.
Run it yourself
This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.
WITH minutes AS
(
SELECT
toTimeZone(window_start, 'America/New_York') AS et,
toFloat64(volume) AS shares
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'AAPL'
AND window_start >= '2026-09-01 00:00:00'
AND window_start < '2026-10-01 00:00:00'
),
buckets AS
(
SELECT
formatDateTime(toStartOfTenMinutes(et), '%H:%i') AS et_time,
sum(shares) AS bucket_shares
FROM minutes
WHERE (toHour(et) * 60 + toMinute(et)) >= 570
AND (toHour(et) * 60 + toMinute(et)) < 960
GROUP BY et_time
)
SELECT
et_time,
round(100 * bucket_shares / sum(bucket_shares) OVER (), 2) AS share_of_day_pct
FROM buckets
ORDER BY et_time
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.