resolution
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-03, from open-source-trading-terminal-for-python.
| session_date | session_label | daily_range_bps | widest_minute_bps |
|---|---|---|---|
| 2026-06-01 | Jun 1 | 193.3 | 52.9 |
| 2026-06-02 | Jun 2 | 278.1 | 58.2 |
| 2026-06-03 | Jun 3 | 260.7 | 42.2 |
| 2026-06-04 | Jun 4 | 125 | 72.9 |
| 2026-06-05 | Jun 5 | 260.9 | 53.8 |
| 2026-06-08 | Jun 8 | 538.2 | 151.6 |
| 2026-06-09 | Jun 9 | 446.4 | 67.8 |
| 2026-06-10 | Jun 10 | 252.8 | 56.8 |
| 2026-06-11 | Jun 11 | 250.7 | 71.4 |
| 2026-06-12 | Jun 12 | 258.3 | 60.7 |
| 2026-06-15 | Jun 15 | 205.1 | 76.6 |
| 2026-06-16 | Jun 16 | 217.6 | 40.4 |
| 2026-06-17 | Jun 17 | 260.5 | 59.8 |
| 2026-06-18 | Jun 18 | 166.1 | 57.6 |
| 2026-06-22 | Jun 22 | 190.6 | 85.2 |
| 2026-06-23 | Jun 23 | 253.5 | 105.9 |
| 2026-06-24 | Jun 24 | 230.7 | 73.8 |
| 2026-06-25 | Jun 25 | 547 | 140.9 |
| 2026-06-26 | Jun 26 | 413.7 | 132.9 |
| 2026-06-29 | Jun 29 | 302.4 | 89.7 |
| 2026-06-30 | Jun 30 | 319.5 | 84.3 |
- Rows × columns
- 21 × 4
- Period covered
- to
- 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 |
|---|---|---|---|
session_date |
date | 2026-06-01 to 2026-06-30 | |
session_label |
text | 21 distinct values (Jun 1, Jun 10, Jun 11…) | |
daily_range_bps |
number | 125 to 547 | |
widest_minute_bps |
number | 40.4 to 151.6 |
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.
SELECT
toString(bars.session) AS session_date,
formatDateTime(bars.session, '%b %e') AS session_label,
round((toFloat64(bars.high) - toFloat64(bars.low)) / toFloat64(bars.close) * 10000, 1) AS daily_range_bps,
round(mins.widest_minute_bps, 1) AS widest_minute_bps
FROM
(
SELECT date AS session, high, low, close
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'AAPL'
AND date >= '2026-06-01'
AND date < '2026-07-01'
) AS bars
INNER JOIN
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS session,
max((toFloat64(high) - toFloat64(low)) / toFloat64(close) * 10000) AS widest_minute_bps
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'AAPL'
AND window_start >= '2026-06-01 04:00:00'
AND window_start < '2026-07-01 04:00:00'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
GROUP BY session
) AS mins ON mins.session = bars.session
ORDER BY bars.session
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.