STRASMORE/EXPLORE 2,433 QUERIES

path_by_week

Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-09-20, from stock-returns-after-the-first-fed-hike.

as of table 53×4read in context →
path_by_week — 53 rows by 4 columns, computed from US exchange, SIP and OPRA data.
wk_after_hikecycle_2004_pctcycle_2015_pctcycle_2022_pct
0000
1-2-11.9
2-2.6-15.3
3-4.3-4.42.5
4-3.9-9.21.8
5-3.8-10.82.1
6-5.6-9.6-4.2
7-3.9-8-1.5
8-3-10.9-9.8
9-2.8-7.3-10
10-1.7-7.1-8.8
11-1.5-4.3-6
12-2.6-4.2-5.6
13-2.3-2.3-13
140.1-2.3-14.1
15-2.6-1-12.7
16-3.5-0.8-12
17-1.40-13
180.41-9.4
192.10.6-7.9
203.5-1.5-4.9
213.4-0.7-3.6
224.1-1.5-2.1
233.70.6-5
245.51.1-9.3
255.42.1-8.7
266-0.1-9.4
2730-13.4
283.5-0.7-14.9
293.20.8-13.4
302.43.3-18.1
314.14.4-15.4
324.24.1-12.3
335.83.9-13.9
344.34.6-14.1
355.85-9.2
365.64.7-7.6
3744.5-6.4
382.25.3-9.7
393.22.5-8.3
403.63.7-11.3
412.44.1-13.5
42-0.63.7-11.9
4312.7-9.2
442.63-10.1
452.42.7-8.1
463.70.8-5.7
474.34-5.7
485.24.7-5
494.76.1-8.5
505.75.9-9.4
516.18-8.4
524.68.6-10.6
Rows × columns
53 × 4
Computed
Completeness
No missing values
Source
US exchange, SIP and OPRA market data
Licence
Strasmore terms · free, no signup
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for path_by_week, derived from the stored result.
ColumnTypeRangeNotes
wk_after_hike number 0 to 52
cycle_2004_pct number -5.6 to 6.1 percent
cycle_2015_pct number -10.9 to 8.6 percent
cycle_2022_pct number -18.1 to 5.3 percent

Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.

Run it yourself

This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.

WITH
    px AS
    (
        SELECT
            date,
            toFloat64(close) AS px_close,
            multiIf(date <= '2005-06-30', toDate('2004-06-30'),
                    date <= '2016-12-16', toDate('2015-12-16'),
                                          toDate('2022-03-16')) AS hike_date
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'SPY'
          AND ((date >= '2004-06-30' AND date <= '2005-06-30')
            OR (date >= '2015-12-16' AND date <= '2016-12-16')
            OR (date >= '2022-03-16' AND date <= '2023-03-16'))
    ),
    base AS
    (
        SELECT hike_date, argMin(px_close, date) AS hike_close
        FROM px
        GROUP BY hike_date
    ),
    weekly AS
    (
        SELECT
            p.hike_date                                          AS hk,
            intDiv(dateDiff('day', p.hike_date, p.date) + 6, 7)  AS wk,
            argMax(p.px_close, p.date) / any(b.hike_close)       AS ratio
        FROM px AS p
        INNER JOIN base AS b ON p.hike_date = b.hike_date
        GROUP BY hk, wk
    )
SELECT
    wk                                                           AS wk_after_hike,
    round(100 * (maxIf(ratio, toYear(hk) = 2004) - 1), 1)        AS cycle_2004_pct,
    round(100 * (maxIf(ratio, toYear(hk) = 2015) - 1), 1)        AS cycle_2015_pct,
    round(100 * (maxIf(ratio, toYear(hk) = 2022) - 1), 1)        AS cycle_2022_pct
FROM weekly
WHERE wk <= 52
GROUP BY wk
ORDER BY wk
⌘/Ctrl + Enter
More from this analysisstock-returns-after-the-first-fed-hike
range_after_hike table 3×5 forward_returns table 3×5 curve_at_hike ranking 3×4 The 2s10s spread, every print of the half table 124×2 The 2s10s spread, every print of the half table 124×2 Every half-year since 1976: the 2y and 10y change, the twist between them, and the half's lowest 2s10s print table 100×7 See all 2,433 queries →