{"slug":"stock-returns-after-the-first-fed-hike","qid":"curve_at_hike","label":"curve_at_hike","post_title":"stock-returns-after-the-first-fed-hike","post_url":"/blog/stock-returns-after-the-first-fed-hike#q-curve_at_hike","columns":["cycle","spread_at_hike_bps","spread_12m_later_bps","change_bps"],"rows":[{"cycle":"Jun 30, 2004","spread_at_hike_bps":192,"spread_12m_later_bps":28,"change_bps":-164},{"cycle":"Dec 16, 2015","spread_at_hike_bps":128,"spread_12m_later_bps":132,"change_bps":4},{"cycle":"Mar 16, 2022","spread_at_hike_bps":24,"spread_12m_later_bps":-58,"change_bps":-82}],"shape":"ranking","sql":"WITH ty AS\n(\n    SELECT\n        date,\n        toFloat64(yield_10_year) - toFloat64(yield_2_year) AS spread_pp,\n        multiIf(date <= '2005-06-30', toDate('2004-06-30'),\n                date <= '2016-12-16', toDate('2015-12-16'),\n                                      toDate('2022-03-16')) AS hike_date\n    FROM global_markets.treasury_yields\n    WHERE ((date >= '2004-06-23' AND date <= '2005-06-30')\n        OR (date >= '2015-12-09' AND date <= '2016-12-16')\n        OR (date >= '2022-03-09' AND date <= '2023-03-16'))\n      AND yield_10_year > 0\n      AND yield_2_year > 0\n)\nSELECT\n    formatDateTime(hike_date, '%b %e, %Y')                                                AS cycle,\n    toInt32(round(100 * argMaxIf(spread_pp, date, date <= hike_date)))                    AS spread_at_hike_bps,\n    toInt32(round(100 * argMaxIf(spread_pp, date, date <= addMonths(hike_date, 12))))     AS spread_12m_later_bps,\n    toInt32(round(100 * (argMaxIf(spread_pp, date, date <= addMonths(hike_date, 12))\n                       - argMaxIf(spread_pp, date, date <= hike_date))))                  AS change_bps\nFROM ty\nGROUP BY hike_date\nHAVING countIf(date <= hike_date) > 0\nORDER BY hike_date","computed_at":"2026-09-20T17:04:27.665066+00:00","elapsed":0.004294838}