{"slug":"tax-loss-harvesting-deadlines","qid":"year_end_tape","label":"Regular-session minutes in the last two weeks of December 2025 (SPY)","post_title":"Tax-Loss Harvesting Deadlines: The Real Dates","post_url":"/blog/tax-loss-harvesting-deadlines#q-year_end_tape","columns":["session_date","session_label","weekday","regular_minutes","full_session_pct"],"rows":[{"session_date":"2025-12-15","session_label":"Dec 15, 2025","weekday":"Mon","regular_minutes":390,"full_session_pct":100},{"session_date":"2025-12-16","session_label":"Dec 16, 2025","weekday":"Tue","regular_minutes":390,"full_session_pct":100},{"session_date":"2025-12-17","session_label":"Dec 17, 2025","weekday":"Wed","regular_minutes":390,"full_session_pct":100},{"session_date":"2025-12-18","session_label":"Dec 18, 2025","weekday":"Thu","regular_minutes":390,"full_session_pct":100},{"session_date":"2025-12-19","session_label":"Dec 19, 2025","weekday":"Fri","regular_minutes":390,"full_session_pct":100},{"session_date":"2025-12-22","session_label":"Dec 22, 2025","weekday":"Mon","regular_minutes":390,"full_session_pct":100},{"session_date":"2025-12-23","session_label":"Dec 23, 2025","weekday":"Tue","regular_minutes":390,"full_session_pct":100},{"session_date":"2025-12-24","session_label":"Dec 24, 2025","weekday":"Wed","regular_minutes":211,"full_session_pct":54.1},{"session_date":"2025-12-26","session_label":"Dec 26, 2025","weekday":"Fri","regular_minutes":390,"full_session_pct":100},{"session_date":"2025-12-29","session_label":"Dec 29, 2025","weekday":"Mon","regular_minutes":390,"full_session_pct":100},{"session_date":"2025-12-30","session_label":"Dec 30, 2025","weekday":"Tue","regular_minutes":390,"full_session_pct":100},{"session_date":"2025-12-31","session_label":"Dec 31, 2025","weekday":"Wed","regular_minutes":390,"full_session_pct":100}],"shape":"series","sql":"SELECT\n    toString(d)                            AS session_date,\n    formatDateTime(d, '%b %e, %Y')         AS session_label,\n    formatDateTime(d, '%a')                AS weekday,\n    toUInt32(bars)                         AS regular_minutes,\n    round(toFloat64(bars) / 390 * 100, 1)  AS full_session_pct\nFROM\n(\n    SELECT\n        toDate(toTimeZone(window_start, 'America/New_York')) AS d,\n        count()                                              AS bars\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker = 'SPY'\n      AND window_start >= '2025-12-14 00:00:00'\n      AND window_start <  '2026-01-01 00:00:00'\n      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n           + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570\n      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n           + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960\n    GROUP BY d\n)\nORDER BY d","computed_at":"2026-10-16T15:07:08.232018+00:00","elapsed":0.003260078}