STRASMORE/EXPLORE 3,293 QUERIES 22Y EQUITIES · 12Y OPTIONS

3,293 answered market questions

every one with its exact SQL, its result and the date it was computed · free, no signup

Full options quote history: clean NBBO bid/ask snapshots for any US option contract at the interval you choose, by SQL API, $79 a month. See the options quotes plan
SPX Options vs ES Futures Options: Which to Use
Daily S&P 500 moves by month, measured on SPYseries · 2026-11-01 · 12×6Preview: a 12-point series, ending higher. Share of SPY volume by hour of the day (ET), trailing monthranking · 2026-11-01 · 16×2Preview: 16 ranked values, largest first.
Daily S&P 500 moves by month, measured on SPY

Daily S&P 500 moves by month, measured on SPY

most recentas of series 12×6read in context →
Daily S&P 500 moves by month, measured on SPY — 12 rows by 6 columns, computed from US exchange, SIP and OPRA data.
monthmonth_labelavg_abs_move_pctlargest_move_pctbig_move_countsession_count
2025-11-01Nov 20250.781.66619
2025-12-01Dec 20250.421.1222
2026-01-01Jan 20260.442.04220
2026-02-01Feb 20260.671.92419
2026-03-01Mar 20260.912.91922
2026-04-01Apr 20260.652.55421
2026-05-01May 20260.541.39320
2026-06-01Jun 20260.852.58721
2026-07-01Jul 20260.591.68322
2026-08-01Aug 20260.481.8221
2026-09-01Sep 20260.561.55321
2026-10-01Oct 20260.581.77422
the exact SQL behind every number
SELECT
    toString(toStartOfMonth(session))                   AS month,
    formatDateTime(toStartOfMonth(session), '%b %Y')    AS month_label,
    round(avg(abs_move_pct), 2)                         AS avg_abs_move_pct,
    round(max(abs_move_pct), 2)                         AS largest_move_pct,
    countIf(abs_move_pct >= 1)                          AS big_move_count,
    count()                                             AS session_count
FROM
(
    SELECT
        session,
        abs(close_px / lagInFrame(close_px) OVER (ORDER BY session ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) - 1) * 100 AS abs_move_pct
    FROM
    (
        SELECT
            date                   AS session,
            toFloat64(any(close))  AS close_px
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'SPY'
          AND date >= toStartOfMonth(today() - 365) - 10
        GROUP BY date
    )
)
WHERE session >= toStartOfMonth(today() - 365)
GROUP BY month, month_label
ORDER BY month
$