{"slug":"market-recap-2026-06","qid":"june_spy_days","label":"SPY, all 21 June sessions: close and close-over-close change","post_title":"Market Recap: June 2026","post_url":"/blog/market-recap-2026-06#q-june_spy_days","columns":["et_date","spy_close","change_pct"],"rows":[{"et_date":"2026-06-01","spy_close":758.43,"change_pct":0.3},{"et_date":"2026-06-02","spy_close":759.45,"change_pct":0.1},{"et_date":"2026-06-03","spy_close":754.19,"change_pct":-0.7},{"et_date":"2026-06-04","spy_close":757.06,"change_pct":0.4},{"et_date":"2026-06-05","spy_close":737.42,"change_pct":-2.6},{"et_date":"2026-06-08","spy_close":739.31,"change_pct":0.3},{"et_date":"2026-06-09","spy_close":737.05,"change_pct":-0.3},{"et_date":"2026-06-10","spy_close":725.42,"change_pct":-1.6},{"et_date":"2026-06-11","spy_close":737.64,"change_pct":1.7},{"et_date":"2026-06-12","spy_close":741.63,"change_pct":0.5},{"et_date":"2026-06-15","spy_close":754.66,"change_pct":1.8},{"et_date":"2026-06-16","spy_close":750.39,"change_pct":-0.6},{"et_date":"2026-06-17","spy_close":741.02,"change_pct":-1.2},{"et_date":"2026-06-18","spy_close":746.56,"change_pct":0.7},{"et_date":"2026-06-22","spy_close":744.37,"change_pct":-0.3},{"et_date":"2026-06-23","spy_close":733.67,"change_pct":-1.4},{"et_date":"2026-06-24","spy_close":733.12,"change_pct":-0.1},{"et_date":"2026-06-25","spy_close":733.26,"change_pct":0},{"et_date":"2026-06-26","spy_close":729.09,"change_pct":-0.6},{"et_date":"2026-06-29","spy_close":740.88,"change_pct":1.6},{"et_date":"2026-06-30","spy_close":746.32,"change_pct":0.7}],"shape":"series","sql":"SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,\n    round(argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199), 2) AS spy_close,\n    round((argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) / any(prev) - 1) * 100, 1) AS change_pct\nFROM global_markets.delayed_stocks_minute_aggs\nINNER JOIN (\n    SELECT d, lagInFrame(c) OVER (ORDER BY d ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev\n    FROM (\n        SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) AS c\n        FROM global_markets.delayed_stocks_minute_aggs\n        WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-05-29 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')\n        GROUP BY d\n    )\n) AS p ON toDate(toTimeZone(window_start, 'America/New_York')) = p.d\nWHERE ticker = 'SPY' AND window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')\nGROUP BY et_date\nORDER BY et_date","computed_at":"2026-07-26T07:51:15.939912+00:00","elapsed":0.003861005}