{"slug":"sector-scorecard-2026-h1","qid":"sector_monthly","label":"XLE, XLF, and XLK by month: the H1 2026 rotation at month grain","post_title":"Sector Scorecard H1 2026: Winners and Losers","post_url":"/blog/sector-scorecard-2026-h1#q-sector_monthly","columns":["month","ticker","month_return_pct"],"rows":[{"month":"2026-01-01","ticker":"XLE","month_return_pct":14.1},{"month":"2026-01-01","ticker":"XLF","month_return_pct":-2.5},{"month":"2026-01-01","ticker":"XLK","month_return_pct":-1.2},{"month":"2026-02-01","ticker":"XLE","month_return_pct":11.6},{"month":"2026-02-01","ticker":"XLF","month_return_pct":-3.8},{"month":"2026-02-01","ticker":"XLK","month_return_pct":-3.3},{"month":"2026-03-01","ticker":"XLE","month_return_pct":6},{"month":"2026-03-01","ticker":"XLF","month_return_pct":-2.4},{"month":"2026-03-01","ticker":"XLK","month_return_pct":-3},{"month":"2026-04-01","ticker":"XLE","month_return_pct":-0.2},{"month":"2026-04-01","ticker":"XLF","month_return_pct":4.7},{"month":"2026-04-01","ticker":"XLK","month_return_pct":18.9},{"month":"2026-05-01","ticker":"XLE","month_return_pct":-4.7},{"month":"2026-05-01","ticker":"XLF","month_return_pct":-1.6},{"month":"2026-05-01","ticker":"XLK","month_return_pct":19.1},{"month":"2026-06-01","ticker":"XLE","month_return_pct":-6.8},{"month":"2026-06-01","ticker":"XLF","month_return_pct":4.7},{"month":"2026-06-01","ticker":"XLK","month_return_pct":-1}],"shape":"series","sql":"SELECT toString(toStartOfMonth(toDate(toTimeZone(window_start, 'America/New_York')))) AS month, ticker,\n    round((argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)\n         / argMinIf(toFloat64(open), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS month_return_pct\nFROM global_markets.delayed_stocks_minute_aggs\nWHERE ticker IN ('XLE', 'XLF', 'XLK')\n  AND window_start >= toDateTime('2026-01-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')\nGROUP BY month, ticker\nORDER BY month, ticker","computed_at":"2026-07-26T06:12:46.737025+00:00","elapsed":0.319388699}