STRASMORE/EXPLORE 3,293 QUERIES
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

spy_monthly

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-11-01, from what-is-spy-etf.

as of series 12×5read in context →
spy_monthly — 12 rows by 5 columns, computed from US exchange, SIP and OPRA data.
monthmonth_labelmonth_end_closemonth_highmonth_low
2025-11Nov 2025683.39685.8650.85
2025-12Dec 2025681.92691.66671.2
2026-01Jan 2026691.97697.84676.57
2026-02Feb 2026685.99697.14675.78
2026-03Mar 2026650.34688.62629.28
2026-04Apr 2026718.66719.79645.11
2026-05May 2026756.48758.08714.99
2026-06Jun 2026746.77760.4716.58
2026-07Jul 2026747.03755.58729.1
2026-08Aug 2026767.05779.37748.8
2026-09Sep 2026762.63775.14749.6
2026-10Oct 2026755.72781.62750.36
Rows × columns
12 × 5
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 spy_monthly, derived from the stored result.
ColumnTypeRangeNotes
month text 12 distinct values (2025-11, 2025-12, 2026-01…)
month_label text 12 distinct values (Apr 2026, Aug 2026, Dec 2025…)
month_end_close number 650.34 to 767.05 US dollars
month_high number 685.8 to 781.62 US dollars
month_low number 629.28 to 750.36 US dollars

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
    formatDateTime(toStartOfMonth(date), '%Y-%m')   AS month,
    formatDateTime(toStartOfMonth(date), '%b %Y')   AS month_label,
    round(toFloat64(argMax(close, date)), 2)        AS month_end_close,
    round(toFloat64(max(high)), 2)                  AS month_high,
    round(toFloat64(min(low)), 2)                   AS month_low
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'SPY'
  AND date >= toStartOfMonth(today() - 365)
  AND date <= today()
GROUP BY toStartOfMonth(date)
ORDER BY month
⌘/Ctrl + Enter

Work with this data in your AI assistant

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