{"slug":"market-recap-2026-06-30","qid":"baseline_breadth","label":"Advancers vs decliners among tickers with at least $1M traded on June 30","post_title":"Market Recap: June 30, 2026, The Day in Numbers","post_url":"/blog/market-recap-2026-06-30#q-baseline_breadth","columns":["advancers","decliners","unchanged","liquid_tickers","tickers_traded_both_sessions","dropped_by_liquidity_filter","advancer_pct","sector_funds_counted","sector_funds_up"],"rows":[{"advancers":3349,"decliners":3033,"unchanged":88,"liquid_tickers":6470,"tickers_traded_both_sessions":11525,"dropped_by_liquidity_filter":5055,"advancer_pct":51.8,"sector_funds_counted":10,"sector_funds_up":4}],"shape":"scalar","sql":"WITH per_ticker AS (\n    SELECT\n        ticker,\n        toFloat64(argMaxIf(close, window_start, window_start < '2026-06-30 00:00:00')) AS prior_close,\n        toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-30 00:00:00')) AS day_close,\n        sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-06-30 00:00:00') AS day_dollar_volume\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE (window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00')\n       OR (window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 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    countIf(ticker IN ('XLB', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')) AS sector_funds_counted,\n    countIf(ticker IN ('XLB', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')\n        AND day_close > prior_close) AS sector_funds_up\nFROM per_ticker\nWHERE prior_close > 0 AND day_close > 0","computed_at":"2026-07-26T05:43:15.305351+00:00","elapsed":0.663848259}