{"slug":"the-january-barometer","qid":"year_by_year","label":"year_by_year","post_title":"the-january-barometer","post_url":"/blog/the-january-barometer#q-year_by_year","columns":["year","january_pct","year_pct","feb_to_dec_pct"],"rows":[{"year":2004,"january_pct":1.98,"year_pct":8.62,"feb_to_dec_pct":6.51},{"year":2005,"january_pct":-2.24,"year_pct":3.01,"feb_to_dec_pct":5.37},{"year":2006,"january_pct":2.4,"year_pct":13.74,"feb_to_dec_pct":11.07},{"year":2007,"january_pct":1.5,"year_pct":3.24,"feb_to_dec_pct":1.71},{"year":2008,"january_pct":-6.05,"year_pct":-38.28,"feb_to_dec_pct":-34.31},{"year":2009,"january_pct":-8.21,"year_pct":23.49,"feb_to_dec_pct":34.54},{"year":2010,"january_pct":-3.63,"year_pct":12.84,"feb_to_dec_pct":17.1},{"year":2011,"january_pct":2.33,"year_pct":-0.2,"feb_to_dec_pct":-2.47},{"year":2012,"january_pct":4.64,"year_pct":13.47,"feb_to_dec_pct":8.45},{"year":2013,"january_pct":5.12,"year_pct":29.69,"feb_to_dec_pct":23.37},{"year":2014,"january_pct":-3.52,"year_pct":11.29,"feb_to_dec_pct":15.36},{"year":2015,"january_pct":-2.96,"year_pct":-0.81,"feb_to_dec_pct":2.22},{"year":2016,"january_pct":-4.98,"year_pct":9.64,"feb_to_dec_pct":15.39},{"year":2017,"january_pct":1.79,"year_pct":19.38,"feb_to_dec_pct":17.29},{"year":2018,"january_pct":5.64,"year_pct":-6.35,"feb_to_dec_pct":-11.34},{"year":2019,"january_pct":8.01,"year_pct":28.79,"feb_to_dec_pct":19.24},{"year":2020,"january_pct":-0.04,"year_pct":16.16,"feb_to_dec_pct":16.21},{"year":2021,"january_pct":-1.02,"year_pct":27.04,"feb_to_dec_pct":28.34},{"year":2022,"january_pct":-5.27,"year_pct":-19.48,"feb_to_dec_pct":-15},{"year":2023,"january_pct":6.29,"year_pct":24.29,"feb_to_dec_pct":16.93},{"year":2024,"january_pct":1.59,"year_pct":23.3,"feb_to_dec_pct":21.37},{"year":2025,"january_pct":2.69,"year_pct":16.35,"feb_to_dec_pct":13.31}],"shape":"ranking","sql":"WITH yearly AS\n(\n    SELECT\n        toYear(date)                              AS y,\n        argMax(close, date)                       AS dec_close,\n        argMaxIf(close, date, toMonth(date) = 1)   AS jan_close,\n        countIf(toMonth(date) = 1)                AS jan_sessions,\n        countIf(toMonth(date) = 12)               AS dec_sessions\n    FROM global_markets.stocks_daily_aggs\n    WHERE ticker = 'SPY'\n    GROUP BY y\n)\nSELECT\n    cur.y                                                                      AS year,\n    round(100 * (toFloat64(cur.jan_close) / toFloat64(prev.dec_close) - 1), 2) AS january_pct,\n    round(100 * (toFloat64(cur.dec_close) / toFloat64(prev.dec_close) - 1), 2) AS year_pct,\n    round(100 * (toFloat64(cur.dec_close) / toFloat64(cur.jan_close) - 1), 2)  AS feb_to_dec_pct\nFROM yearly AS cur\nINNER JOIN yearly AS prev ON prev.y = cur.y - 1\nWHERE cur.jan_sessions >= 15\n  AND cur.dec_sessions >= 15\nORDER BY year","computed_at":"2026-10-02T15:44:30.940873+00:00","elapsed":0.008962564}