{"slug":"etf-vs-mutual-fund-settlement","qid":"spy_clock","label":"SPY by half hour clock bucket, pinned session of Sep 15, 2026","post_title":"ETF vs Mutual Fund Settlement: Two Clocks","post_url":"/blog/etf-vs-mutual-fund-settlement#q-spy_clock","columns":["et_time","spy_close"],"rows":[{"et_time":"09:30","spy_close":759.55},{"et_time":"10:00","spy_close":757.48},{"et_time":"10:30","spy_close":756.44},{"et_time":"11:00","spy_close":757.48},{"et_time":"11:30","spy_close":757.12},{"et_time":"12:00","spy_close":757.58},{"et_time":"12:30","spy_close":757.74},{"et_time":"13:00","spy_close":756.88},{"et_time":"13:30","spy_close":757.27},{"et_time":"14:00","spy_close":757.67},{"et_time":"14:30","spy_close":757.49},{"et_time":"15:00","spy_close":756.98},{"et_time":"15:30","spy_close":757.38}],"shape":"series","sql":"SELECT\n    formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,\n    round(toFloat64(argMax(close, window_start)), 2) AS spy_close\nFROM global_markets.delayed_stocks_minute_aggs\nWHERE ticker = 'SPY'\n  AND window_start >= '2026-09-15 00:00:00'\n  AND window_start <  '2026-09-16 05: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\nGROUP BY et_time\nORDER BY et_time","computed_at":"2026-10-03T15:04:39.329250+00:00","elapsed":0.002328515}