STRASMORE/EXPLORE 3,293 QUERIES

The 61 day wash sale window around each late-December 2025 session

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-16, from Tax-Loss Harvesting Deadlines: The Real Dates.

as of series 7×6read in context →
The 61 day wash sale window around each late-December 2025 session — 7 rows by 6 columns, computed from US exchange, SIP and OPRA data.
sale_datesale_labelwindow_openswindow_closessessions_beforesessions_after
2025-12-22Dec 22, 2025Nov 22, 2025Jan 21, 20261919
2025-12-23Dec 23, 2025Nov 23, 2025Jan 22, 20262019
2025-12-24Dec 24, 2025Nov 24, 2025Jan 23, 20262119
2025-12-26Dec 26, 2025Nov 26, 2025Jan 25, 20262018
2025-12-29Dec 29, 2025Nov 29, 2025Jan 28, 20261920
2025-12-30Dec 30, 2025Nov 30, 2025Jan 29, 20262020
2025-12-31Dec 31, 2025Dec 1, 2025Jan 30, 20262120
Rows × columns
7 × 6
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 The 61 day wash sale window around each late-December 2025 session, derived from the stored result.
ColumnTypeRangeNotes
sale_date date 2025-12-22 to 2025-12-31
sale_label text 7 distinct values (Dec 22, 2025, Dec 23, 2025, Dec 24, 2025…)
window_opens text 7 distinct values (Dec 1, 2025, Nov 22, 2025, Nov 23, 2025…)
window_closes text 7 distinct values (Jan 21, 2026, Jan 22, 2026, Jan 23, 2026…)
sessions_before number 19 to 21
sessions_after number 18 to 20

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 d
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= '2025-11-18 00:00:00'
      AND window_start <  '2026-02-02 00:00:00'
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
)
SELECT
    toString(s.d)                           AS sale_date,
    formatDateTime(s.d, '%b %e, %Y')        AS sale_label,
    formatDateTime(s.d - 30, '%b %e, %Y')   AS window_opens,
    formatDateTime(s.d + 30, '%b %e, %Y')   AS window_closes,
    countIf(t.d >= s.d - 30 AND t.d < s.d)  AS sessions_before,
    countIf(t.d > s.d AND t.d <= s.d + 30)  AS sessions_after
FROM
(
    SELECT d
    FROM sessions
    WHERE d >= '2025-12-22'
      AND d <  '2026-01-01'
) AS s
CROSS JOIN sessions AS t
GROUP BY s.d
ORDER BY s.d
⌘/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 analysisTax-Loss Harvesting Deadlines: The Real Dates
Regular-session minutes in the last two weeks of December 2025 (SPY) series 12×5 → Ex-date to pay-date lag for household payers, December 2025 into January 2026 ranking 10×4 → Daily open-to-close gap versus SPY, in basis points, July to December 2025 ranking 4×3 → One full 61 day wash sale window on the tape: AAPL, Dec 1 2025 through Jan 30 2026 series 42×3 → How many trading sessions fit inside a 61 day wash sale window series 30×4 → Every December session and how far its wash sale window reaches into the new year series 22×4 → See all 3,293 queries →