{
"generated": "2026-11-08T13:55:02Z",
"direction": "long",
"weights": {
"trend": 0.35,
"rel_strength": 0.25,
"volume": 0.15,
"fundamentals": 0.15,
"analyst": 0.1
},
"breadth": {
"mom5": 1.715,
"mom20": 7.382,
"state": "BROADENING",
"smooth": 5,
"max_tilt_points": 5.0
},
"catalyst": {
"window_hours": 24,
"max_points": 3.0,
"saturates_at": 5
},
"count": 10,
"description": {
"_about": "Each item in `symbols` is one ranked candidate; the fields below explain its shape.",
"rank": "1-based position in this list (best first).",
"symbol": "Ticker.",
"sector": "Sector, taken from the symbol's own snapshot (the label its sector-ETF comparison was run against) and translated into the liquid universe's vocabulary; falls back to the universe bucket when the snapshot has no known sector.",
"in_target_sector": "True if the sector is in today's strong sectors for long (sectors.green) / weak sectors for short (sectors.red).",
"score": "0-100 overall quality used for ranking = `score_before_breadth` + `breadth_tilt` + `news_tilt`, clamped to 0-100.",
"score_before_breadth": "Coverage-weighted sum of the subscores (see top-level `weights`) before either tilt. NOT renormalized: a missing subscore forfeits its weight, so a name measured on half its dimensions can score at most 50. Below half the total weight the candidate is not ranked at all.",
"breadth_tilt": "Points added by the RSP/SPY regime (top-level `breadth`), from +max_tilt_points for the smallest name in the pool to -max_tilt_points for the largest, or the reverse. Rising RSP/SPY = the average stock is beating the largest ones, so longs tilt small and shorts tilt large; falling RSP/SPY flips both. 0 when there is no regime call.",
"subscores": {
"trend": "0-1: fraction of trend/momentum/crossover checks passed (EMA stack, ADX>30, RSI band, ROC, MACD, higher-highs, fresh cross, ...). Short uses its own bearish set, which grades magnitude (ADX>30, ROC<-5, RSI<35) alongside direction so that clearing the bear prefilter is not by itself a 1.0.",
"rel_strength": "0-1: the 10-session return gap to the sector ETF, saturating at RS_FULL_GAP points ahead (long) or behind (short). Falls back to the fraction of relative-strength booleans passed (beats SPY 5/10/20d, beats sector 10d, RS line at high, sector top-3), inverted for short, only when either leg of the gap is missing.",
"volume": "0-1: fraction of volume-confirmation checks passed (rel-vol>2, up-vol beats down, OBV new high, surge day, last up beats down).",
"fundamentals": "0-1: mean of bounded valuation/quality pieces (DCF upside, P/E band, net margin, ROE, net-debt/EBITDA). Short = 1 minus the long value.",
"analyst": "0-1: mean of consensus target upside, overall rating/5, and a recent upgrade-minus-downgrade nudge. Short = 1 minus the long value."
},
"news_24h": "Headlines the symbol printed in the last 24 hours, deduped across five providers. A catalyst proxy: it counts attention, not sentiment, so it never says whether the news helps this direction. Items whose provider date cannot be parsed are not counted.",
"news_tilt": "Points added by `news_24h` (top-level `catalyst`), 0 up to max_points and saturating at saturates_at headlines. One-sided: news is a small bonus, silence is neutral. Deliberately not one of `weights` — the subscores are not renormalized, so a sixth dimension would cap every quiet name below every noisy one whatever its setup.",
"price": "Latest quote.",
"dcf_upside_pct": "FMP DCF fair value vs price, percent (can be noisy/inflated).",
"adx": "ADX(14) trend strength.",
"avg_dollar_vol": "Average daily dollar volume (liquidity); also the short tie-break.",
"reasons": "Up to 4 human-readable signals behind the ranking.",
"reasons_long": "Same signals as full sentences, all of them, for the detail modal."
},
"symbols": [
{
"rank": 1,
"symbol": "EPAM",
"sector": "Technology",
"in_target_sector": true,
"score": 74.6,
"score_before_breadth": 70.2,
"breadth_tilt": 4.44,
"news_24h": 0,
"news_tilt": 0.0,
"subscores": {
"trend": 0.733,
"rel_strength": 1.0,
"volume": 0.333,
"fundamentals": 0.701,
"analyst": 0.4
},
"price": 159.31,
"dcf_upside_pct": 3.4,
"adx": 37.92126889361312,
"avg_dollar_vol": 216709393.0,
"reasons": ["Price above all EMAs", "EMAs stacked", "EMA21 rising", "Strong trend (ADX>30)"],
"reasons_long": ["The share price is trading above its 8-, 21- and 50-day EMAs at the same time, so buyers are in control on the short, medium and longer horizon.", "The moving averages are stacked in bullish order (8 > 21 > 50), the classic signature of a trend that is still building rather than fading.", "The 21-day EMA is sloping upward, which confirms the advance is being carried by sustained buying rather than a single spike.", "ADX is above 30, meaning the move has genuine directional strength behind it instead of drifting sideways in a range.", "The chart is printing higher highs and higher lows — textbook uptrend structure, with each pullback being bought at a progressively higher level.", "Rate of change is above 5%, so the stock has made meaningful upward progress over the recent lookback window rather than just noise.", "RSI sits in the 55–75 band: strong enough to confirm momentum, but not yet in the overbought zone where sharp reversals tend to cluster.", "The MACD histogram is expanding, so the momentum behind the advance is still accelerating rather than flattening out.", "It has outperformed the S&P 500 over the 5-, 10- and 20-day windows — leadership that has persisted across timeframes, not a one-day pop.", "It is beating its own sector over the last 10 days, so the strength is stock-specific rather than just a rising sector tide.", "Relative volume is running at more than twice normal, so the move is backed by real participation rather than a thin tape."]
},
{
"rank": 2,
"symbol": "MANH",
"sector": "Technology",
"in_target_sector": true,
"score": 70.9,
"score_before_breadth": 68.7,
"breadth_tilt": 2.22,
"news_24h": 0,
"news_tilt": 0.0,
"subscores": {
"trend": 0.8,
"rel_strength": 1.0,
"volume": 0.167,
"fundamentals": 0.593,
"analyst": 0.431
},
"price": 252.78,
"dcf_upside_pct": -64.4,
"adx": 40.09304433282671,
"avg_dollar_vol": 201082244.762,
"reasons": ["Price above all EMAs", "EMAs stacked", "EMA21 rising", "Strong trend (ADX>30)"],
"reasons_long": ["The share price is trading above its 8-, 21- and 50-day EMAs at the same time, so buyers are in control on the short, medium and longer horizon.", "The moving averages are stacked in bullish order (8 > 21 > 50), the classic signature of a trend that is still building rather than fading.", "The 21-day EMA is sloping upward, which confirms the advance is being carried by sustained buying rather than a single spike.", "ADX is above 30, meaning the move has genuine directional strength behind it instead of drifting sideways in a range.", "The chart is printing higher highs and higher lows — textbook uptrend structure, with each pullback being bought at a progressively higher level.", "Rate of change is above 5%, so the stock has made meaningful upward progress over the recent lookback window rather than just noise.", "RSI sits in the 55–75 band: strong enough to confirm momentum, but not yet in the overbought zone where sharp reversals tend to cluster.", "The stock is trading near its recent high, where there is little overhead supply from trapped sellers to slow further progress.", "It has outperformed the S&P 500 over the 5-, 10- and 20-day windows — leadership that has persisted across timeframes, not a one-day pop.", "It is beating its own sector over the last 10 days, so the strength is stock-specific rather than just a rising sector tide."]
},
{
"rank": 3,
"symbol": "BSY",
"sector": "Technology",
"in_target_sector": true,
"score": 70.3,
"score_before_breadth": 67.5,
"breadth_tilt": 2.78,
"news_24h": 0,
"news_tilt": 0.0,
"subscores": {
"trend": 0.6,
"rel_strength": 1.0,
"volume": 0.5,
"fundamentals": 0.594,
"analyst": 0.508
},
"price": 44.65,
"dcf_upside_pct": -18.4,
"adx": 43.483641305816626,
"avg_dollar_vol": 121795644.89999999,
"reasons": ["Price above all EMAs", "EMAs stacked", "EMA21 rising", "Strong trend (ADX>30)"],
"reasons_long": ["The share price is trading above its 8-, 21- and 50-day EMAs at the same time, so buyers are in control on the short, medium and longer horizon.", "The moving averages are stacked in bullish order (8 > 21 > 50), the classic signature of a trend that is still building rather than fading.", "The 21-day EMA is sloping upward, which confirms the advance is being carried by sustained buying rather than a single spike.", "ADX is above 30, meaning the move has genuine directional strength behind it instead of drifting sideways in a range.", "The chart is printing higher highs and higher lows — textbook uptrend structure, with each pullback being bought at a progressively higher level.", "Rate of change is above 5%, so the stock has made meaningful upward progress over the recent lookback window rather than just noise.", "It has outperformed the S&P 500 over the 5-, 10- and 20-day windows — leadership that has persisted across timeframes, not a one-day pop.", "It is beating its own sector over the last 10 days, so the strength is stock-specific rather than just a rising sector tide.", "The relative-strength line is at a new high, meaning the stock keeps gaining ground on the broad market even on weaker days.", "There was a recent volume surge, often the footprint of a large buyer building a position over several sessions."]
},
{
"rank": 4,
"symbol": "NXT",
"sector": "Energy",
"in_target_sector": false,
"score": 73.4,
"score_before_breadth": 71.7,
"breadth_tilt": 1.67,
"news_24h": 0,
"news_tilt": 0.0,
"subscores": {
"trend": 0.667,
"rel_strength": 1.0,
"volume": 0.333,
"fundamentals": 0.712,
"analyst": 0.766
},
"price": 104.905,
"dcf_upside_pct": -26.6,
"adx": 21.181317756274584,
"avg_dollar_vol": 273262838.3,
"reasons": ["Price above all EMAs", "EMAs stacked", "EMA21 rising", "Higher highs & lows"],
"reasons_long": ["The share price is trading above its 8-, 21- and 50-day EMAs at the same time, so buyers are in control on the short, medium and longer horizon.", "The moving averages are stacked in bullish order (8 > 21 > 50), the classic signature of a trend that is still building rather than fading.", "The 21-day EMA is sloping upward, which confirms the advance is being carried by sustained buying rather than a single spike.", "The chart is printing higher highs and higher lows — textbook uptrend structure, with each pullback being bought at a progressively higher level.", "Rate of change is above 5%, so the stock has made meaningful upward progress over the recent lookback window rather than just noise.", "RSI sits in the 55–75 band: strong enough to confirm momentum, but not yet in the overbought zone where sharp reversals tend to cluster.", "The MACD histogram is expanding, so the momentum behind the advance is still accelerating rather than flattening out.", "It has outperformed the S&P 500 over the 5-, 10- and 20-day windows — leadership that has persisted across timeframes, not a one-day pop.", "It is beating its own sector over the last 10 days, so the strength is stock-specific rather than just a rising sector tide.", "The relative-strength line is at a new high, meaning the stock keeps gaining ground on the broad market even on weaker days.", "There was a recent volume surge, often the footprint of a large buyer building a position over several sessions."]
},
{
"rank": 5,
"symbol": "FSLR",
"sector": "Energy",
"in_target_sector": false,
"score": 64.5,
"score_before_breadth": 64.5,
"breadth_tilt": 0.0,
"news_24h": 0,
"news_tilt": 0.0,
"subscores": {
"trend": 0.4,
"rel_strength": 1.0,
"volume": 0.5,
"fundamentals": 0.723,
"analyst": 0.715
},
"price": 201.14,
"dcf_upside_pct": -139.2,
"adx": 22.030153151068472,
"avg_dollar_vol": 434010163.0,
"reasons": ["EMA21 rising", "ROC > 5%", "RSI 55-75", "MACD expanding"],
"reasons_long": ["The 21-day EMA is sloping upward, which confirms the advance is being carried by sustained buying rather than a single spike.", "Rate of change is above 5%, so the stock has made meaningful upward progress over the recent lookback window rather than just noise.", "RSI sits in the 55–75 band: strong enough to confirm momentum, but not yet in the overbought zone where sharp reversals tend to cluster.", "The MACD histogram is expanding, so the momentum behind the advance is still accelerating rather than flattening out.", "It has outperformed the S&P 500 over the 5-, 10- and 20-day windows — leadership that has persisted across timeframes, not a one-day pop.", "It is beating its own sector over the last 10 days, so the strength is stock-specific rather than just a rising sector tide.", "The relative-strength line is at a new high, meaning the stock keeps gaining ground on the broad market even on weaker days.", "On-balance volume is at a new high, a sign of accumulation: volume is arriving on up days rather than down days."]
},
{
"rank": 6,
"symbol": "TEM",
"sector": "Health Care",
"in_target_sector": false,
"score": 54.2,
"score_before_breadth": 49.7,
"breadth_tilt": 3.33,
"news_24h": 2,
"news_tilt": 1.2,
"subscores": {
"trend": 0.667,
"rel_strength": 0.628,
"volume": 0.167,
"fundamentals": 0.308,
"analyst": 0.352
},
"price": 76.05,
"dcf_upside_pct": -281.4,
"adx": 16.696918928575123,
"avg_dollar_vol": 455256936.448,
"reasons": ["Price above all EMAs", "EMAs stacked", "EMA21 rising", "Higher highs & lows"],
"reasons_long": ["The share price is trading above its 8-, 21- and 50-day EMAs at the same time, so buyers are in control on the short, medium and longer horizon.", "The moving averages are stacked in bullish order (8 > 21 > 50), the classic signature of a trend that is still building rather than fading.", "The 21-day EMA is sloping upward, which confirms the advance is being carried by sustained buying rather than a single spike.", "The chart is printing higher highs and higher lows — textbook uptrend structure, with each pullback being bought at a progressively higher level.", "Rate of change is above 5%, so the stock has made meaningful upward progress over the recent lookback window rather than just noise.", "The MACD histogram is expanding, so the momentum behind the advance is still accelerating rather than flattening out.", "It has outperformed the S&P 500 over the 5-, 10- and 20-day windows — leadership that has persisted across timeframes, not a one-day pop.", "It is beating its own sector over the last 10 days, so the strength is stock-specific rather than just a rising sector tide.", "The relative-strength line is at a new high, meaning the stock keeps gaining ground on the broad market even on weaker days.", "It ranks among the top three names in its sector on this screen, which is where institutional flows tend to concentrate."]
},
{
"rank": 7,
"symbol": "OTIS",
"sector": "Industrials",
"in_target_sector": false,
"score": 51.9,
"score_before_breadth": 53.0,
"breadth_tilt": -1.67,
"news_24h": 1,
"news_tilt": 0.6,
"subscores": {
"trend": 0.8,
"rel_strength": 0.419,
"volume": 0.167,
"fundamentals": 0.525,
"analyst": 0.42
},
"price": 78.96,
"dcf_upside_pct": 2.0,
"adx": 36.80680034640169,
"avg_dollar_vol": 327247558.40000004,
"reasons": ["Price above all EMAs", "EMAs stacked", "EMA21 rising", "Strong trend (ADX>30)"],
"reasons_long": ["The share price is trading above its 8-, 21- and 50-day EMAs at the same time, so buyers are in control on the short, medium and longer horizon.", "The moving averages are stacked in bullish order (8 > 21 > 50), the classic signature of a trend that is still building rather than fading.", "The 21-day EMA is sloping upward, which confirms the advance is being carried by sustained buying rather than a single spike.", "ADX is above 30, meaning the move has genuine directional strength behind it instead of drifting sideways in a range.", "The chart is printing higher highs and higher lows — textbook uptrend structure, with each pullback being bought at a progressively higher level.", "Rate of change is above 5%, so the stock has made meaningful upward progress over the recent lookback window rather than just noise.", "RSI sits in the 55–75 band: strong enough to confirm momentum, but not yet in the overbought zone where sharp reversals tend to cluster.", "The stock is trading near its recent high, where there is little overhead supply from trapped sellers to slow further progress.", "It has outperformed the S&P 500 over the 5-, 10- and 20-day windows — leadership that has persisted across timeframes, not a one-day pop.", "It is beating its own sector over the last 10 days, so the strength is stock-specific rather than just a rising sector tide.", "The relative-strength line is at a new high, meaning the stock keeps gaining ground on the broad market even on weaker days."]
},
{
"rank": 8,
"symbol": "APP",
"sector": "Technology",
"in_target_sector": true,
"score": 70.0,
"score_before_breadth": 71.4,
"breadth_tilt": -4.44,
"news_24h": 18,
"news_tilt": 3.0,
"subscores": {
"trend": 0.533,
"rel_strength": 1.0,
"volume": 0.667,
"fundamentals": 0.793,
"analyst": 0.579
},
"price": 391.22,
"dcf_upside_pct": -69.3,
"adx": 31.47487757051757,
"avg_dollar_vol": 2222689584.12,
"reasons": ["Price above all EMAs", "EMA21 rising", "Strong trend (ADX>30)", "ROC > 5%"],
"reasons_long": ["The share price is trading above its 8-, 21- and 50-day EMAs at the same time, so buyers are in control on the short, medium and longer horizon.", "The 21-day EMA is sloping upward, which confirms the advance is being carried by sustained buying rather than a single spike.", "ADX is above 30, meaning the move has genuine directional strength behind it instead of drifting sideways in a range.", "Rate of change is above 5%, so the stock has made meaningful upward progress over the recent lookback window rather than just noise.", "The MACD histogram is expanding, so the momentum behind the advance is still accelerating rather than flattening out.", "The stock is trading near its recent high, where there is little overhead supply from trapped sellers to slow further progress.", "It has outperformed the S&P 500 over the 5-, 10- and 20-day windows — leadership that has persisted across timeframes, not a one-day pop.", "It is beating its own sector over the last 10 days, so the strength is stock-specific rather than just a rising sector tide.", "The relative-strength line is at a new high, meaning the stock keeps gaining ground on the broad market even on weaker days.", "Relative volume is running at more than twice normal, so the move is backed by real participation rather than a thin tape.", "There was a recent volume surge, often the footprint of a large buyer building a position over several sessions."]
},
{
"rank": 9,
"symbol": "MSI",
"sector": "Technology",
"in_target_sector": true,
"score": 68.5,
"score_before_breadth": 71.2,
"breadth_tilt": -3.33,
"news_24h": 1,
"news_tilt": 0.6,
"subscores": {
"trend": 0.8,
"rel_strength": 1.0,
"volume": 0.333,
"fundamentals": 0.615,
"analyst": 0.402
},
"price": 514.51,
"dcf_upside_pct": -21.2,
"adx": 35.04959208078335,
"avg_dollar_vol": 491664198.60558003,
"reasons": ["Price above all EMAs", "EMAs stacked", "EMA21 rising", "Strong trend (ADX>30)"],
"reasons_long": ["The share price is trading above its 8-, 21- and 50-day EMAs at the same time, so buyers are in control on the short, medium and longer horizon.", "The moving averages are stacked in bullish order (8 > 21 > 50), the classic signature of a trend that is still building rather than fading.", "The 21-day EMA is sloping upward, which confirms the advance is being carried by sustained buying rather than a single spike.", "ADX is above 30, meaning the move has genuine directional strength behind it instead of drifting sideways in a range.", "The chart is printing higher highs and higher lows — textbook uptrend structure, with each pullback being bought at a progressively higher level.", "Rate of change is above 5%, so the stock has made meaningful upward progress over the recent lookback window rather than just noise.", "The MACD histogram is expanding, so the momentum behind the advance is still accelerating rather than flattening out.", "The stock is trading near its recent high, where there is little overhead supply from trapped sellers to slow further progress.", "It has outperformed the S&P 500 over the 5-, 10- and 20-day windows — leadership that has persisted across timeframes, not a one-day pop.", "It is beating its own sector over the last 10 days, so the strength is stock-specific rather than just a rising sector tide.", "The relative-strength line is at a new high, meaning the stock keeps gaining ground on the broad market even on weaker days."]
},
{
"rank": 10,
"symbol": "VRSK",
"sector": "Technology",
"in_target_sector": true,
"score": 67.2,
"score_before_breadth": 68.3,
"breadth_tilt": -1.11,
"news_24h": 0,
"news_tilt": 0.0,
"subscores": {
"trend": 0.667,
"rel_strength": 0.966,
"volume": 0.333,
"fundamentals": 0.706,
"analyst": 0.522
},
"price": 204.59,
"dcf_upside_pct": 25.4,
"adx": 32.597101459906014,
"avg_dollar_vol": 290127671.4,
"reasons": ["Price above all EMAs", "EMAs stacked", "EMA21 rising", "Strong trend (ADX>30)"],
"reasons_long": ["The share price is trading above its 8-, 21- and 50-day EMAs at the same time, so buyers are in control on the short, medium and longer horizon.", "The moving averages are stacked in bullish order (8 > 21 > 50), the classic signature of a trend that is still building rather than fading.", "The 21-day EMA is sloping upward, which confirms the advance is being carried by sustained buying rather than a single spike.", "ADX is above 30, meaning the move has genuine directional strength behind it instead of drifting sideways in a range.", "The chart is printing higher highs and higher lows — textbook uptrend structure, with each pullback being bought at a progressively higher level.", "RSI sits in the 55–75 band: strong enough to confirm momentum, but not yet in the overbought zone where sharp reversals tend to cluster.", "It has outperformed the S&P 500 over the 5-, 10- and 20-day windows — leadership that has persisted across timeframes, not a one-day pop.", "It is beating its own sector over the last 10 days, so the strength is stock-specific rather than just a rising sector tide."]
}
]
}