daily_range
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-09-26, from when-do-index-funds-trade.
| session_date | voo_range_pct | qqq_range_pct |
|---|---|---|
| 2026-08-12 | 0.47 | 0.6 |
| 2026-08-13 | 0.67 | 1.36 |
| 2026-08-14 | 0.43 | 0.83 |
| 2026-08-17 | 0.56 | 0.73 |
| 2026-08-18 | 0.34 | 0.87 |
| 2026-08-19 | 0.57 | 1.24 |
| 2026-08-20 | 0.8 | 0.9 |
| 2026-08-21 | 0.48 | 0.91 |
| 2026-08-24 | 0.41 | 1 |
| 2026-08-25 | 0.48 | 0.93 |
| 2026-08-26 | 0.44 | 0.71 |
| 2026-08-27 | 0.67 | 0.95 |
| 2026-08-28 | 0.91 | 1.26 |
| 2026-08-31 | 0.42 | 0.62 |
| 2026-09-01 | 0.68 | 1.08 |
| 2026-09-02 | 0.62 | 0.66 |
| 2026-09-03 | 0.84 | 1.29 |
| 2026-09-04 | 0.5 | 0.74 |
| 2026-09-08 | 0.59 | 0.88 |
| 2026-09-09 | 0.46 | 0.79 |
| 2026-09-10 | 0.44 | 0.73 |
| 2026-09-11 | 0.37 | 0.56 |
| 2026-09-14 | 0.73 | 1.44 |
| 2026-09-15 | 0.55 | 0.84 |
| 2026-09-16 | 1.6 | 1.69 |
| 2026-09-17 | 0.47 | 0.66 |
| 2026-09-18 | 0.53 | 0.92 |
| 2026-09-21 | 1.14 | 2.08 |
| 2026-09-22 | 0.33 | 0.99 |
| 2026-09-23 | 0.85 | 1.21 |
| 2026-09-24 | 0.74 | 1.08 |
- Rows × columns
- 31 × 3
- 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-08-12 to 2026-09-24 | |
voo_range_pct |
number | 0.33 to 1.6 | percent |
qqq_range_pct |
number | 0.56 to 2.08 | 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.
SELECT
toString(date) AS session_date,
round(100 * toFloat64(maxIf(high, ticker = 'VOO') - minIf(low, ticker = 'VOO')) / toFloat64(anyIf(close, ticker = 'VOO')), 2) AS voo_range_pct,
round(100 * toFloat64(maxIf(high, ticker = 'QQQ') - minIf(low, ticker = 'QQQ')) / toFloat64(anyIf(close, ticker = 'QQQ')), 2) AS qqq_range_pct
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('VOO', 'QQQ')
AND date >= today() - 45
AND date < today() - 1
GROUP BY date
HAVING countIf(ticker = 'VOO') > 0
AND countIf(ticker = 'QQQ') > 0
ORDER BY date
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.