Two uncorrelated factors in one score: a valuation composite finds the cheap stocks, momentum shows when the market starts to discover them.
Save the strategy and StockScorer checks its rules for you every day. You'll get a heads-up whenever a stock crosses the upper or lower score threshold.
MSCI World over the same period: +240.1 %
Past performance is not a reliable indicator of future results.
| Score | Number of stocks |
|---|---|
| -4 | 411 |
| -3 | 537 |
| -2 | 1,184 |
| -1 | 1,052 |
| 0 | 1,808 |
| +1 | 3,007 |
| +2 | 2,816 |
| +3 | 2,228 |
| +4 | 1,596 |
| +5 | 1,087 |
| +6 | 452 |
| +7 | 87 |
Every stock runs through the same disclosed rules. The points add up to a score, traceable down to the individual rule.
Each rule checks a metric against a threshold, for example ROE above 15 %.
You decide how much each rule counts: from +1 to +3 or −1 to −3.
The sum is the score. That gives three classes: high, medium, low match.
These terms describe only the match with the criteria, not a recommendation to buy or sell.
Six metrics (P/E, P/B, EV/Sales, FCF yield, EV/EBITDA, payout) earn one point each.
The absolute 6-month price move delivers a small add-on as a timing signal, without overriding the value filter.
An intact downtrend below −10% over six months costs a point: cheap and still falling is the classic trap.
Being expensive on P/E, P/B and EV/EBITDA at the same time earns a hard deduction.
These exact rules run over every stock daily.
After a free sign-up: the full profile in the rule editor to copy, adjust thresholds and save as your own starting profile.
See & copy all rulesThe backtest shows a total return of +284.8%. The MSCI World reaches +240.1% over the same period.
Survivorship-free since June 30, 2015: the index composition is applied point-in-time.
Historical period, quarterly rebalancing, no taxes or fees. Past performance is not a reliable indicator of future results.
Purely mechanical rule application, no curated-list effect: stocks with a high match can fall just like any other stock.
For systematic investors who want to harvest value premia without waiting years for the re-rating. The momentum trigger means more portfolio turnover than pure value strategies; if you rarely want to look at your portfolio, the classic valuation strategies are a better fit.
Single valuation metrics mislead: a low P/E can be a cyclical earnings peak, a low P/B a write-down candidate. James O'Shaughnessy showed empirically that a composite of several metrics ("Value Composite") is more reliable than any single figure, and that coupling it to a stubborn price momentum defuses the classic value trap: it is not the cheapest that gets selected, but the cheap stock the market has just begun to correct. In the original, value is the filter (only the cheapest decile is considered) and momentum ranks within it. StockScorer implements the value composite with six valuation points; the absolute 6-month price move, as in the original, has since the fidelity round acted only as a small ±1 add-on and tiebreaker, so momentum cannot override the value filter.
The value composite awards one point each for: P/E below 12, P/B below 1.5, EV/Sales below 1.2, FCF yield above 6.7% (equivalent to a price below 15 times free cash flow), EV/EBITDA below 8 and a shareholder yield (dividends plus net buybacks) above 2.5%. Being expensive or without a value on P/E, P/B and EV/EBITDA simultaneously earns −3: the most expensive corner of the market.
Momentum now provides only the timing, not the selection: an absolute 6-month price move above +10% earns +1 point, an intact downtrend below −10% costs 1 point. The upper threshold is a uniform 5 points across all size classes: at least four value hits plus positive momentum, or all six value hits alone.
Value composite (each +1): P/E 0–12, P/B 0–1.5, EV/Sales 0–1.2, FCF yield > 6.7%, EV/EBITDA 0–8, shareholder yield > 2.5%.
Broad expensive deduction (−3): P/E above 25, P/B above 3 and EV/EBITDA above 15 at the same time; missing values count to the expensive side.
Momentum (absolute 6-month price move, as in the original): above +10% (+1), below −10% (−1). Also acts as the tiebreaker on equal scores.
The original ("Trending Value") ranks the universe in two percentile stages: first the value composite of six metrics as a filter onto the cheapest decile, then momentum ranks WITHIN that decile. StockScorer translates the value rank into absolute thresholds: one binary cheapness point per metric. Three metrics are replaced by close relatives: EV/Sales instead of price/sales, FCF yield instead of price/FCF.
Fidelity update as of 23 August 2026: momentum is now deliberately weighted lightly (only ±1 instead of its own +5/+3/−2 ladder) and uses the absolute 6-month price move, as in the original, instead of relative strength versus the market, so it cannot override the value filter, mirroring the original where value filters first and momentum only ranks afterward. Shareholder yield (dividends plus net buybacks) replaces the previously used pure dividend yield, bringing it closer to O'Shaughnessy's own criterion.
The high share of binary individual criteria keeps the result transparently traceable, though in extreme market phases it can produce more or fewer hits than a true percentile ranking across the whole universe.
For rule-based investors who want to combine the value factor with a trend filter and are prepared to follow the system through more frequent signal changes.