STRASMORE/EXPLORE 2,707 QUERIES

Final trading days by month, rolling three years

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-09-27, from What Happens When an ETF Closes.

as of series 32×3read in context →
Final trading days by month, rolling three years — 32 rows by 3 columns, computed from US exchange, SIP and OPRA data.
monthmonth_labellistings_retired
2023-08-01Aug 2023149
2023-09-01Sep 2023139
2023-10-01Oct 2023147
2023-11-01Nov 2023174
2023-12-01Dec 2023195
2024-01-01Jan 202492
2024-02-01Feb 2024150
2024-03-01Mar 2024144
2024-04-01Apr 2024104
2024-05-01May 2024102
2024-06-01Jun 202484
2024-07-01Jul 2024121
2024-08-01Aug 2024117
2024-09-01Sep 2024141
2024-10-01Oct 2024146
2024-11-01Nov 2024115
2024-12-01Dec 2024167
2025-01-01Jan 2025109
2025-02-01Feb 2025109
2025-03-01Mar 2025100
2025-04-01Apr 2025109
2025-05-01May 202586
2025-06-01Jun 202586
2025-07-01Jul 202587
2025-08-01Aug 2025118
2025-09-01Sep 2025130
2025-10-01Oct 2025133
2025-11-01Nov 202575
2025-12-01Dec 2025133
2026-01-01Jan 202699
2026-02-01Feb 2026113
2026-03-01Mar 2026110
Rows × columns
32 × 3
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 Final trading days by month, rolling three years, derived from the stored result.
ColumnTypeRangeNotes
month date 2023-08-01 to 2026-03-01
month_label text 32 distinct values (Apr 2024, Apr 2025, Aug 2023…)
listings_retired number 75 to 195

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
    toStartOfMonth(last_session)                          AS month,
    formatDateTime(toStartOfMonth(last_session), '%b %Y') AS month_label,
    count()                                               AS listings_retired
FROM
(
    SELECT
        ticker,
        max(date) AS last_session
    FROM global_markets.stocks_daily_aggs
    WHERE date >= '2015-01-01'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
)
WHERE last_session >= toStartOfMonth(today() - 1130)
  AND last_session <  toStartOfMonth(today() - 150)
GROUP BY month, month_label
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 analysisWhat Happens When an ETF Closes
Listings that printed their final daily bar, by year ranking 11×2 → How the tape behaved into the final session ranking 5×3 → How long retired listings had traded before their last session ranking 5×3 → Short-term Treasury yields by month, the reference for fund borrowing costs series 35×3 → Two index ETFs through one session, September 15, 2026 (percent change from the day's first print) series 32×3 → One session, many prices: VOO in half-hour marks, Wednesday July 22, 2026 series 32×3 → See all 2,707 queries →