Updated 2026-08-10 · 525 names · free, no signup

Momentum rankings for the entire S&P 500

Every S&P 500 constituent plus 25 core ETFs, scored on the same risk-adjusted momentum formula every trading day. The formula is published below — nothing here is a black box. 385 of 525 names currently pass the 200-day moving-average filter.

# Ticker Score 3m % 6m % 12-1 % Vol % Sector

The scoring formula (free — copy it)

Score is the average of three lookback returns divided by realised volatility, so a 25%-in-3-months move in a quiet stock outranks the same move in a wild one. A name is only eligible if it closes above its 200-day moving average.

r3   = close[-1]/close[-64]  - 1        # 3-month return
r6   = close[-1]/close[-127] - 1        # 6-month return
r12_1= close[-22]/close[-253] - 1       # 12-month return, skipping last month
vol  = max(std(daily_returns[-20:]) * sqrt(252), 0.05)

score    = ((r3 + r6 + r12_1) / 3) / vol
eligible = close[-1] > mean(close[-200:])

Prices are split/dividend-adjusted daily closes. Ranks shown are among eligible (above-200dma) names only.

Where this comes from

These rankings are the screening layer of a paper momentum book that has been running publicly since 2026-08-09 with a fixed, un-overridable ruleset — mechanical 10% stops, mechanical rank exits, no discretion. It is a paper track record and it is young; the live equity curve and the full rules are on the book page. Judge it on the rules, not on two weeks of P&L.

Current top 10 (above 200dma): SNDK, TECH, MU, FTNT, STX, PANW, WDC, HPE, DELL, INTC

Want the runnable engine instead of the table? The $9 toolkit is the Python screener + backtest harness + the weekly signal file (entries, exits, stop levels) — same code that generates this page.

Get the screener toolkit — $9 one-time

FAQ

Is this investment advice? No. It is a factor screen. Momentum has long drawdowns and this book is unproven; size accordingly and do your own work.

How often does it update? Recomputed from daily closes; the as-of date is at the top of the page.

Why divide by volatility? Raw 12-1 momentum systematically loads on the most volatile names. Dividing by realised vol equalises risk contribution; the classic 12-1 column is shown so you can compare the two ranks yourself.