STRASMORE/EXPLORE 3,256 QUERIES 22Y EQUITIES · 12Y OPTIONS

3,256 answered market questions

every one with its exact SQL, its result and the date it was computed · free, no signup

January Barometer: Does It Actually Work?
January's return next to the full year, every complete year of SPY historyranking · 2026-10-02 · 22×4Preview: 16 ranked values, smallest first. Barometer hit rate against the unconditional base rate, by January's signtable · 2026-10-02 · 3×5 The same hit rates with January removed from the outcome windowranking · 2026-10-02 · 3×4Preview: 3 ranked values, largest first. The same scoring on three index funds over a shared window from 2000ranking · 2026-10-02 · 3×4Preview: 3 ranked values, largest first. Barometer hit rate by decade, with the share of up years in eachranking · 2026-10-02 · 3×4Preview: 3 ranked values, largest first.
The September Effect: Is It Real? SPY Data
The three worst SPY Septembers on recordranking · 2026-09-26 · 3×2Preview: 3 ranked values, smallest first. SPY September price return, year by yearranking · 2026-09-26 · 22×2Preview: 16 ranked values, smallest first. SPY monthly price returns by calendar month, complete years onlytable · 2026-09-26 · 12×6 Average September vs. the other eleven months, by decaderanking · 2026-09-26 · 3×4Preview: 3 ranked values, largest first.
Santa Claus Rally: Hit Rate and Returns by Year
The five weakest Santa Claus windows on record, with the calendar year that followed eachtable · 2026-09-26 · 5×5 Santa Claus window vs. the rest of December vs. the whole month, SPY, all years on recordtable · 2026-09-26 · 3×8 SPY volume in each Santa Claus window session as a share of its year's average daily volumeranking · 2026-09-26 · 7×4Preview: 7 ranked values, smallest first. Santa Claus rally window return by year, SPY, with the full calendar December alongsidetable · 2026-09-26 · 23×5 Failed vs. successful Santa Claus windows and the calendar year that followedtable · 2026-09-26 · 2×6
The January Effect: Does It Still Work?
SPY share volume around the turn of the year, averaged since 2011ranking · 2026-08-11 · 19×3Preview: 16 ranked values, largest first. Distinct symbols printing at least one session, by yearranking · 2026-08-11 · 20×2Preview: 16 ranked values, smallest first. The tape by average dollar volume, June 2026ranking · 2026-08-11 · 5×3Preview: 5 ranked values, largest first. Every January on the daily tape, in trading sessionsranking · 2026-08-11 · 23×2Preview: 16 ranked values, smallest first.
When Companies Announce Dividend Raises
Share of annual raises declared in the same month as the prior raise, by yearranking · 2026-08-03 · 10×4Preview: 10 ranked values, smallest first. Dividend raises by declaration month: US recurring quarterly payers, July 2015 to July 2026ranking · 2026-08-03 · 12×3Preview: 12 ranked values, largest first. JNJ dividend raises: declaration date, old rate, new rate, 2016 to 2026table · 2026-08-03 · 11×5 Typical raise month by company: twelve dividend growers, raises since 2016series · 2026-08-03 · 12×5Preview: a 12-point series, ending lower. Declaration record by year: recurring dividends, count, and days from declaration to ex-datetable · 2026-08-03 · 11×5
Does Sell in May and Go Away Work?
Growth of one dollar: holding all year vs holding only November through Aprilranking · 2026-08-03 · 21×3Preview: 16 ranked values, smallest first. The seasonal gap by era: average half-year returns and the spread between themtable · 2026-08-03 · 3×6 S&P 500 tracker: May to October vs November to April, season by seasonranking · 2026-08-03 · 21×3Preview: 16 ranked values, smallest first. Average S&P 500 tracker return by calendar month, May 2005 through April 2026table · 2026-08-03 · 12×5 SPY distributions by ex-dividend month: inside the May to October window vs outside itranking · 2026-08-03 · 19×3Preview: 16 ranked values, smallest first.
January's return next to the full year, every complete year of SPY history

January's return next to the full year, every complete year of SPY history

most recentas of ranking 22×4read in context →
January's return next to the full year, every complete year of SPY history — 22 rows by 4 columns, computed from US exchange, SIP and OPRA data.
yearjanuary_pctyear_pctfeb_to_dec_pct
20041.988.626.51
2005-2.243.015.37
20062.413.7411.07
20071.53.241.71
2008-6.05-38.28-34.31
2009-8.2123.4934.54
2010-3.6312.8417.1
20112.33-0.2-2.47
20124.6413.478.45
20135.1229.6923.37
2014-3.5211.2915.36
2015-2.96-0.812.22
2016-4.989.6415.39
20171.7919.3817.29
20185.64-6.35-11.34
20198.0128.7919.24
2020-0.0416.1616.21
2021-1.0227.0428.34
2022-5.27-19.48-15
20236.2924.2916.93
20241.5923.321.37
20252.6916.3513.31
the exact SQL behind every number
WITH yearly AS
(
    SELECT
        toYear(date)                              AS y,
        argMax(close, date)                       AS dec_close,
        argMaxIf(close, date, toMonth(date) = 1)   AS jan_close,
        countIf(toMonth(date) = 1)                AS jan_sessions,
        countIf(toMonth(date) = 12)               AS dec_sessions
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'SPY'
    GROUP BY y
)
SELECT
    cur.y                                                                      AS year,
    round(100 * (toFloat64(cur.jan_close) / toFloat64(prev.dec_close) - 1), 2) AS january_pct,
    round(100 * (toFloat64(cur.dec_close) / toFloat64(prev.dec_close) - 1), 2) AS year_pct,
    round(100 * (toFloat64(cur.dec_close) / toFloat64(cur.jan_close) - 1), 2)  AS feb_to_dec_pct
FROM yearly AS cur
INNER JOIN yearly AS prev ON prev.y = cur.y - 1
WHERE cur.jan_sessions >= 15
  AND cur.dec_sessions >= 15
ORDER BY year
$