{"slug":"market-recap-2026-06-29","qid":"scoreboard","label":"SPY / QQQ / DIA / IWM: June 29 vs the June 26 close, regular hours","post_title":"Market Recap: June 29, 2026, The Day in Numbers","post_url":"/blog/market-recap-2026-06-29#q-scoreboard","columns":["ticker","jun26_close","jun29_open","jun29_close","pct_change","pct_of_best_change","day_high","day_low","shares_traded_m"],"rows":[{"ticker":"DIA","jun26_close":517.5,"jun29_open":520.63,"jun29_close":521.68,"pct_change":0.81,"pct_of_best_change":31.5,"day_high":522.975,"day_low":519.4,"shares_traded_m":5.5},{"ticker":"IWM","jun26_close":297.61,"jun29_open":298.11,"jun29_close":298.95,"pct_change":0.45,"pct_of_best_change":17.5,"day_high":299.16,"day_low":294.68,"shares_traded_m":21.7},{"ticker":"QQQ","jun26_close":705.84,"jun29_open":713.99,"jun29_close":723.95,"pct_change":2.57,"pct_of_best_change":100,"day_high":724.58,"day_low":705.172,"shares_traded_m":38.5},{"ticker":"SPY","jun26_close":729.09,"jun29_open":736.525,"jun29_close":740.88,"pct_change":1.62,"pct_of_best_change":63,"day_high":741.56,"day_low":732.09,"shares_traded_m":46}],"shape":"table","sql":"WITH friday AS (\n    SELECT ticker, argMax(close, window_start) AS friday_close\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')\n      AND window_start >= '2026-06-26 13:30:00' AND window_start < '2026-06-26 20:00:00'\n    GROUP BY ticker\n),\nmonday AS (\n    SELECT ticker,\n           argMin(open, window_start) AS monday_open,\n           argMax(close, window_start) AS monday_close,\n           max(high) AS day_high,\n           min(low) AS day_low,\n           round(toFloat64(sum(volume)) / 1e6, 1) AS shares_traded_m\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')\n      AND window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'\n    GROUP BY ticker\n)\nSELECT\n    m.ticker AS ticker,\n    toFloat64(f.friday_close) AS jun26_close,\n    toFloat64(m.monday_open) AS jun29_open,\n    toFloat64(m.monday_close) AS jun29_close,\n    round((toFloat64(m.monday_close) / toFloat64(f.friday_close) - 1) * 100, 2) AS pct_change,\n    round(100 * (toFloat64(m.monday_close) / toFloat64(f.friday_close) - 1) / max(toFloat64(m.monday_close) / toFloat64(f.friday_close) - 1) OVER (), 1) AS pct_of_best_change,\n    toFloat64(m.day_high) AS day_high,\n    toFloat64(m.day_low) AS day_low,\n    m.shares_traded_m AS shares_traded_m\nFROM monday m\nJOIN friday f ON m.ticker = f.ticker\nORDER BY m.ticker","computed_at":"2026-07-26T05:42:56.817373+00:00","elapsed":0.849024833}