STRASMORE/EXPLORE 3,214 QUERIES

premarket_vs_day

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-08, from us-premarket-and-after-hours-india-time.

as of series 41×4read in context →
premarket_vs_day — 41 rows by 4 columns, computed from US exchange, SIP and OPRA data.
datepremarket_move_pctfull_day_move_pctsession_label
2026-08-04-0.221.964 Aug
2026-08-05-0.060.525 Aug
2026-08-061.070.456 Aug
2026-08-07-0.310.297 Aug
2026-08-10-2.13-1.6210 Aug
2026-08-11-0.23-1.0911 Aug
2026-08-120.03-0.8712 Aug
2026-08-130.67113 Aug
2026-08-140.220.2214 Aug
2026-08-170.01-0.1117 Aug
2026-08-180.621.4518 Aug
2026-08-190.032.1919 Aug
2026-08-200.18-1.7520 Aug
2026-08-210.31-0.6321 Aug
2026-08-240.690.3224 Aug
2026-08-250.18-0.1425 Aug
2026-08-260.111.1526 Aug
2026-08-27-0.910.3627 Aug
2026-08-280.741.6328 Aug
2026-08-31-0.03-0.8931 Aug
2026-09-010.052.611 Sep
2026-09-020.5-0.052 Sep
2026-09-03-0.0313 Sep
2026-09-040.03-2.514 Sep
2026-09-08-0.81-1.178 Sep
2026-09-09-0.25-0.289 Sep
2026-09-100.393.5610 Sep
2026-09-110.321.7511 Sep
2026-09-140.750.2414 Sep
2026-09-15-0.87-0.5215 Sep
2026-09-160.320.3216 Sep
2026-09-170.721.3817 Sep
2026-09-180.27-0.2618 Sep
2026-09-21-0.250.8521 Sep
2026-09-220.320.2322 Sep
2026-09-230.42-0.823 Sep
2026-09-24-0.12-0.3324 Sep
2026-09-25-0.011.5325 Sep
2026-09-28-0.17-0.7828 Sep
2026-09-29-0.43-2.6629 Sep
2026-09-300.451.130 Sep
Rows × columns
41 × 4
Period covered
to
Computed
Completeness
No missing values
Source
US exchange, SIP and OPRA market data
Licence
Strasmore terms · free, no signup
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for premarket_vs_day, derived from the stored result.
ColumnTypeRangeNotes
date date 2026-08-04 to 2026-09-30
premarket_move_pct number -2.13 to 1.07 percent
full_day_move_pct number -2.66 to 3.56 percent
session_label text 41 distinct values (1 Sep, 10 Aug, 10 Sep…)

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
    daily AS
    (
        SELECT
            date,
            argMax(toFloat64(close), _ingest_time) AS day_close
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'AAPL'
          AND date >= '2026-08-03'
          AND date <= '2026-09-30'
        GROUP BY date
    ),
    with_prev AS
    (
        SELECT
            date,
            day_close,
            lagInFrame(day_close) OVER (ORDER BY date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close
        FROM daily
    ),
    pre AS
    (
        SELECT
            toDate(toTimeZone(window_start, 'America/New_York')) AS d,
            argMax(toFloat64(close), window_start)               AS pre_last
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'AAPL'
          AND window_start >= '2026-08-03 00:00:00'
          AND window_start <  '2026-10-01 00:00:00'
          AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
               + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 240
          AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
               + toMinute(toTimeZone(window_start, 'America/New_York'))) <  570
        GROUP BY d
    )
SELECT
    toString(w.date)                                           AS date,
    round(100 * (p.pre_last - w.prev_close) / w.prev_close, 2) AS premarket_move_pct,
    round(100 * (w.day_close - w.prev_close) / w.prev_close, 2) AS full_day_move_pct,
    formatDateTime(w.date, '%e %b')                            AS session_label
FROM with_prev AS w
INNER JOIN pre AS p ON p.d = w.date
WHERE w.prev_close > 0
ORDER BY w.date
⌘/Ctrl + Enter

Work with this data in your AI assistant

Opens ready to query, with this page's data. Free, no account.