STRASMORE/EXPLORE 3,256 QUERIES

Trading sessions vs calendar days, twelve months through June 2026

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-08-01, from When Do Mutual Fund Trades Settle?.

as of series 12×4read in context →
Trading sessions vs calendar days, twelve months through June 2026 — 12 rows by 4 columns, computed from US exchange, SIP and OPRA data.
monthmonth_labeltrading_sessionscalendar_days
2025-07July 20252231
2025-08August 20252131
2025-09September 20252130
2025-10October 20252331
2025-11November 20251930
2025-12December 20252231
2026-01January 20262031
2026-02February 20261928
2026-03March 20262231
2026-04April 20262130
2026-05May 20262031
2026-06June 20262130
Rows × columns
12 × 4
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 Trading sessions vs calendar days, twelve months through June 2026, derived from the stored result.
ColumnTypeRangeNotes
month text 12 distinct values (2025-07, 2025-08, 2025-09…)
month_label text 12 distinct values (April 2026, August 2025, December 2025…)
trading_sessions number 19 to 23
calendar_days number 28 to 31

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 sessions AS (
    SELECT DISTINCT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND toDate(toTimeZone(window_start, 'America/New_York')) BETWEEN toDate('2025-07-01') AND toDate('2026-06-30')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
)
SELECT formatDateTime(toStartOfMonth(session_date), '%Y-%m') AS month,
       formatDateTimeInJodaSyntax(toStartOfMonth(session_date), 'MMMM yyyy') AS month_label,
       count() AS trading_sessions,
       toDayOfMonth(toLastDayOfMonth(session_date)) AS calendar_days
FROM sessions
GROUP BY month, month_label, calendar_days
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.

More from this analysisWhen Do Mutual Fund Trades Settle?
Short end vs long end of the Treasury curve: monthly averages, July 2024 to June 2026 series 24×4 → Longest breaks between US trading sessions, January to late July 2026 ranking 10×2 → How far the S&P 500 tracker moved open to close: sessions by size band, July 2025 to June 2026 ranking 5×3 → Average SPY volume per minute over the final half hour of the session series 30×2 → Upcoming US market holidays and early closes series 12×6 → Upcoming US market closures and shortened sessions series 12×4 → See all 3,256 queries →