SLD 0.42 ▲0.00% MBG 0.21 ▲0.00% FDC 3.93 ▼-0.76% LF1 1.87 ▼-2.12% LGF 2.38 ▲0.86% DN1 98.00 ▼-0.17% WMX 1.58 ▼-2.46% RG8 2.52 ▲0.40% CTS 0.89 ▲2.89% TET 0.42 ▲1.20% MRE 1.68 ▲0.00% BST 0.27 ▲3.85% EFR 0.01 ▲0.00% RIV 1.20 ▼-0.42% KIT 1.80 ▲0.56% EMUCA 0.89 RF1 3.38 ▲0.00% AIX 9.00 ▲0.22% SLD 0.42 ▲0.00% MBG 0.21 ▲0.00% FDC 3.93 ▼-0.76% LF1 1.87 ▼-2.12% LGF 2.38 ▲0.86% DN1 98.00 ▼-0.17% WMX 1.58 ▼-2.46% RG8 2.52 ▲0.40% CTS 0.89 ▲2.89% TET 0.42 ▲1.20% MRE 1.68 ▲0.00% BST 0.27 ▲3.85% EFR 0.01 ▲0.00% RIV 1.20 ▼-0.42% KIT 1.80 ▲0.56% EMUCA 0.89 RF1 3.38 ▲0.00% AIX 9.00 ▲0.22%

Upward-Move Scorecard

Credit-scorecard methodology applied to price direction: daily trend features are coarse-classed into bins, converted to Weight of Evidence, ranked by Information Value, fitted with logistic regression and scaled into points — the same pipeline used to build a credit scorecard.

Read the numbers with credit-scoring instincts inverted. A credit scorecard separates a rare event (~3% default) from a common one, so IVs of 0.1+ and AUCs of 0.75+ are normal. Predicting whether a stock rises is a near coin flip (~50% base rate), so IVs here are one to two orders of magnitude smaller and an out-of-time AUC of 0.53 is a genuine result, not a broken model. The split is strictly by date, with a gap so no training row's outcome overlaps the test window — a random split would leak the future and produce a flattering, false AUC.
Score a stock today
Applies the fitted scorecard to the latest data: total points and the implied probability of a rise over the next 126 trading days.
Model performance — fitted 4 Aug 2026 11:29
Out-of-time AUC
0.5647
in-sample 0.5949
Gini
0.1294
KS
0.1151
Overfit gap
0.0302
Base rate
49.91%
rise in 126d
Panel
165,532
148 stocks
Verdict: Genuinely useful separation for equity direction — check the lift table holds across deciles before believing it.
Train 2021-08-04 → 2024-09-26 (115,054 rows) · Test 2025-04-04 → 2026-02-04 (31,090 rows, strictly later).
Lift by score decile (out of time)
DecileRows RoseLift
1 (best) 3,109 57.16% 1.143
2 3,109 57.48% 1.15
3 3,109 56.61% 1.132
4 3,109 57.54% 1.151
5 3,109 46.25% 0.925
6 3,109 47.76% 0.955
7 3,109 46.0% 0.92
8 3,109 44.97% 0.899
9 3,109 41.78% 0.836
10 (worst) 3,109 44.45% 0.889

The practical test: does the top decile actually rise more often than the bottom? A monotonic gradient down this table is worth more than the headline AUC. Lift is the decile's up-rate divided by the 49.91% base rate.

Feature information value
FeatureGroupIV BinsCoefficient
vol_63d Volatility 0.07115 7 -0.6663
beta_63d Relative strength 0.04547 6 -0.6523
vol_21d Volatility 0.04473 8 -0.0222
ret_252d Momentum 0.04308 5 -0.6319
atr_pct Volatility 0.03565 9 0.2478
ma50_vs_ma200 Trend 0.03256 5 -0.7054
px_vs_ma200 Trend 0.02224 4 0.0393
ret_126d Momentum 0.01543 5 0.3412
drawdown_from_high Mean reversion 0.0135 4 -0.6776
dollar_volume_log Volume 0.01309 4 -0.9942
px_vs_ma50 Trend 0.00827 3 -0.2063
ret_21d Momentum 0.00719 4 0.0789
trend_slope_21d Trend 0.00719 4 0.0789
px_vs_ma20 Trend 0.00659 4 -0.0712
ret_63d Momentum 0.00633 3 -0.3153
ret_5d Momentum 0.00596 4 -0.2753
rel_ret_21d Relative strength 0.00584 4 -0.3592
rel_ret_63d Relative strength 0.00387 3 0.2854
range_position Mean reversion 0.00347 4 -0.782
ret_1d Momentum 0.00329 4 -0.0085
volume_trend Volume 0.00293 4 -0.2926
vol_ratio Volatility 0.00121 2 -0.8699
obv_slope Volume 0.00096 3
zscore_20d Mean reversion 0.00064 3
rsi_14 Mean reversion 0.00059 6
volume_z Volume 0.00054 4

