{"slug":"stock-returns-after-the-first-fed-hike","qid":"forward_returns","label":"forward_returns","post_title":"stock-returns-after-the-first-fed-hike","post_url":"/blog/stock-returns-after-the-first-fed-hike#q-forward_returns","columns":["cycle","fwd_1m_pct","fwd_3m_pct","fwd_6m_pct","fwd_12m_pct"],"rows":[{"cycle":"Jun 30, 2004","fwd_1m_pct":-3.2,"fwd_3m_pct":-2.4,"fwd_6m_pct":5.8,"fwd_12m_pct":4.1},{"cycle":"Dec 16, 2015","fwd_1m_pct":-9.7,"fwd_3m_pct":-2.3,"fwd_6m_pct":0.2,"fwd_12m_pct":8.2},{"cycle":"Mar 16, 2022","fwd_1m_pct":0.5,"fwd_3m_pct":-15.8,"fwd_6m_pct":-11.5,"fwd_12m_pct":-9.1}],"shape":"table","sql":"WITH 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)\nSELECT\n    formatDateTime(hike_date, '%b %e, %Y')                                                                    AS cycle,\n    round(100 * (argMaxIf(px_close, date, date <= addMonths(hike_date, 1))  / argMin(px_close, date) - 1), 1) AS fwd_1m_pct,\n    round(100 * (argMaxIf(px_close, date, date <= addMonths(hike_date, 3))  / argMin(px_close, date) - 1), 1) AS fwd_3m_pct,\n    round(100 * (argMaxIf(px_close, date, date <= addMonths(hike_date, 6))  / argMin(px_close, date) - 1), 1) AS fwd_6m_pct,\n    round(100 * (argMaxIf(px_close, date, date <= addMonths(hike_date, 12)) / argMin(px_close, date) - 1), 1) AS fwd_12m_pct\nFROM px\nGROUP BY hike_date\nORDER BY hike_date","computed_at":"2026-09-20T17:04:27.380100+00:00","elapsed":0.004252243}