{"slug":"market-recap-2026-07-28","qid":"baseline_scoreboard","label":"SPY / QQQ / DIA / IWM: July 28 vs the July 27 close, regular hours","post_title":"Market Recap: July 28, 2026, The Day in Numbers","post_url":"/blog/market-recap-2026-07-28#q-baseline_scoreboard","columns":["ticker","prior_close","day_open","day_close","gap_pct","intraday_pct","pct_change","day_high","day_low","shares_traded_m"],"rows":[{"ticker":"DIA","prior_close":521.34,"day_open":526.19,"day_close":526.94,"gap_pct":0.93,"intraday_pct":0.14,"pct_change":1.07,"day_high":528.47,"day_low":523.67,"shares_traded_m":4.4},{"ticker":"IWM","prior_close":292.92,"day_open":293.16,"day_close":293.37,"gap_pct":0.08,"intraday_pct":0.07,"pct_change":0.15,"day_high":293.77,"day_low":290.38,"shares_traded_m":19.2},{"ticker":"QQQ","prior_close":682.06,"day_open":676.23,"day_close":675.5,"gap_pct":-0.85,"intraday_pct":-0.11,"pct_change":-0.96,"day_high":679.4,"day_low":667.88,"shares_traded_m":44.4},{"ticker":"SPY","prior_close":739.02,"day_open":739.19,"day_close":740.76,"gap_pct":0.02,"intraday_pct":0.21,"pct_change":0.24,"day_high":742.79,"day_low":735.98,"shares_traded_m":38.9}],"shape":"table","sql":"WITH prior AS (\n    SELECT ticker, argMax(close, window_start) AS prior_close\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')\n      AND window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00'\n    GROUP BY ticker\n),\nsess AS (\n    SELECT ticker,\n           argMin(open, window_start) AS day_open,\n           argMax(close, window_start) AS day_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-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00'\n    GROUP BY ticker\n)\nSELECT\n    s.ticker AS ticker,\n    round(toFloat64(p.prior_close), 2) AS prior_close,\n    round(toFloat64(s.day_open), 2) AS day_open,\n    round(toFloat64(s.day_close), 2) AS day_close,\n    round((toFloat64(s.day_open) / toFloat64(p.prior_close) - 1) * 100, 2) AS gap_pct,\n    round((toFloat64(s.day_close) / toFloat64(s.day_open) - 1) * 100, 2) AS intraday_pct,\n    round((toFloat64(s.day_close) / toFloat64(p.prior_close) - 1) * 100, 2) AS pct_change,\n    round(toFloat64(s.day_high), 2) AS day_high,\n    round(toFloat64(s.day_low), 2) AS day_low,\n    s.shares_traded_m\nFROM sess s LEFT JOIN prior p ON s.ticker = p.ticker\nORDER BY ticker","computed_at":"2026-08-01T23:43:46.589638+00:00","elapsed":0.731142188}