IV measures how much a feature separates risers from non-risers. Because WoE is ln(non-event/event), a negative coefficient means the feature predicts upward moves. Features below the IV floor were dropped before fitting.

The scorecard — points by feature band base score 561, 20 points to double the odds
FeatureGroupBand RowsRose WoEPoints
vol_63d Volatility <= 0.1695 10,575 33.02% 0.702 0
vol_63d Volatility (0.1695, 0.1978] 10,575 45.46% 0.1771 10
vol_63d Volatility (0.1978, 0.2224] 10,574 46.98% 0.1156 11
vol_63d Volatility (0.2224, 0.2464] 10,575 48.66% 0.0484 13
vol_63d Volatility (0.2464, 0.2728] 10,574 51.27% -0.0559 15
vol_63d Volatility (0.2728, 0.309] 10,575 53.27% -0.1361 16
vol_63d Volatility > 0.309 42,298 55.01% -0.2063 17
beta_63d Relative strength <= 0.5357 21,150 43.71% 0.2479 0
beta_63d Relative strength (0.5357, 0.685] 10,574 45.61% 0.1708 1
beta_63d Relative strength (0.685, 0.9217] 21,149 46.26% 0.1446 2
beta_63d Relative strength (0.9217, 1.043] 10,575 48.42% 0.0582 4
beta_63d Relative strength (1.043, 1.187] 10,574 55.28% -0.2171 9
beta_63d Relative strength > 1.187 31,724 56.49% -0.2661 10
vol_21d Volatility <= 0.1504 11,195 38.04% 0.4824 0
vol_21d Volatility (0.1504, 0.1806] 11,195 44.22% 0.2271 0
vol_21d Volatility (0.1806, 0.2062] 11,194 46.79% 0.1231 0
vol_21d Volatility (0.2062, 0.2321] 11,195 49.28% 0.0234 0
vol_21d Volatility (0.2321, 0.2639] 11,194 49.71% 0.0065 0
vol_21d Volatility (0.2639, 0.3019] 11,195 52.48% -0.1046 0
vol_21d Volatility (0.3019, 0.5198] 33,583 54.29% -0.1773 0
vol_21d Volatility > 0.5198 11,195 55.28% -0.2175 0
ret_252d Momentum <= 0.04096 39,058 45.85% 0.1621 0
ret_252d Momentum (0.04096, 0.0983] 7,810 47.9% 0.0798 2
ret_252d Momentum (0.0983, 0.1683] 7,811 49.2% 0.0277 2
ret_252d Momentum (0.1683, 0.2715] 7,811 55.46% -0.2236 7
ret_252d Momentum > 0.2715 15,623 58.56% -0.3501 9
atr_pct Volatility <= 0.01655 22,626 41.93% 0.3203 4
atr_pct Volatility (0.01655, 0.01853] 11,313 46.07% 0.1521 3
atr_pct Volatility (0.01853, 0.02041] 11,314 49.41% 0.0183 2
atr_pct Volatility (0.02041, 0.02254] 11,312 50.95% -0.0436 1
atr_pct Volatility (0.02254, 0.02509] 11,313 51.95% -0.0834 1
atr_pct Volatility (0.02509, 0.02851] 11,313 53.18% -0.1327 1
atr_pct Volatility (0.02851, 0.03312] 11,313 53.43% -0.1426 1
atr_pct Volatility (0.03312, 0.04054] 11,313 54.23% -0.175 0
atr_pct Volatility > 0.04054 11,313 55.58% -0.2296 0
ma50_vs_ma200 Trend <= -0.007352 34,333 46.26% 0.1431 0
ma50_vs_ma200 Trend (-0.007352, 0.01494] 8,583 46.83% 0.1205 0
ma50_vs_ma200 Trend (0.01494, 0.0596] 17,166 48.95% 0.0353 2
ma50_vs_ma200 Trend (0.0596, 0.08936] 8,583 52.57% -0.1095 5
ma50_vs_ma200 Trend > 0.08936 17,166 57.99% -0.3292 10
px_vs_ma200 Trend <= 0.05005 51,499 47.53% 0.0923 0
px_vs_ma200 Trend (0.05005, 0.08115] 8,583 48.68% 0.0462 0
px_vs_ma200 Trend (0.08115, 0.1226] 8,583 50.34% -0.0204 0
px_vs_ma200 Trend > 0.1226 17,166 57.07% -0.2915 0
ret_126d Momentum <= 0.06648 57,893 47.98% 0.0722 3
ret_126d Momentum (0.06648, 0.1157] 9,649 48.11% 0.0671 3
ret_126d Momentum (0.1157, 0.1809] 9,649 50.34% -0.0221 3
ret_126d Momentum (0.1809, 0.2972] 9,649 54.77% -0.2001 1
ret_126d Momentum > 0.2972 9,649 56.75% -0.2803 0
drawdown_from_high Mean reversion <= -0.3161 10,634 58.41% -0.3446 8
drawdown_from_high Mean reversion (-0.3161, -0.2365] 10,633 50.47% -0.0241 1
drawdown_from_high Mean reversion (-0.2365, -0.1165] 31,905 48.83% 0.0419 0
drawdown_from_high Mean reversion > -0.1165 53,162 48.67% 0.048 0
dollar_volume_log Volume <= 13.86 11,506 54.24% -0.1751 8
dollar_volume_log Volume (13.86, 15.65] 23,010 53.27% -0.1362 7
dollar_volume_log Volume (15.65, 16.1] 11,506 52.59% -0.1088 6
dollar_volume_log Volume > 16.1 69,032 47.56% 0.0926 0
px_vs_ma50 Trend <= -0.08385 10,781 56.05% -0.2481 2
px_vs_ma50 Trend (-0.08385, -0.0489] 10,780 52.04% -0.0865 1
px_vs_ma50 Trend > -0.0489 86,243 48.84% 0.0417 0
ret_21d Momentum <= -0.09582 11,195 55.79% -0.2381 0
ret_21d Momentum (-0.09582, -0.05676] 11,195 51.47% -0.0641 0
ret_21d Momentum (-0.05676, -0.03205] 11,194 49.12% 0.0301 1
ret_21d Momentum > -0.03205 78,362 48.9% 0.0387 1
trend_slope_21d Trend <= -1.209 11,195 55.79% -0.2381 0
trend_slope_21d Trend (-1.209, -0.7012] 11,195 51.47% -0.0641 0
trend_slope_21d Trend (-0.7012, -0.3909] 11,194 49.12% 0.0301 1
trend_slope_21d Trend > -0.3909 78,362 48.9% 0.0387 1
px_vs_ma20 Trend <= -0.05414 11,225 54.92% -0.2029 1
px_vs_ma20 Trend (-0.05414, -0.03136] 11,224 52.54% -0.107 0
px_vs_ma20 Trend (-0.03136, -0.01765] 11,224 49.8% 0.0028 0
px_vs_ma20 Trend > -0.01765 78,569 48.77% 0.0438 0
ret_63d Momentum <= -0.1463 10,579 55.3% -0.2179 2
ret_63d Momentum (-0.1463, -0.08571] 10,572 51.71% -0.0737 1
ret_63d Momentum > -0.08571 84,595 48.96% 0.0364 0
ret_5d Momentum <= -0.04895 11,432 54.69% -0.1932 2
ret_5d Momentum (-0.04895, -0.02816] 11,431 52.45% -0.1033 1
ret_5d Momentum (-0.02816, -0.01583] 11,431 49.6% 0.0108 0
ret_5d Momentum > -0.01583 80,020 48.85% 0.0407 0
rel_ret_21d Relative strength <= -0.08727 11,195 54.58% -0.189 2
rel_ret_21d Relative strength (-0.08727, -0.05305] 11,195 52.1% -0.0895 1
rel_ret_21d Relative strength (-0.05305, -0.03152] 11,194 50.67% -0.0321 1
rel_ret_21d Relative strength > -0.03152 78,362 48.76% 0.0443 0
rel_ret_63d Relative strength <= -0.1435 10,575 53.97% -0.1642 0
rel_ret_63d Relative strength (-0.1435, -0.08735] 10,575 51.62% -0.0701 1
rel_ret_63d Relative strength > -0.08735 84,596 49.14% 0.0292 2
range_position Mean reversion <= 0.3185 31,900 48.08% 0.0718 0
range_position Mean reversion (0.3185, 0.4343] 10,635 48.75% 0.0448 1
range_position Mean reversion (0.4343, 0.9475] 53,165 50.61% -0.0293 2
range_position Mean reversion > 0.9475 10,634 52.71% -0.1135 4
ret_1d Momentum <= -0.02214 11,491 53.76% -0.1559 0
ret_1d Momentum (-0.02214, -0.0125] 11,497 51.1% -0.0491 0
ret_1d Momentum (-0.0125, -0.006941] 11,484 49.97% -0.0037 0
ret_1d Momentum > -0.006941 80,434 49.13% 0.0298 0
volume_trend Volume <= -0.4219 10,634 52.95% -0.1233 1
volume_trend Volume (-0.4219, -0.3081] 10,633 51.26% -0.0553 1
volume_trend Volume (-0.3081, -0.1518] 21,267 50.6% -0.0291 1
volume_trend Volume > -0.1518 63,800 48.89% 0.0394 0
vol_ratio Volatility <= 1.265 95,165 49.58% 0.0116 0
vol_ratio Volatility > 1.265 10,574 52.48% -0.1042 3

This is the deliverable a credit team would hand over: every feature's bands with the points they earn. Each feature's worst band scores 0, so the total is the base score plus everything the current configuration earns. Model output for research — not financial advice, and a 0.5647 AUC means it is wrong very often.