{"slug":"market-recap-2026-07-01","qid":"baseline_breadth","label":"Advancers, decliners, and new quarterly highs vs lows among tickers with at least $1M traded on July 1","post_title":"Market Recap: July 1, 2026, The Day in Numbers","post_url":"/blog/market-recap-2026-07-01#q-baseline_breadth","columns":["advancers","decliners","unchanged","advancer_pct","new_quarter_highs","new_quarter_lows","highs_per_low","names_with_a_full_quarter","liquid_tickers","tickers_traded_both_sessions","dropped_by_liquidity_filter","dropped_short_quarter_history"],"rows":[{"advancers":2928,"decliners":3465,"unchanged":82,"advancer_pct":45.2,"new_quarter_highs":836,"new_quarter_lows":246,"highs_per_low":3.4,"names_with_a_full_quarter":6217,"liquid_tickers":6475,"tickers_traded_both_sessions":11910,"dropped_by_liquidity_filter":5435,"dropped_short_quarter_history":258}],"shape":"scalar","sql":"WITH per_ticker AS (\n    SELECT\n        ticker,\n        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-01 00:00:00')) AS prior_close,\n        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-01 00:00:00')) AS day_close,\n        maxIf(toFloat64(high), window_start < '2026-07-01 00:00:00') AS quarter_high,\n        minIf(toFloat64(low), window_start < '2026-07-01 00:00:00') AS quarter_low,\n        maxIf(toFloat64(high), window_start >= '2026-07-01 00:00:00') AS day_high,\n        minIf(toFloat64(low), window_start >= '2026-07-01 00:00:00') AS day_low,\n        sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-01 00:00:00') AS day_dollar_volume,\n        countIf(window_start < '2026-07-01 00:00:00') AS quarter_bars\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ((window_start >= '2026-04-01 13:30:00' AND window_start < '2026-06-30 20:00:00')\n        OR (window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00'))\n      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199\n    GROUP BY ticker\n)\nSELECT\n    countIf(day_close > prior_close AND day_dollar_volume >= 1000000) AS advancers,\n    countIf(day_close < prior_close AND day_dollar_volume >= 1000000) AS decliners,\n    countIf(day_close = prior_close AND day_dollar_volume >= 1000000) AS unchanged,\n    round(100.0 * countIf(day_close > prior_close AND day_dollar_volume >= 1000000)\n        / countIf(day_dollar_volume >= 1000000), 1) AS advancer_pct,\n    countIf(day_dollar_volume >= 1000000 AND quarter_bars >= 1000 AND day_high > quarter_high) AS new_quarter_highs,\n    countIf(day_dollar_volume >= 1000000 AND quarter_bars >= 1000 AND day_low < quarter_low) AS new_quarter_lows,\n    round(countIf(day_dollar_volume >= 1000000 AND quarter_bars >= 1000 AND day_high > quarter_high)\n        / countIf(day_dollar_volume >= 1000000 AND quarter_bars >= 1000 AND day_low < quarter_low), 1) AS highs_per_low,\n    countIf(day_dollar_volume >= 1000000 AND quarter_bars >= 1000) AS names_with_a_full_quarter,\n    countIf(day_dollar_volume >= 1000000) AS liquid_tickers,\n    count() AS tickers_traded_both_sessions,\n    count() - countIf(day_dollar_volume >= 1000000) AS dropped_by_liquidity_filter,\n    countIf(day_dollar_volume >= 1000000 AND quarter_bars < 1000) AS dropped_short_quarter_history\nFROM per_ticker\nWHERE prior_close > 0 AND day_close > 0","computed_at":"2026-07-26T05:44:12.206358+00:00","elapsed":39.308641446}