{"slug":"stock-returns-after-the-first-fed-hike","qid":"path_by_week","label":"path_by_week","post_title":"stock-returns-after-the-first-fed-hike","post_url":"/blog/stock-returns-after-the-first-fed-hike#q-path_by_week","columns":["wk_after_hike","cycle_2004_pct","cycle_2015_pct","cycle_2022_pct"],"rows":[{"wk_after_hike":0,"cycle_2004_pct":0,"cycle_2015_pct":0,"cycle_2022_pct":0},{"wk_after_hike":1,"cycle_2004_pct":-2,"cycle_2015_pct":-1,"cycle_2022_pct":1.9},{"wk_after_hike":2,"cycle_2004_pct":-2.6,"cycle_2015_pct":-1,"cycle_2022_pct":5.3},{"wk_after_hike":3,"cycle_2004_pct":-4.3,"cycle_2015_pct":-4.4,"cycle_2022_pct":2.5},{"wk_after_hike":4,"cycle_2004_pct":-3.9,"cycle_2015_pct":-9.2,"cycle_2022_pct":1.8},{"wk_after_hike":5,"cycle_2004_pct":-3.8,"cycle_2015_pct":-10.8,"cycle_2022_pct":2.1},{"wk_after_hike":6,"cycle_2004_pct":-5.6,"cycle_2015_pct":-9.6,"cycle_2022_pct":-4.2},{"wk_after_hike":7,"cycle_2004_pct":-3.9,"cycle_2015_pct":-8,"cycle_2022_pct":-1.5},{"wk_after_hike":8,"cycle_2004_pct":-3,"cycle_2015_pct":-10.9,"cycle_2022_pct":-9.8},{"wk_after_hike":9,"cycle_2004_pct":-2.8,"cycle_2015_pct":-7.3,"cycle_2022_pct":-10},{"wk_after_hike":10,"cycle_2004_pct":-1.7,"cycle_2015_pct":-7.1,"cycle_2022_pct":-8.8},{"wk_after_hike":11,"cycle_2004_pct":-1.5,"cycle_2015_pct":-4.3,"cycle_2022_pct":-6},{"wk_after_hike":12,"cycle_2004_pct":-2.6,"cycle_2015_pct":-4.2,"cycle_2022_pct":-5.6},{"wk_after_hike":13,"cycle_2004_pct":-2.3,"cycle_2015_pct":-2.3,"cycle_2022_pct":-13},{"wk_after_hike":14,"cycle_2004_pct":0.1,"cycle_2015_pct":-2.3,"cycle_2022_pct":-14.1},{"wk_after_hike":15,"cycle_2004_pct":-2.6,"cycle_2015_pct":-1,"cycle_2022_pct":-12.7},{"wk_after_hike":16,"cycle_2004_pct":-3.5,"cycle_2015_pct":-0.8,"cycle_2022_pct":-12},{"wk_after_hike":17,"cycle_2004_pct":-1.4,"cycle_2015_pct":0,"cycle_2022_pct":-13},{"wk_after_hike":18,"cycle_2004_pct":0.4,"cycle_2015_pct":1,"cycle_2022_pct":-9.4},{"wk_after_hike":19,"cycle_2004_pct":2.1,"cycle_2015_pct":0.6,"cycle_2022_pct":-7.9},{"wk_after_hike":20,"cycle_2004_pct":3.5,"cycle_2015_pct":-1.5,"cycle_2022_pct":-4.9},{"wk_after_hike":21,"cycle_2004_pct":3.4,"cycle_2015_pct":-0.7,"cycle_2022_pct":-3.6},{"wk_after_hike":22,"cycle_2004_pct":4.1,"cycle_2015_pct":-1.5,"cycle_2022_pct":-2.1},{"wk_after_hike":23,"cycle_2004_pct":3.7,"cycle_2015_pct":0.6,"cycle_2022_pct":-5},{"wk_after_hike":24,"cycle_2004_pct":5.5,"cycle_2015_pct":1.1,"cycle_2022_pct":-9.3},{"wk_after_hike":25,"cycle_2004_pct":5.4,"cycle_2015_pct":2.1,"cycle_2022_pct":-8.7},{"wk_after_hike":26,"cycle_2004_pct":6,"cycle_2015_pct":-0.1,"cycle_2022_pct":-9.4},{"wk_after_hike":27,"cycle_2004_pct":3,"cycle_2015_pct":0,"cycle_2022_pct":-13.4},{"wk_after_hike":28,"cycle_2004_pct":3.5,"cycle_2015_pct":-0.7,"cycle_2022_pct":-14.9},{"wk_after_hike":29,"cycle_2004_pct":3.2,"cycle_2015_pct":0.8,"cycle_2022_pct":-13.4},{"wk_after_hike":30,"cycle_2004_pct":2.4,"cycle_2015_pct":3.3,"cycle_2022_pct":-18.1},{"wk_after_hike":31,"cycle_2004_pct":4.1,"cycle_2015_pct":4.4,"cycle_2022_pct":-15.4},{"wk_after_hike":32,"cycle_2004_pct":4.2,"cycle_2015_pct":4.1,"cycle_2022_pct":-12.3},{"wk_after_hike":33,"cycle_2004_pct":5.8,"cycle_2015_pct":3.9,"cycle_2022_pct":-13.9},{"wk_after_hike":34,"cycle_2004_pct":4.3,"cycle_2015_pct":4.6,"cycle_2022_pct":-14.1},{"wk_after_hike":35,"cycle_2004_pct":5.8,"cycle_2015_pct":5,"cycle_2022_pct":-9.2},{"wk_after_hike":36,"cycle_2004_pct":5.6,"cycle_2015_pct":4.7,"cycle_2022_pct":-7.6},{"wk_after_hike":37,"cycle_2004_pct":4,"cycle_2015_pct":4.5,"cycle_2022_pct":-6.4},{"wk_after_hike":38,"cycle_2004_pct":2.2,"cycle_2015_pct":5.3,"cycle_2022_pct":-9.7},{"wk_after_hike":39,"cycle_2004_pct":3.2,"cycle_2015_pct":2.5,"cycle_2022_pct":-8.3},{"wk_after_hike":40,"cycle_2004_pct":3.6,"cycle_2015_pct":3.7,"cycle_2022_pct":-11.3},{"wk_after_hike":41,"cycle_2004_pct":2.4,"cycle_2015_pct":4.1,"cycle_2022_pct":-13.5},{"wk_after_hike":42,"cycle_2004_pct":-0.6,"cycle_2015_pct":3.7,"cycle_2022_pct":-11.9},{"wk_after_hike":43,"cycle_2004_pct":1,"cycle_2015_pct":2.7,"cycle_2022_pct":-9.2},{"wk_after_hike":44,"cycle_2004_pct":2.6,"cycle_2015_pct":3,"cycle_2022_pct":-10.1},{"wk_after_hike":45,"cycle_2004_pct":2.4,"cycle_2015_pct":2.7,"cycle_2022_pct":-8.1},{"wk_after_hike":46,"cycle_2004_pct":3.7,"cycle_2015_pct":0.8,"cycle_2022_pct":-5.7},{"wk_after_hike":47,"cycle_2004_pct":4.3,"cycle_2015_pct":4,"cycle_2022_pct":-5.7},{"wk_after_hike":48,"cycle_2004_pct":5.2,"cycle_2015_pct":4.7,"cycle_2022_pct":-5},{"wk_after_hike":49,"cycle_2004_pct":4.7,"cycle_2015_pct":6.1,"cycle_2022_pct":-8.5},{"wk_after_hike":50,"cycle_2004_pct":5.7,"cycle_2015_pct":5.9,"cycle_2022_pct":-9.4},{"wk_after_hike":51,"cycle_2004_pct":6.1,"cycle_2015_pct":8,"cycle_2022_pct":-8.4},{"wk_after_hike":52,"cycle_2004_pct":4.6,"cycle_2015_pct":8.6,"cycle_2022_pct":-10.6}],"shape":"table","sql":"WITH\n    px AS\n    (\n        SELECT\n            date,\n            toFloat64(close) AS px_close,\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.stocks_daily_aggs\n        WHERE ticker = 'SPY'\n          AND ((date >= '2004-06-30' AND date <= '2005-06-30')\n            OR (date >= '2015-12-16' AND date <= '2016-12-16')\n            OR (date >= '2022-03-16' AND date <= '2023-03-16'))\n    ),\n    base AS\n    (\n        SELECT hike_date, argMin(px_close, date) AS hike_close\n        FROM px\n        GROUP BY hike_date\n    ),\n    weekly AS\n    (\n        SELECT\n            p.hike_date                                          AS hk,\n            intDiv(dateDiff('day', p.hike_date, p.date) + 6, 7)  AS wk,\n            argMax(p.px_close, p.date) / any(b.hike_close)       AS ratio\n        FROM px AS p\n        INNER JOIN base AS b ON p.hike_date = b.hike_date\n        GROUP BY hk, wk\n    )\nSELECT\n    wk                                                           AS wk_after_hike,\n    round(100 * (maxIf(ratio, toYear(hk) = 2004) - 1), 1)        AS cycle_2004_pct,\n    round(100 * (maxIf(ratio, toYear(hk) = 2015) - 1), 1)        AS cycle_2015_pct,\n    round(100 * (maxIf(ratio, toYear(hk) = 2022) - 1), 1)        AS cycle_2022_pct\nFROM weekly\nWHERE wk <= 52\nGROUP BY wk\nORDER BY wk","computed_at":"2026-09-20T17:04:27.475429+00:00","elapsed":0.005331621}