STRASMORE/EXPLORE 2,882 QUERIES

recon_intraday

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-01, from index-rebalance-day-closing-auction.

as of series 14×3read in context →
recon_intraday — 14 rows by 3 columns, computed from US exchange, SIP and OPRA data.
et_timerecon_day_pcttypical_day_pct
09:309.715.49
10:005.558.69
10:305.47.29
11:004.516.19
11:306.596.01
12:006.045.42
12:304.295.57
13:003.325.61
13:302.925.66
14:004.975.22
14:306.215.35
15:008.656.36
15:3022.4615.4
16:009.41.74
Rows × columns
14 × 3
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 recon_intraday, derived from the stored result.
ColumnTypeRangeNotes
et_time text 14 distinct values (09:30, 10:00, 10:30…)
recon_day_pct number 2.92 to 22.46 percent
typical_day_pct number 1.74 to 15.49 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 bars AS
(
    SELECT
        toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
        toHour(toTimeZone(window_start, 'America/New_York')) * 60
            + toMinute(toTimeZone(window_start, 'America/New_York')) AS et_minute,
        toFloat64(volume)                                            AS bar_volume
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'AAPL'
      AND window_start >= '2026-05-28'
      AND window_start <  '2026-06-27'
),
buckets AS
(
    SELECT
        session_date,
        if(et_minute = 960, 960, intDiv(et_minute, 30) * 30) AS bucket_min,
        sum(bar_volume)                                      AS bucket_volume
    FROM bars
    WHERE et_minute >= 570
      AND et_minute <= 960
    GROUP BY session_date, bucket_min
),
day_totals AS
(
    SELECT
        session_date,
        sum(bucket_volume) AS day_volume
    FROM buckets
    GROUP BY session_date
),
shares AS
(
    SELECT
        b.session_date                       AS session_date,
        b.bucket_min                         AS bucket_min,
        100 * b.bucket_volume / d.day_volume AS share_pct
    FROM buckets AS b
    INNER JOIN day_totals AS d ON d.session_date = b.session_date
)
SELECT
    formatDateTime(toDateTime(bucket_min * 60, 'UTC'), '%H:%i') AS et_time,
    round(avgIf(share_pct, session_date =  '2026-06-26'), 2)    AS recon_day_pct,
    round(avgIf(share_pct, session_date <  '2026-06-26'), 2)    AS typical_day_pct
FROM shares
GROUP BY bucket_min
HAVING countIf(session_date =  '2026-06-26') > 0
   AND countIf(session_date <  '2026-06-26') > 0
ORDER BY bucket_min
⌘/Ctrl + Enter

Work with this data in your AI assistant

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

More from this analysisindex-rebalance-day-closing-auction
june_profile series 21×4 → rebalance_multiples ranking 12×4 → late_drift ranking 12×3 → The 2s10s spread by month, full history series 604×5 → One SPY $600 LEAPS call's price over two years (expired Jan 16 2026) series 470×2 → The 5s30s spread month by month, with both legs series 241×4 → See all 2,882 queries →