{"slug":"market-recap-2026-07-02","qid":"baseline_breadth","label":"Advancers vs decliners among tickers with at least $1M traded on July 2","post_title":"Market Recap: July 2, 2026, The Day in Numbers","post_url":"/blog/market-recap-2026-07-02#q-baseline_breadth","columns":["advancers","decliners","unchanged","liquid_tickers","tickers_traded_both_sessions","dropped_by_liquidity_filter","advancer_pct","advancers_fmt","decliners_fmt","dropped_by_liquidity_filter_fmt","tickers_traded_both_sessions_fmt"],"rows":[{"advancers":3398,"decliners":2758,"unchanged":63,"liquid_tickers":6219,"tickers_traded_both_sessions":11536,"dropped_by_liquidity_filter":5317,"advancer_pct":54.6,"advancers_fmt":"3,398","decliners_fmt":"2,758","dropped_by_liquidity_filter_fmt":"5,317","tickers_traded_both_sessions_fmt":"11,536"}],"shape":"scalar","sql":"WITH per_ticker AS (\n    SELECT\n        ticker,\n        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-02 00:00:00')) AS prior_close,\n        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-02 00:00:00')) AS day_close,\n        sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-02 00:00:00') AS day_dollar_volume\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE (window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00')\n       OR (window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00')\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    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    round(100.0 * countIf(day_close > prior_close AND day_dollar_volume >= 1000000)\n        / countIf(day_dollar_volume >= 1000000), 1) AS advancer_pct,\n    reverse(arrayStringConcat(extractAll(reverse(toString(countIf(day_close > prior_close AND day_dollar_volume >= 1000000))), '[0-9]{1,3}'), ',')) AS advancers_fmt,\n    reverse(arrayStringConcat(extractAll(reverse(toString(countIf(day_close < prior_close AND day_dollar_volume >= 1000000))), '[0-9]{1,3}'), ',')) AS decliners_fmt,\n    reverse(arrayStringConcat(extractAll(reverse(toString(count() - countIf(day_dollar_volume >= 1000000))), '[0-9]{1,3}'), ',')) AS dropped_by_liquidity_filter_fmt,\n    reverse(arrayStringConcat(extractAll(reverse(toString(count())), '[0-9]{1,3}'), ',')) AS tickers_traded_both_sessions_fmt\nFROM per_ticker\nWHERE prior_close > 0 AND day_close > 0","computed_at":"2026-07-26T05:44:44.424191+00:00","elapsed":0.766464499}