{"slug":"ai-daily-market-research-reports","qid":"moves_without_news","label":"Headline coverage by size of daily move: 36 large caps, May to July 2026","post_title":"AI Daily Market Research Reports: What Breaks","post_url":"/blog/ai-daily-market-research-reports#q-moves_without_news","columns":["move_bucket","ticker_day_count","pct_with_headline","avg_headlines"],"rows":[{"move_bucket":"moved 5% or more","ticker_day_count":54,"pct_with_headline":94.4,"avg_headlines":4.4},{"move_bucket":"moved 3% to 5%","ticker_day_count":190,"pct_with_headline":70.5,"avg_headlines":4.1},{"move_bucket":"moved 2% to 3%","ticker_day_count":292,"pct_with_headline":70.9,"avg_headlines":3.7},{"move_bucket":"moved 1% to 2%","ticker_day_count":638,"pct_with_headline":68.8,"avg_headlines":3.4},{"move_bucket":"moved under 1%","ticker_day_count":1094,"pct_with_headline":67.2,"avg_headlines":3}],"shape":"ranking","sql":"WITH moves AS (\n    SELECT ticker,\n           toDate(toTimeZone(window_start, 'America/New_York')) AS d,\n           (argMax(close, window_start) / argMin(open, window_start) - 1) * 100 AS move_pct\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker IN ('AAPL','MSFT','NVDA','AMZN','GOOGL','META','TSLA','AVGO','JPM','XOM',\n                     'JNJ','WMT','PG','KO','HD','CVX','MRK','PEP','COST','CSCO',\n                     'ORCL','CRM','AMD','NFLX','DIS','BA','CAT','IBM','T','VZ',\n                     'PFE','NKE','MCD','UNH','BAC','QCOM')\n      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-05-01')\n      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-07-31')\n      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959\n    GROUP BY ticker, d\n),\nheadlines AS (\n    SELECT arrayJoin(tickers) AS ticker,\n           toDate(toTimeZone(published_utc, 'America/New_York')) AS d,\n           count() AS articles\n    FROM global_markets.stocks_news\n    WHERE published_utc >= toDateTime('2026-05-01 04:00:00')\n      AND published_utc < toDateTime('2026-08-01 04:00:00')\n      AND hasAny(tickers, ['AAPL','MSFT','NVDA','AMZN','GOOGL','META','TSLA','AVGO','JPM','XOM',\n                           'JNJ','WMT','PG','KO','HD','CVX','MRK','PEP','COST','CSCO',\n                           'ORCL','CRM','AMD','NFLX','DIS','BA','CAT','IBM','T','VZ',\n                           'PFE','NKE','MCD','UNH','BAC','QCOM'])\n    GROUP BY ticker, d\n),\njoined AS (\n    SELECT multiIf(abs(m.move_pct) >= 5, 'moved 5% or more',\n                   abs(m.move_pct) >= 3, 'moved 3% to 5%',\n                   abs(m.move_pct) >= 2, 'moved 2% to 3%',\n                   abs(m.move_pct) >= 1, 'moved 1% to 2%',\n                   'moved under 1%') AS move_bucket,\n           multiIf(abs(m.move_pct) >= 5, 5,\n                   abs(m.move_pct) >= 3, 4,\n                   abs(m.move_pct) >= 2, 3,\n                   abs(m.move_pct) >= 1, 2,\n                   1) AS bucket_rank,\n           ifNull(h.articles, 0) AS articles\n    FROM moves AS m\n    LEFT JOIN headlines AS h ON m.ticker = h.ticker AND m.d = h.d\n)\nSELECT move_bucket,\n       count() AS ticker_day_count,\n       round(100 * countIf(articles > 0) / count(), 1) AS pct_with_headline,\n       round(avg(articles), 1) AS avg_headlines\nFROM joined\nGROUP BY move_bucket, bucket_rank\nORDER BY bucket_rank DESC","computed_at":"2026-08-01T08:50:21.799301+00:00","elapsed":2.826254497}