factor · Momentum

Momentum factor — explained

Momentum bets that a stock's recent trajectory persists. Our live signal is led by where the price sits inside its 52-week range — stocks near their highs tend to keep outperforming — blended with a short-term price move and a revenue-acceleration read. The mechanism is behavioural: anchoring to the 52-week high and under-reaction to good news.

Where this comes from

Academic anchor

George & Hwang 2004 — The 52-Week High and Momentum Investing
Shows that a stock's nearness to its 52-week high predicts future returns and largely subsumes traditional trailing-return momentum — ranking on proximity to the 52-week high dominates the classic Jegadeesh-Titman construction. The broader momentum family (Jegadeesh-Titman 1993; Asness-Moskowitz-Pedersen 2013) documents that winners keep winning across markets and asset classes. Our live implementation uses the 52-week-high variant, not the 12-1 construction.
Plain English

What it actually measures

Investors anchor to a stock's 52-week high. When a name pushes toward that high on good news, some holders sell to 'lock in gains' and new buyers hesitate at the round number — so the price under-reacts and keeps drifting up over the following weeks (George-Hwang 2004). We read that as position inside the 52-week range: near the top is bullish, near the bottom bearish. A short-term price component and a revenue-acceleration read are blended in as secondary, faster-moving inputs. We do not currently run a trailing-12-month (12-1) construction.

No calibration constants

Math sketch

inputs   · position of today's price inside the 52-week range
         · short-term price return (fast, mean-reverting component)
         · revenue acceleration: annualised QoQ growth minus YoY growth
ideas    · 52-week-range position is the load-bearing signal
         · the short-term return is down-weighted (one bad close must
           not flip the verdict)
         · revenue acceleration nudges the score toward an inflecting
           business, then the result is standardised across the universe
output   · cross-sectional standardised score

The exact range buckets, the blend weights between the 52-week position and the short-term component, and the revenue-acceleration weighting are calibrated and proprietary. Public: that the dominant signal is 52-week-range position (George-Hwang 2004), that a short-term price move and revenue acceleration are blended in as secondary inputs, and that the result is sign-aligned (high score → bullish). We do NOT currently run the 12-1 Jegadeesh-Titman construction — that remains a roadmap item.

Pipeline

How Framler implements it

Daily price refresh runs every 5 minutes during market hours; the 52-week high/low come from Yahoo Finance EOD data and the range position is computed at scoring time, with revenue growth from FMP fundamentals. The factor feeds the composite at scoring time. Cross-asset macro conditions (HYG/LQD ratio, DXY, VIX backwardation per the v2 add) influence whether momentum's amplifier is bumped or dampened that day.

One coherent posterior

How it composes with Framler

Momentum is regime-conditional in the strongest sense — its amplifier is positive in risk-on regimes and dampened sharply in risk-off (Hamilton 1989 + Ang-Bekaert 2002), with the exact magnitudes recalibrated quarterly. Combined with Value, momentum forms the value-and-momentum duo Asness-Moskowitz-Pedersen 2013 documented across asset classes. When momentum + quality + value align bullish on the same ticker, the GROWTH REGIME ALIGNED confluence pattern fires. Bearish momentum + falling earnings + high accruals triggers the QUALITY CRACK pattern.

Honest limitations

When it fails

Momentum collapses violently around regime turns — 52-week-high momentum included. The classic failure is February-April 2009: names that had crashed and were rebounding off their lows flipped the signal at the worst moment. The 2022 crash showed similar vulnerability. We hedge structurally via two layers: (a) BOCPD regime detector dampens momentum's amplifier when risk-off probability rises; (b) the conformal prediction interval widens automatically near regime boundaries so position sizing self-adjusts. Neither prevents a momentum crash; both reduce the bet size before one.

Pro depth

Engineering integration

How Momentum flows through the production engine
Sign convention
Bullish-when-high. Universal across all 13 factor families — a high Momentum score reads as a bullish lean, low as bearish, 50 as neutral. The composite inherits the convention unchanged.
Standardisation
Cross-sectional z-score per scoring day across the 1,000+-ticker universe, then mapped to 0-100. Tickers without sufficient input data surface as null and the composite skip-and-renormalise path takes over (Asness-Frazzini-Pedersen 2014).
Refresh cadence
Recomputed daily via the universe-scoring cron (production runs 06:00 UTC on weekdays via Vercel + GitHub Actions). Factor-specific upstream data refresh is described in the implementation section above.
Composite entry
Enters the Bayesian composite with a regime-conditional weight calibrated weekly by the calibrate-weights cron against accumulated forward-return data. Per-regime weight vectors are proprietary; the architecture is in the math sketch above.
Diagnostic surface
Live structural invariants on /coherence exercise the math stack on every request (factor correlation matrix, BOCPD posterior, Mondrian bin coverage). Coverage and IC accumulate weekly via the accuracy-check cron; the sector-honesty panel on /track-record publishes per-cohort calibration tiers.
Hidden by design
The exact factor weight, regime-conditional multipliers, and any constant inside the math sketch marked «calibrated and proprietary» stay private — that's the engineering moat. Everything above architecture-level is published; everything below stays in the engine.
Read next

Related factors

QualityValue

See Momentum score on a real ticker

Every ticker page shows the per-factor decomposition. The Momentum score is one of thirteen composing the 0–100 the composite score.

Try NVDA →Full methodologyMath coherence live
Momentum factor explained | Framler