← All V2 experiments
Relative return
1.199x
Excess vs bench
19.86%
Benchmark
CAPW_UNIV
Rolling windows
179 · monthly
Mean strategy gain
36.92%
Mean benchmark gain
14.08%
Mean excess gain
22.84%
Dispersion (ref)
11.98%
Win-rate vs bench (ref)
100.00%
Worst / best ratio (ref)
1.089x / 1.375x
Logic variants
4
Updated
Jul 21, 2026
Anchored windows (reference — strategy vs benchmark)
Kept from V1 for continuity; the objective ranks on the full rolling set, not these four.
| Window | Strategy | Benchmark | Ratio |
|---|---|---|---|
| 2006-07-03 … 2011-06-30 | 19.98% | 2.22% | 1.174x |
| 2011-07-01 … 2016-06-30 | 34.76% | 13.74% | 1.185x |
| 2016-07-01 … 2021-06-30 | 60.80% | 20.63% | 1.333x |
| 2021-07-01 … 2026-06-26 | 34.11% | 15.48% | 1.161x |
All rolling windows — the objective set (equal-weighted mean ratio)
Strategy
Benchmark (CAPW_UNIV)
Excess
rolling 5y windows, monthly step — 179 windows · mean ratio 1.199x · beat benchmark in 179/179
| # | Window | Strategy | Benchmark | Ratio |
|---|---|---|---|---|
| 1 | 2006-07-31 … 2011-07-29 | 17.27% | 1.79% | 1.152x |
| 2 | 2006-08-31 … 2011-08-31 | 16.42% | 0.21% | 1.162x |
| 3 | 2006-09-29 … 2011-08-31 | 14.04% | -0.14% | 1.142x |
| 4 | 2006-10-31 … 2011-10-31 | 13.08% | 0.23% | 1.128x |
| 5 | 2006-11-30 … 2011-11-30 | 10.86% | -0.05% | 1.109x |
| 6 | 2006-12-29 … 2011-11-30 | 11.77% | -0.32% | 1.121x |
| 7 | 2007-01-31 … 2012-01-31 | 11.77% | 0.93% | 1.107x |
| 8 | 2007-02-28 … 2012-01-31 | 11.43% | 1.43% | 1.099x |
| 9 | 2007-03-30 … 2012-03-30 | 14.24% | 3.09% | 1.108x |
| 10 | 2007-04-30 … 2012-04-30 | 14.58% | 2.42% | 1.119x |
| 11 | 2007-05-31 … 2012-05-31 | 14.87% | 0.60% | 1.142x |
| 12 | 2007-06-29 … 2012-06-29 | 14.77% | 1.92% | 1.126x |
| 13 | 2007-07-31 … 2012-07-31 | 15.45% | 2.69% | 1.124x |
| 14 | 2007-08-31 … 2012-08-31 | 15.26% | 2.95% | 1.120x |
| 15 | 2007-09-28 … 2012-09-28 | 14.83% | 3.20% | 1.113x |
| 16 | 2007-10-31 … 2012-10-31 | 12.79% | 2.60% | 1.099x |
| 17 | 2007-11-30 … 2012-11-30 | 12.62% | 3.45% | 1.089x |
| 18 | 2007-12-31 … 2012-12-31 | 12.90% | 3.69% | 1.089x |
| 19 | 2008-01-31 … 2013-01-31 | 16.99% | 5.85% | 1.105x |
| 20 | 2008-02-29 … 2013-02-28 | 17.93% | 6.82% | 1.104x |
| 21 | 2008-03-31 … 2013-03-28 | 20.18% | 7.73% | 1.116x |
| 22 | 2008-04-30 … 2013-04-30 | 21.01% | 7.51% | 1.126x |
| 23 | 2008-05-30 … 2013-04-30 | 20.97% | 7.81% | 1.122x |
| 24 | 2008-06-30 … 2013-06-28 | 22.20% | 9.33% | 1.118x |
| 25 | 2008-07-31 … 2013-07-31 | 25.63% | 10.48% | 1.137x |
| 26 | 2008-08-29 … 2013-07-31 | 25.74% | 10.52% | 1.138x |
| 27 | 2008-09-30 … 2013-09-30 | 31.19% | 11.48% | 1.177x |
| 28 | 2008-10-31 … 2013-10-31 | 34.65% | 15.76% | 1.163x |
| 29 | 2008-11-28 … 2013-10-31 | 35.86% | 17.46% | 1.157x |
| 30 | 2008-12-31 … 2013-12-31 | 37.60% | 18.44% | 1.162x |
| 31 | 2009-01-30 … 2013-12-31 | 38.80% | 20.64% | 1.151x |
| 32 | 2009-02-27 … 2014-01-31 | 42.60% | 21.63% | 1.172x |
| 33 | 2009-03-31 … 2014-03-31 | 42.82% | 20.60% | 1.184x |
| 34 | 2009-04-30 … 2014-04-30 | 40.75% | 19.00% | 1.183x |
| 35 | 2009-05-29 … 2014-04-30 | 41.23% | 18.32% | 1.194x |
| 36 | 2009-06-30 … 2014-06-30 | 43.44% | 19.01% | 1.205x |
| 37 | 2009-07-31 … 2014-07-31 | 40.63% | 17.39% | 1.198x |
| 38 | 2009-08-31 … 2014-08-29 | 42.08% | 17.70% | 1.207x |
| 39 | 2009-09-30 … 2014-09-30 | 39.89% | 16.64% | 1.199x |
| 40 | 2009-10-30 … 2014-09-30 | 42.71% | 17.08% | 1.219x |
| 41 | 2009-11-30 … 2014-11-28 | 40.32% | 16.82% | 1.201x |
| 42 | 2009-12-31 … 2014-12-31 | 37.78% | 16.28% | 1.185x |
| 43 | 2010-01-29 … 2014-12-31 | 40.83% | 17.23% | 1.201x |
| 44 | 2010-02-26 … 2015-01-30 | 39.26% | 15.80% | 1.203x |
| 45 | 2010-03-31 … 2015-03-31 | 39.20% | 15.40% | 1.206x |
| 46 | 2010-04-30 … 2015-04-30 | 37.08% | 15.38% | 1.188x |
| 47 | 2010-05-28 … 2015-04-30 | 39.49% | 17.09% | 1.191x |
| 48 | 2010-06-30 … 2015-06-30 | 42.02% | 17.45% | 1.209x |
| 49 | 2010-07-30 … 2015-06-30 | 41.89% | 16.43% | 1.219x |
| 50 | 2010-08-31 … 2015-08-31 | 38.82% | 15.76% | 1.199x |
| 51 | 2010-09-30 … 2015-09-30 | 37.05% | 13.61% | 1.206x |
| 52 | 2010-10-29 … 2015-09-30 | 36.53% | 13.06% | 1.208x |
| 53 | 2010-11-30 … 2015-11-30 | 36.38% | 15.09% | 1.185x |
| 54 | 2010-12-31 … 2015-12-31 | 34.34% | 13.55% | 1.183x |
| 55 | 2011-01-31 … 2016-01-29 | 31.55% | 11.90% | 1.176x |
| 56 | 2011-02-28 … 2016-01-29 | 31.60% | 11.53% | 1.180x |
| 57 | 2011-03-31 … 2016-03-31 | 32.78% | 12.90% | 1.176x |
| 58 | 2011-04-29 … 2016-04-29 | 31.09% | 12.39% | 1.166x |
| 59 | 2011-05-31 … 2016-05-31 | 32.34% | 12.94% | 1.172x |
| 60 | 2011-06-30 … 2016-06-30 | 32.45% | 13.30% | 1.169x |
| 61 | 2011-07-29 … 2016-07-29 | 35.66% | 14.52% | 1.185x |
| 62 | 2011-08-31 … 2016-08-31 | 35.32% | 15.19% | 1.175x |
| 63 | 2011-09-30 … 2016-09-30 | 36.66% | 16.32% | 1.175x |
| 64 | 2011-10-31 … 2016-10-31 | 35.11% | 14.02% | 1.185x |
| 65 | 2011-11-30 … 2016-11-30 | 38.03% | 14.66% | 1.204x |
| 66 | 2011-12-30 … 2016-12-30 | 38.74% | 14.92% | 1.207x |
| 67 | 2012-01-31 … 2017-01-31 | 39.77% | 14.63% | 1.219x |
| 68 | 2012-02-29 … 2017-02-28 | 38.78% | 14.78% | 1.209x |
| 69 | 2012-03-30 … 2017-02-28 | 37.84% | 14.43% | 1.205x |
| 70 | 2012-04-30 … 2017-04-28 | 34.95% | 14.61% | 1.177x |
| 71 | 2012-05-31 … 2017-05-31 | 35.55% | 15.98% | 1.169x |
| 72 | 2012-06-29 … 2017-05-31 | 35.42% | 15.44% | 1.173x |
| 73 | 2012-07-31 … 2017-07-31 | 34.60% | 15.43% | 1.166x |
| 74 | 2012-08-31 … 2017-08-31 | 35.79% | 15.12% | 1.180x |
| 75 | 2012-09-28 … 2017-08-31 | 35.75% | 14.77% | 1.183x |
| 76 | 2012-10-31 … 2017-10-31 | 39.10% | 16.12% | 1.198x |
| 77 | 2012-11-30 … 2017-11-30 | 39.27% | 16.79% | 1.192x |
| 78 | 2012-12-31 … 2017-12-29 | 38.36% | 16.93% | 1.183x |
| 79 | 2013-01-31 … 2018-01-31 | 38.29% | 17.57% | 1.176x |
| 80 | 2013-02-28 … 2018-02-28 | 40.94% | 16.21% | 1.213x |
| 81 | 2013-03-28 … 2018-02-28 | 39.35% | 15.81% | 1.203x |
| 82 | 2013-04-30 … 2018-04-30 | 36.97% | 14.25% | 1.199x |
| 83 | 2013-05-31 … 2018-05-31 | 35.83% | 14.57% | 1.186x |
| 84 | 2013-06-28 … 2018-05-31 | 36.93% | 14.97% | 1.191x |
| 85 | 2013-07-31 … 2018-07-31 | 34.58% | 14.83% | 1.172x |
| 86 | 2013-08-30 … 2018-07-31 | 33.90% | 15.59% | 1.158x |
| 87 | 2013-09-30 … 2018-09-28 | 35.42% | 15.84% | 1.169x |
| 88 | 2013-10-31 … 2018-10-31 | 28.17% | 12.89% | 1.135x |
| 89 | 2013-11-29 … 2018-10-31 | 27.71% | 12.60% | 1.134x |
| 90 | 2013-12-31 … 2018-12-31 | 26.26% | 9.93% | 1.148x |
| 91 | 2014-01-31 … 2019-01-31 | 27.15% | 12.37% | 1.132x |
| 92 | 2014-02-28 … 2019-02-28 | 26.07% | 12.38% | 1.122x |
| 93 | 2014-03-31 … 2019-03-29 | 28.82% | 12.76% | 1.142x |
| 94 | 2014-04-30 … 2019-04-30 | 30.82% | 13.73% | 1.150x |
| 95 | 2014-05-30 … 2019-04-30 | 30.14% | 13.54% | 1.146x |
| 96 | 2014-06-30 … 2019-06-28 | 30.68% | 12.81% | 1.158x |
| 97 | 2014-07-31 … 2019-07-31 | 33.66% | 13.30% | 1.180x |
| 98 | 2014-08-29 … 2019-07-31 | 32.46% | 12.80% | 1.174x |
| 99 | 2014-09-30 … 2019-09-30 | 33.69% | 12.70% | 1.186x |
| 100 | 2014-10-31 … 2019-10-31 | 33.57% | 12.91% | 1.183x |
| 101 | 2014-11-28 … 2019-10-31 | 32.67% | 12.60% | 1.178x |
| 102 | 2014-12-31 … 2019-12-31 | 36.33% | 14.16% | 1.194x |
| 103 | 2015-01-30 … 2019-12-31 | 36.30% | 14.85% | 1.187x |
| 104 | 2015-02-27 … 2020-01-31 | 38.03% | 14.04% | 1.210x |
| 105 | 2015-03-31 … 2020-03-31 | 35.09% | 8.56% | 1.244x |
| 106 | 2015-04-30 … 2020-04-30 | 37.14% | 11.65% | 1.228x |
| 107 | 2015-05-29 … 2020-05-29 | 36.84% | 12.61% | 1.215x |
| 108 | 2015-06-30 … 2020-06-30 | 36.32% | 13.64% | 1.200x |
| 109 | 2015-07-31 … 2020-07-31 | 38.43% | 14.60% | 1.208x |
| 110 | 2015-08-31 … 2020-08-31 | 43.71% | 18.07% | 1.217x |
| 111 | 2015-09-30 … 2020-09-30 | 41.73% | 17.05% | 1.211x |
| 112 | 2015-10-30 … 2020-10-30 | 39.46% | 14.60% | 1.217x |
| 113 | 2015-11-30 … 2020-11-30 | 45.49% | 17.43% | 1.239x |
| 114 | 2015-12-31 … 2020-12-31 | 47.64% | 18.65% | 1.244x |
| 115 | 2016-01-29 … 2021-01-29 | 59.21% | 19.26% | 1.335x |
| 116 | 2016-02-29 … 2021-02-26 | 54.75% | 19.79% | 1.292x |
| 117 | 2016-03-31 … 2021-03-31 | 58.09% | 19.42% | 1.324x |
| 118 | 2016-04-29 … 2021-03-31 | 60.32% | 19.66% | 1.340x |
| 119 | 2016-05-31 … 2021-05-28 | 60.16% | 20.42% | 1.330x |
| 120 | 2016-06-30 … 2021-06-30 | 61.14% | 21.06% | 1.331x |
| 121 | 2016-07-29 … 2021-06-30 | 60.80% | 20.63% | 1.333x |
| 122 | 2016-08-31 … 2021-08-31 | 67.07% | 21.75% | 1.372x |
| 123 | 2016-09-30 … 2021-09-30 | 63.36% | 20.22% | 1.359x |
| 124 | 2016-10-31 … 2021-10-29 | 66.75% | 22.50% | 1.361x |
| 125 | 2016-11-30 … 2021-11-30 | 64.78% | 21.87% | 1.352x |
| 126 | 2016-12-30 … 2021-11-30 | 64.62% | 21.75% | 1.352x |
| 127 | 2017-01-31 … 2022-01-31 | 57.94% | 20.17% | 1.314x |
| 128 | 2017-02-28 … 2022-02-28 | 57.71% | 18.51% | 1.331x |
| 129 | 2017-03-31 … 2022-03-31 | 59.09% | 19.46% | 1.332x |
| 130 | 2017-04-28 … 2022-03-31 | 60.46% | 19.46% | 1.343x |
| 131 | 2017-05-31 … 2022-05-31 | 56.86% | 15.59% | 1.357x |
| 132 | 2017-06-30 … 2022-06-30 | 55.53% | 13.08% | 1.375x |
| 133 | 2017-07-31 … 2022-07-29 | 55.76% | 15.16% | 1.353x |
| 134 | 2017-08-31 … 2022-08-31 | 54.09% | 13.72% | 1.355x |
| 135 | 2017-09-29 … 2022-08-31 | 54.08% | 13.56% | 1.357x |
| 136 | 2017-10-31 … 2022-10-31 | 48.82% | 11.86% | 1.330x |
| 137 | 2017-11-30 … 2022-11-30 | 48.26% | 12.52% | 1.318x |
| 138 | 2017-12-29 … 2022-11-30 | 49.26% | 12.46% | 1.327x |
| 139 | 2018-01-31 … 2023-01-31 | 45.88% | 11.01% | 1.314x |
| 140 | 2018-02-28 … 2023-02-28 | 42.70% | 11.03% | 1.285x |
| 141 | 2018-03-29 … 2023-02-28 | 43.05% | 11.72% | 1.280x |
| 142 | 2018-04-30 … 2023-04-28 | 39.45% | 13.01% | 1.234x |
| 143 | 2018-05-31 … 2023-05-31 | 36.68% | 12.95% | 1.210x |
| 144 | 2018-06-29 … 2023-05-31 | 36.60% | 13.01% | 1.209x |
| 145 | 2018-07-31 … 2023-07-31 | 40.61% | 14.67% | 1.226x |
| 146 | 2018-08-31 … 2023-08-31 | 36.33% | 13.51% | 1.201x |
| 147 | 2018-09-28 … 2023-08-31 | 35.33% | 13.56% | 1.192x |
| 148 | 2018-10-31 … 2023-10-31 | 35.89% | 12.60% | 1.207x |
| 149 | 2018-11-30 … 2023-11-30 | 37.74% | 14.58% | 1.202x |
| 150 | 2018-12-31 … 2023-12-29 | 41.70% | 17.26% | 1.208x |
| 151 | 2019-01-31 … 2024-01-31 | 39.64% | 16.27% | 1.201x |
| 152 | 2019-02-28 … 2024-01-31 | 38.25% | 15.94% | 1.192x |
| 153 | 2019-03-29 … 2024-03-28 | 44.60% | 17.50% | 1.231x |
| 154 | 2019-04-30 … 2024-04-30 | 41.89% | 15.50% | 1.228x |
| 155 | 2019-05-31 … 2024-05-31 | 45.79% | 18.12% | 1.234x |
| 156 | 2019-06-28 … 2024-06-28 | 44.32% | 17.99% | 1.223x |
| 157 | 2019-07-31 … 2024-07-31 | 41.56% | 17.70% | 1.203x |
| 158 | 2019-08-30 … 2024-08-30 | 41.07% | 18.41% | 1.191x |
| 159 | 2019-09-30 … 2024-09-30 | 40.67% | 18.65% | 1.186x |
| 160 | 2019-10-31 … 2024-10-31 | 41.22% | 17.87% | 1.198x |
| 161 | 2019-11-29 … 2024-11-29 | 46.45% | 18.64% | 1.234x |
| 162 | 2019-12-31 … 2024-12-31 | 40.53% | 17.62% | 1.195x |
| 163 | 2020-01-31 … 2025-01-31 | 39.02% | 18.07% | 1.177x |
| 164 | 2020-02-28 … 2025-02-28 | 36.37% | 19.00% | 1.146x |
| 165 | 2020-03-31 … 2025-03-31 | 36.83% | 19.24% | 1.147x |
| 166 | 2020-04-30 … 2025-04-30 | 35.67% | 16.49% | 1.165x |
| 167 | 2020-05-29 … 2025-04-30 | 35.12% | 15.80% | 1.167x |
| 168 | 2020-06-30 … 2025-06-30 | 35.28% | 18.19% | 1.145x |
| 169 | 2020-07-31 … 2025-07-31 | 34.47% | 17.87% | 1.141x |
| 170 | 2020-08-31 … 2025-08-29 | 32.71% | 16.69% | 1.137x |
| 171 | 2020-09-30 … 2025-09-30 | 39.27% | 18.57% | 1.175x |
| 172 | 2020-10-30 … 2025-09-30 | 39.93% | 19.43% | 1.172x |
| 173 | 2020-11-30 … 2025-11-28 | 34.85% | 17.77% | 1.145x |
| 174 | 2020-12-31 … 2025-12-31 | 34.10% | 16.92% | 1.147x |
| 175 | 2021-01-29 … 2025-12-31 | 28.24% | 17.20% | 1.094x |
| 176 | 2021-02-26 … 2026-01-30 | 35.53% | 17.04% | 1.158x |
| 177 | 2021-03-31 … 2026-03-31 | 31.78% | 14.07% | 1.155x |
| 178 | 2021-04-30 … 2026-04-30 | 32.48% | 16.03% | 1.142x |
| 179 | 2021-05-28 … 2026-04-30 | 32.24% | 16.22% | 1.138x |
Notes
mode=explore; family=recovery-quality-contrarian-52w-hybrid
This hybrid combines three orthogonal parent strengths through a relay-ladder instead of a blended average. Controlled 52-week washouts only qualify when they show repair evidence and business quality; repaired names can hand off into trend leadership in stronger tapes; and when signals conflict, a separate support sleeve decides whether the stock is an unfinished turnaround or a durable franchise. In risk-off conditions, deep drawdowns are sharply de-emphasized unless low volatility, liquidity, income, and valuation sanity all agree.
Deliberate metric coverage: actively use momentum/return (return_1m_pct, return_3m_pct, return_6m_pct, return_12m_pct, momentum_12_1_pct), both recovery metrics (from_200d_ma_pct, from_52w_high_pct), volatility (realized_vol_3m), liquidity (avg_daily_dollar_volume_3m, trading_days_3m), income (dividend_yield_ttm_pct, dividend_ttm), valuation (pe, peg), growth (revenue_growth_pct, free_cash_flow_growth_pct, forward_eps), quality (operating_margin_pct, free_cash_flow_margin_pct), and size (market_cap). Deliberately weight forward_pe, eps_growth_pct, operating_income_growth_pct, avg_daily_volume_3m, shares_outstanding, close, adj_close, high_52w, ma_200d, eps_ttm, revenue_ttm, operating_income_ttm, and free_cash_flow_ttm at zero this run to avoid overstacking correlated momentum/valuation bets and to rotate underused revenue-plus-income evidence into the family.
Lesson notes
explore/recovery-quality-contrarian-52w-hybrid: relative_return 1.1986x (delta -0.1923 vs exp_1118); win-rate 100.0%, worst-window 1.088585, dispersion 11.9799%.
Monthly picks — top stocks selected each month (whole timeline)
timeline — 240 months · top 15 each
| Month | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2006-07-31 | GOOG | GOOGL | GE | JNJ | C | USB | BAC | KO | CPQ | TWX | LH | PEP | XOM | BRK-B | MSFT |
| 2006-08-31 | MAY | GOOG | GOOGL | XOM | T | JNJ | USB | BAC | GE | MSFT | LH | DGX | KO | MO | ETR |
| 2006-09-29 | MAY | GOOG | BAC | GOOGL | XOM | T | C | JNJ | USB | MRK | LH | AIZ | JPM | PFE | BXP |
| 2006-10-31 | MAY | MSFT | T | XOM | BAC | ES | GS | VNO | C | MRK | DECK | OKE | CMCSA | PFE | GOOG |
| 2006-11-30 | MAY | MSFT | ES | OKE | GOOG | GOOGL | XOM | AAPL | BAC | C | T | PFE | MRK | GS | NEE |
| 2006-12-29 | MAY | MSFT | ES | OKE | TWX | T | AT | XOM | CNP | ETR | C | MCD | CSCO | XEL | PNW |
| 2007-01-31 | MAY | MSFT | UIS | NEE | T | GOOG | MO | C | GOOGL | AT | TWX | ES | HAS | BKNG | OKE |
| 2007-02-28 | MAY | CF | ES | NEE | T | ALB | MAT | EOP | HAS | AT | SRE | CL | MO | MSFT | GOOG |
| 2007-03-30 | MAY | ES | DLX | NRG | CE | CF | NEE | ETR | GT | CHD | MAT | AT | SRE | ALXN | BKNG |
| 2007-04-30 | GT | MAY | ES | NRG | ETR | CE | BAX | CHD | ALXN | AAPL | ANDV | XOM | BKNG | NEE | PRU |
| 2007-05-31 | MAY | GT | AAPL | CE | NRG | XOM | BAX | ALXN | GOOG | CF | T | PRU | ETR | VFC | CI |
| 2007-06-29 | MAY | AAPL | CF | FSLR | GT | GOOG | AL | DECK | JEC | ALXN | CE | MDR | XOM | ATGE | GOOGL |
| 2007-07-31 | AL | GOOG | CVG | GHC | DJ | AAPL | JEC | CPQ | ALXN | BRK-B | WTW | MDR | GE | GOOGL | ATGE |
| 2007-08-31 | GOOG | CVG | AAPL | GOOGL | AL | BRK-B | WTW | BIIB | IBM | CRL | CPQ | MMM | KO | GE | ELV |
| 2007-09-28 | GOOG | CVG | PENN | AAPL | BRK-B | GOOGL | IBM | CRL | CPQ | JNJ | PG | MMM | CSCO | WTW | KMB |
| 2007-10-31 | AAPL | CF | GOOG | MOS | ISRG | AL | PENN | GOOGL | OI | CVG | FLR | CMG | JEC | FMC | EXPE |
| 2007-11-30 | GOOG | AAPL | GOOGL | PENN | CL | CVG | BRK-B | MRK | JNJ | CLX | MO | JEC | ELV | PG | KO |
| 2007-12-31 | GOOG | PENN | CVG | CL | CLX | AAPL | WEC | ELV | JNJ | MRK | DGX | CMS | BRK-B | FE | MO |
| 2008-01-31 | MAY | CL | JNJ | CVG | DGX | CLX | LH | ATO | KMB | XOM | PG | WEC | EW | MSFT | GOOG |
| 2008-02-29 | MAY | CVG | CL | KMB | XOM | CHD | GE | JNJ | WEC | ATO | MO | LH | GOOG | XEL | CPQ |
| 2008-03-31 | MAY | CVG | KMB | CL | XOM | CHD | ATO | WEC | GE | JNJ | BRK-B | HSIC | MO | LH | EW |
| 2008-04-30 | MAY | CVG | KMB | CHD | WEC | BRK-B | GE | XOM | AFL | BAX | MEE | AAPL | CL | LNT | XEL |
| 2008-05-30 | MEE | MAY | ESV | AAPL | TTWO | SWN | MA | BTUUQ | APA | BCR | CHD | KMB | WEC | CVX | CSX |
| 2008-06-30 | MAY | TTWO | MEE | BAX | AAPL | ESV | MKC | KMB | XEL | XOM | WEC | CHD | FE | OKE | SWN |
| 2008-07-31 | MAY | SWN | ESV | BCR | AAPL | DF | EW | GS | BAX | BTUUQ | APOL | ATGE | XOM | CELG | FDO |
| 2008-08-29 | SWN | BCR | DF | ESV | FDO | APOL | CELG | ATGE | FI | CEPH | HRS | HCBK | BIG | COG | CERN |
| 2008-09-30 | XOM | MDLZ | CVG | BAX | CRL | EDS | MKC | SWN | CLX | BDX | TECH | WEC | BCR | JNJ | XEL |
| 2008-10-31 | CLX | CHD | MDLZ | MKC | LDOS | XOM | KR | CVG | WWY | SJM | WEC | KMB | BRK-B | BAX | GOOG |
| 2008-11-28 | CLX | CHD | MDLZ | LH | KR | KMB | XOM | MKC | GPC | LDOS | CL | DLTR | TECH | XEL | BDX |
| 2008-12-31 | XOM | LDOS | MDLZ | LH | KMB | TECH | CLX | CHD | KR | WEC | MKC | XEL | BDX | GOOG | DLTR |
| 2009-01-30 | XOM | LDOS | CL | BDX | WEC | GOOG | HET | MDLZ | LH | PNW | KMB | COR | CNP | ABT | PM |
| 2009-02-27 | XOM | HET | GOOG | PCG | PM | LDOS | ETR | AAPL | XEL | WEC | MDLZ | BDX | CVX | DTE | LH |
| 2009-03-31 | XOM | PCG | GOOG | T | HET | EW | IBM | CL | CMS | CHD | KMB | VZ | XEL | PM | CVX |
| 2009-04-30 | XOM | GOOG | T | HET | CVX | AAPL | VZ | ECL | LH | CMS | IBM | UPS | DGX | CHD | WEC |
| 2009-05-29 | GOOG | UPS | XOM | CVX | AZO | LH | HET | CMS | VZ | DGX | KMB | XEL | DLTR | CHD | ECL |
| 2009-06-30 | GOOG | HET | EOG | AAPL | PALM | AZO | XOM | IBM | BKNG | WBD | GS | MDLZ | MKC | MCD | DLTR |
| 2009-07-31 | HET | GOOG | PALM | IBM | XOM | AAPL | EOG | AZO | FISV | GE | GGP | WBD | LH | CL | CLX |
| 2009-08-31 | PALM | HET | IBM | BAC | AAPL | EOG | GOOG | XOM | GS | GGP | WBD | BKNG | GE | AMGN | MTCH |
| 2009-09-30 | PALM | BKNG | AAPL | CAR | WBD | IBM | GS | GOOG | BAC | GE | XOM | AZO | EOG | SNDK | GGP |
| 2009-10-30 | CAR | KMG | GGP | SW | SNDK | BKNG | AAPL | PALM | WBD | GS | WFM | GOOG | GNW | WLL | IBM |
| 2009-11-30 | KMG | GGP | BKNG | GS | CAR | SW | SNDK | GOOG | WFM | WLL | AAPL | FCX | GMCR | VTSS | WBD |
| 2009-12-31 | CAR | GGP | BKNG | WFM | WLL | GOOG | GS | PXD | TIN | MEE | GMCR | SNDK | VTSS | AAPL | SW |
| 2010-01-29 | SW | GGP | CAR | SANM | BKNG | WLL | WFM | AAPL | ACS | F | PXD | GOOG | EW | SNDK | GMCR |
| 2010-02-26 | SANM | GGP | GNW | CAR | ACS | BKNG | WLL | WFM | SW | F | PXD | SNDK | GMCR | VSTNQ | AAPL |
| 2010-03-31 | GGP | SANM | GNW | ETFC | WLL | BBWI | BKNG | GS | WFM | VSTNQ | PXD | STI | SNDK | GMCR | AAPL |
| 2010-04-30 | ETFC | GGP | WLL | INCY | SANM | VSTNQ | UAL | LYV | BBWI | BKNG | GNW | WFM | PXD | SNDK | STI |
| 2010-05-28 | ETFC | VSTNQ | WLL | AAPL | BBWI | UAL | NFLX | GGP | SSP | WHR | AAL | LULU | GS | DDS | UST |
| 2010-06-30 | CVG | KMB | AAPL | UST | CLX | LLY | CL | LDOS | T | MKC | BDX | LUMN | DLTR | ED | MDLZ |
| 2010-07-30 | WY | AAPL | SW | GS | UST | ETFC | CVG | KMB | DLTR | CLX | CASY | LUMN | HSY | KDP | CPQ |
| 2010-08-31 | WY | CVG | AAPL | LUMN | KMB | CPQ | CLX | CASY | UST | SW | PM | MDLZ | MKC | BRK-B | MRK |
| 2010-09-30 | WY | ETFC | AAPL | NEM | CPQ | BKNG | ERIE | CCU | LUMN | PM | CVG | UST | KMB | AZO | NFLX |
| 2010-10-29 | ETFC | NFLX | BKNG | AAPL | LVS | UAL | WY | WLL | ERIE | AZO | LUMN | AAL | AAP | ACAS | CPQ |
| 2010-11-30 | ETFC | LVS | VRTS | BKNG | AIG | UAL | NFLX | AAPL | AZO | WLL | ACAS | ERIE | CMG | BWA | ILMN |
| 2010-12-31 | ETFC | ACAS | VRTS | AIG | WLL | BKNG | WY | NFLX | AZO | AAPL | BWA | LYB | ERIE | LVS | CMI |
| 2011-01-31 | ETFC | AIG | WY | AAPL | ACAS | WLL | BKNG | AZO | URI | VRTS | AMAT | LULU | MAY | NFLX | BBWI |
| 2011-02-28 | MAY | ETFC | WY | AIG | AAPL | URI | NFLX | LULU | AMAT | ACAS | NOV | VRTS | BKNG | AZO | LVS |
| 2011-03-31 | MAY | WY | ETFC | URI | AAPL | COP | BKNG | VRTS | AZO | ECHO | CVX | XOM | NOV | CAT | TER |
| 2011-04-29 | MAY | ETFC | AAPL | BKNG | WY | AZO | LULU | PM | COP | ERIE | CVX | NFLX | CAT | ULTA | XOM |
| 2011-05-31 | MAY | IPGP | BKNG | ETFC | AAPL | PM | LULU | EP | CAT | AZO | WYNN | MNST | ABMD | OKE | HUM |
| 2011-06-30 | MAY | IPGP | BKNG | EP | WCG | ABMD | MNST | AAPL | COG | ETFC | GMCR | KSU | WFM | PETM | CBS |
| 2011-07-29 | LULU | AIG | AAPL | MDLZ | WYNN | CNP | CPQ | PPL | OKE | KMB | XEL | WEC | PNW | EXC | EVRG |
| 2011-08-31 | AIG | KMB | MDLZ | UST | CL | AAPL | SYY | HSY | PPL | EXC | CVG | PCG | XEL | PM | WEC |
| 2011-09-30 | AIG | KMB | UST | MDLZ | AAPL | PPL | SYY | HSY | EXC | CVG | XEL | CL | PCG | PM | WEC |
| 2011-10-31 | AIG | UST | KMB | AAPL | CVG | MDLZ | PPL | DLTR | AZO | HSY | XEL | CL | CF | EXC | PM |
| 2011-11-30 | AIG | AAPL | DLTR | CVG | GOOG | UST | PPL | KMB | MDLZ | XEL | EXC | HSY | PM | SJM | ETR |
| 2011-12-30 | AAPL | GOOG | PM | MDLZ | DLTR | UST | KMB | CVG | HSY | CHD | PPL | CL | XEL | TJX | ETR |
| 2012-01-31 | AAPL | DLTR | TJX | HSY | MDLZ | UST | GRMN | KMB | MRK | SHW | PM | AAP | AWK | DLR | CVG |
| 2012-02-29 | AAPL | URI | STX | REGN | MNST | DLTR | AZO | TJX | BKNG | BIIB | WCG | EQIX | COG | ULTA | SHW |
| 2012-03-30 | AAPL | BKNG | STX | EQIX | MNST | ULTA | TJX | DPZ | REGN | DLTR | URI | AZO | HFC | SBAC | BIIB |
| 2012-04-30 | AAPL | VRTX | BKNG | HET | PEG | PM | SBAC | AZO | DLTR | SHW | EXPE | TJX | KMB | CL | WEC |
| 2012-05-31 | AAPL | BKNG | HET | VRTX | EXPE | KMB | MKC | WEC | SHW | SBAC | AZO | PM | CHD | SRE | STX |
| 2012-06-29 | AAPL | VRTX | EXPE | HET | BKNG | WEC | KMB | SRE | CHD | UST | MRK | DTE | FE | SBAC | XEL |
| 2012-07-31 | VRTX | AAPL | EXPE | STX | HET | WEC | KMB | CHD | SRE | BKNG | PNW | SBAC | DTE | XEL | MRK |
| 2012-08-31 | STX | VRTX | AAPL | EXPE | HET | SBAC | MRK | WEC | VTR | CPQ | KMB | PNW | SHW | USB | DTE |
| 2012-09-28 | PHM | STX | EXPE | AAPL | VRTX | SHW | REGN | SBAC | LEN | DHI | LYB | ANDV | GOOG | STZ | GPS |
| 2012-10-31 | VRTX | EXPE | AAPL | STX | NCC | SBAC | PHM | CPQ | TMUS | MRK | ACGL | OKE | CVG | MKC | GOOG |
| 2012-11-30 | PHM | REGN | EXPE | AAPL | STZ | SBAC | WHR | STX | ALL | LEN | LPX | CPAY | BBBY | WY | PSX |
| 2012-12-31 | REGN | PHM | STX | LPX | CPAY | WHR | DDS | SBAC | OMX | VRTS | SW | AAPL | ALL | PKG | APTV |
| 2013-01-31 | STX | OMX | PHM | LPX | VRTS | REGN | CPAY | WHR | DDS | ALL | LEN | THC | MPC | KBH | SBAC |
| 2013-02-28 | OMX | VRTS | APO | LPX | THC | MPC | PHM | STX | ALL | NFLX | GILD | TYL | CPAY | EXPE | ALK |
| 2013-03-28 | OMX | KKR | VRTS | NFLX | MHK | THC | PHM | GILD | MPC | LPX | CPAY | AOS | ALK | HRB | HCA |
| 2013-04-30 | OMX | KKR | NFLX | VRTS | GILD | REGN | MHK | THC | MPC | HRB | KBH | CAR | TWX | CPAY | COST |
| 2013-05-31 | OMX | TSLA | KKR | PHM | NFLX | STZ | VRTS | REGN | MPC | GS | GILD | WDC | BLK | CPAY | TMUS |
| 2013-06-28 | OMX | TSLA | KKR | REGN | BKNG | TMUS | GOOG | GILD | WDC | CPAY | MU | STX | STZ | GS | CBOE |
| 2013-07-31 | OMX | TSLA | KKR | GME | MTG | BKNG | REGN | BBBY | NFLX | GOOG | CBOE | TMUS | CPAY | GILD | GNW |
| 2013-08-30 | OMX | TSLA | MTG | BKNG | GME | KATE | GS | DAL | GOOG | AZO | GHC | FLT | REGN | BBY | BLK |
| 2013-09-30 | OMX | TSLA | BKNG | NFLX | KATE | AAPL | MTG | FLT | GS | ETFC | CELG | RRD | HBI | GHC | WYNN |
| 2013-10-31 | OMX | TSLA | BKNG | META | MU | KATE | FLT | ETFC | CELG | RRD | AAPL | BBY | REGN | GS | CSGP |
| 2013-11-29 | OMX | TSLA | META | BKNG | MU | NFLX | MKTX | BR | FL | AAPL | DAL | CSGP | HII | IBKR | KATE |
| 2013-12-31 | TSLA | META | MU | BKNG | HII | KATE | FNMA | NFLX | MOLX | AAPL | FMCC | BR | DAL | IBKR | INCY |
| 2014-01-31 | TSLA | MU | INCY | FNMA | FMCC | TKO | BKNG | HII | GOOG | META | WYNN | ILMN | KATE | AAPL | TMUS |
| 2014-02-28 | FNMA | FMCC | TSLA | MU | ILMN | WYNN | GOOG | META | BKNG | TKO | PHM | DXCM | AAPL | NCC | HII |
| 2014-03-31 | TSLA | TKO | DAL | META | MU | WYNN | NCC | HP | BKNG | ILMN | RCL | AAL | URI | HII | GOOG |
| 2014-04-30 | TSLA | MU | DAL | TRGP | HP | FANG | META | RCL | HII | URI | DD | NCC | LYB | BKNG | TSN |
| 2014-05-30 | META | MU | DAL | FRX | TSLA | LUV | WLL | TRGP | TPL | URI | AAPL | GMCR | OKE | AAL | HP |
| 2014-06-30 | META | DAL | MU | FRX | TSLA | WLL | LUV | AAPL | TPL | GMCR | URI | NFX | AAL | OKE | FANG |
| 2014-07-31 | MU | META | FRX | DAL | TPL | AAPL | TSLA | LUV | URI | GMCR | NFX | ODP | ABMD | SWKS | FSL |
| 2014-08-29 | MU | DAL | GILD | META | AAPL | TPL | LUV | URI | GMCR | CAR | LYB | TSLA | INTC | SWKS | ODP |
| 2014-09-30 | GILD | MU | AAPL | META | LUV | URI | TRGP | GMCR | PANW | SWKS | WMB | ENPH | UNP | ODP | FSL |
| 2014-10-31 | PANW | GILD | META | AAPL | MU | MMI | GMCR | LUV | DLR | EW | ODP | FSL | TSLA | KDP | URI |
| 2014-11-28 | PANW | AAPL | META | GILD | EW | MNST | TSLA | GMCR | KLAC | LUV | MU | DAL | DLR | PAYC | KDP |
| 2014-12-31 | PANW | AAPL | RCL | LUV | KR | SWKS | GILD | EA | MU | EW | KLAC | DAL | WELL | GMCR | AMGN |
| 2015-01-30 | RCL | KR | GILD | AAPL | CVG | PANW | SHW | DAL | WELL | WM | KDP | BX | VNO | ARE | KLAC |
| 2015-02-27 | SWKS | PANW | KR | AAPL | CNC | COR | SBUX | RCL | LUV | KDP | EA | EW | ULTA | SHW | DLTR |
| 2015-03-31 | AAPL | CNC | GILD | SWKS | PANW | COR | KR | HSP | AZO | ABMD | DLTR | EA | SHW | LII | BBWI |
| 2015-04-30 | PANW | AAPL | SWKS | HSP | ABMD | COR | GILD | EA | KMG | AZO | DXCM | BTUUQ | BBWI | BKNG | ULTA |
| 2015-05-29 | GILD | PANW | BTUUQ | ABMD | HSP | AAPL | CNXT | SWKS | CZR | DXCM | AZO | INCY | COR | SBUX | ULTA |
| 2015-06-30 | GILD | PANW | BTUUQ | AAPL | BKNG | KLAC | AZO | BX | ABMD | KRFT | TSLA | HSP | BLK | REGN | GS |
| 2015-07-31 | GILD | PANW | BKNG | AAPL | AZO | KRFT | ABMD | KLAC | META | BTUUQ | AMCR | EA | BLK | DXCM | HSP |
| 2015-08-31 | KLAC | GILD | AAPL | CVG | GE | BRK-B | BKNG | BLK | UST | CCI | PSA | DVA | BDX | NVR | SPG |
| 2015-09-30 | KLAC | CVG | UST | GILD | AAPL | BRK-B | WTW | PSA | WM | BKNG | CCI | ACGL | GE | DVA | SPG |
| 2015-10-30 | CVG | UST | GILD | AZO | BKNG | WM | ATO | AAPL | CLX | CCI | ACGL | KLAC | CASY | PSA | CBOE |
| 2015-11-30 | BKNG | META | ABMD | AZO | AMCR | GOOG | AAPL | MHK | GILD | PSA | CINF | ACGL | CVG | CLX | UAL |
| 2015-12-31 | ABMD | ATVI | GOOG | META | BKNG | GILD | MHK | GE | PSA | UAL | AAPL | JKHY | AZO | TSS | COST |
| 2016-01-29 | GE | CVG | UST | SYY | GILD | GOOG | PSA | AAPL | ACGL | BRK-B | PM | EG | AMCR | COST | SPG |
| 2016-02-29 | GE | CVG | UST | T | GOOG | PM | SPG | GILD | BRK-B | PSA | META | XEL | AAPL | AMCR | CMS |
| 2016-03-31 | UAL | PM | TSN | XEL | META | CMS | LNT | ATO | WEC | SCG | T | GOOG | NI | KMB | UST |
| 2016-04-29 | META | UAL | PM | T | PSA | ATO | MRSH | ITW | WM | GOOG | BKNG | GILD | SPG | CMS | LNT |
| 2016-05-31 | META | BKNG | X | BLK | ABMD | T | MRSH | PM | AZO | MDT | ITW | DLR | GOOG | WM | OMC |
| 2016-06-30 | X | AWK | EVRG | NVDA | DLR | ABMD | EQIX | META | CZR | MDR | IRM | WM | ATO | NI | HII |
| 2016-07-29 | X | DHR | META | WM | AWK | BKNG | NI | IRM | DLR | AZO | EVRG | RSG | CNP | VTR | PCG |
| 2016-08-31 | AMD | WB | X | DHR | NVDA | SPGI | WPX | MDR | META | NAV | MKTX | DXC | ABMD | EVRG | AMZN |
| 2016-09-30 | WB | AMD | X | DHR | NVDA | SPGI | WPX | NAV | LITE | MDR | META | AMAT | DXC | AMZN | VEEV |
| 2016-10-31 | X | DHR | NVDA | AMD | SPGI | WB | WPX | DXC | JOY | NAV | GEN | TPL | LITE | META | AMAT |
| 2016-11-30 | X | DHR | AMD | NVDA | SPGI | WB | CLF | WPX | CHTR | NAV | TPL | DXC | JOY | STLD | OKE |
| 2016-12-30 | NVDA | X | DHR | AMD | CLF | SPGI | WPX | TPL | NAV | OKE | FMCC | FNMA | CHTR | BAC | STLD |
| 2017-01-31 | NVDA | X | DHR | AMD | TPL | SPGI | CLF | FMCC | FNMA | NAV | TRGP | CHTR | WPX | URI | BAC |
| 2017-02-28 | AMD | X | NVDA | DHR | SPGI | CLF | NAV | BAC | URI | CHTR | SLM | CSX | WDC | RF | WPX |
| 2017-03-31 | AMD | NVDA | X | DHR | URI | CHTR | BKNG | NAV | BAC | GS | SLM | META | ANET | AAPL | RF |
| 2017-04-28 | NVDA | X | AMD | DHR | CHTR | KMG | WDC | BKNG | NAV | CSX | ANET | HPQ | AAPL | AMAT | META |
| 2017-05-31 | NVDA | CHTR | KMG | DHR | X | XYZ | BKNG | CSX | TSLA | NAV | WDC | META | AAPL | ANET | LRCX |
| 2017-06-30 | NVDA | XYZ | ANET | CHTR | TSLA | DHR | CSX | BKNG | AAPL | META | AMAT | BBY | NAV | MU | TTWO |
| 2017-07-31 | NVDA | XYZ | CHTR | ANET | BKNG | ALGN | META | MU | VRTX | TTWO | LRCX | AMAT | LITE | BA | XRX |
| 2017-08-31 | NVDA | BA | WB | META | TTWO | XYZ | ALGN | ETSY | BKNG | SEDG | VRTX | TPL | IPGP | MU | TSLA |
| 2017-09-29 | NVDA | TTWO | XYZ | WB | ETSY | BA | IPGP | VRTX | ALGN | MU | META | ANET | TTD | SEDG | XRX |
| 2017-10-31 | BBBY | XYZ | NVDA | MU | TTD | TTWO | ALGN | ETSY | IPGP | SEDG | NRG | MTW | BA | NVR | META |
| 2017-11-30 | SEDG | MU | NVDA | ENPH | BBBY | ALGN | IPGP | XYZ | BKNG | TWTR | NRG | ANET | NVR | META | VRTX |
| 2017-12-29 | SEDG | BBBY | ANET | TWTR | MU | VRTX | NVDA | BKNG | NRG | ENPH | PENN | META | BA | NVR | KBH |
| 2018-01-31 | NKTR | SEDG | BBBY | ANET | TWTR | MU | PENN | BKNG | ABBV | BA | VRTX | NVDA | EC | XYZ | META |
| 2018-02-28 | NKTR | BKNG | AMZN | TWTR | NVDA | MU | BA | ANET | ABBV | SEDG | XYZ | MTCH | NOW | VRTX | TKO |
| 2018-03-29 | NKTR | SEDG | GE | MTCH | MU | RCL | NVDA | NXPI | BLK | META | NOW | BKNG | BA | ADBE | HET |
| 2018-04-30 | MU | NKTR | SEDG | GE | HET | KDP | BLK | RCL | BA | META | NOW | BKNG | NXPI | ANET | CCI |
| 2018-05-31 | MU | SEDG | META | CCI | ETSY | HET | GE | KDP | BLK | ENPH | BKNG | ANET | AMZN | PSX | EXR |
| 2018-06-29 | MU | NFLX | META | HET | CCI | ANF | TKO | BLK | GE | ADBE | NVDA | NOW | ETSY | ANET | AMZN |
| 2018-07-31 | HET | ETSY | TKO | MU | ENPH | AXON | CVNA | THC | AMZN | NFLX | ANF | ABMD | ALGN | LULU | CCI |
| 2018-08-31 | HET | TKO | CVNA | AXON | ABMD | ETSY | XYZ | AMZN | MOS | AMD | CCI | NFLX | MU | TTD | ENPH |
| 2018-09-28 | HET | AMD | TKO | CVNA | XYZ | ABMD | ETSY | AMZN | TTD | MOS | CCI | AXON | DXCM | UIS | LULU |
| 2018-10-31 | CCI | HET | MOS | AMZN | BEN | AVGO | CHTR | META | EVHC | EXR | SPG | AAPL | DXCM | MKC | VZ |
| 2018-11-30 | CCI | HET | EOG | EXR | MOS | AMZN | BEN | MRK | MKC | KMG | SAF | UAA | ESRX | VZ | TSLA |
| 2018-12-31 | CCI | EXR | HET | BEN | AMZN | UST | AET | VRT | MRK | SAF | PSA | BRK-B | SPG | EOG | BLK |
| 2019-01-31 | HET | CCI | TTD | MOS | EOG | EXR | AMZN | PAYC | RHT | TSLA | MTCH | MRK | UST | LULU | ETSY |
| 2019-02-28 | HET | CCI | EOG | MOS | AMZN | EXR | META | UAA | TSLA | RHT | AMD | XLNX | KEYS | BLK | ERIE |
| 2019-03-29 | HET | TTD | ETSY | ENPH | AZO | CCI | RHT | ERIE | XLNX | KEYS | AES | AVP | CDAY | LLY | SSP |
| 2019-04-30 | HET | TTD | ENPH | AVP | AZO | ETSY | CCI | AMD | AMZN | MRO | VEEV | KEYS | CVNA | SSP | XLNX |
| 2019-05-31 | HET | CCI | EXR | AMZN | VRT | SAF | BKNG | MDLZ | BLK | UST | ECL | AZO | VRSK | HSY | WRB |
| 2019-06-28 | HET | CCI | ENPH | TTD | EXR | AMZN | ERIE | MTCH | BLK | BKNG | BALL | AZO | AVP | HSY | WRB |
| 2019-07-31 | HET | ENPH | TTD | AVP | CCI | AZO | BALL | HSY | AMZN | FICO | MTCH | CINF | WRB | BKNG | APD |
| 2019-08-30 | ENPH | HET | CCI | EXR | HSY | SAF | AVP | WEC | VRT | BKNG | SBAC | AZO | UST | VRSK | ETR |
| 2019-09-30 | HET | CCI | SEDG | EXR | ETR | ES | ENPH | EVRG | AVP | WEC | FE | VRT | HSY | NCC | XEL |
| 2019-10-31 | HET | ENPH | AVP | SEDG | CCI | BLDR | ETR | KBH | MAA | INVH | ES | MLM | EQR | WEC | WU |
| 2019-11-29 | HET | AVP | CCI | AAPL | BLDR | ENPH | NCC | SEDG | KLAC | CDAY | LRCX | TER | AIZ | BF.B | BF-B |
| 2019-12-31 | HET | AVP | ENPH | CCI | AAPL | TSLA | CDAY | BLDR | ANSS | THC | LLY | BKNG | TYL | APO | FBHS |
| 2020-01-31 | HET | TSLA | ENPH | CCI | AAPL | AVP | TYL | LLY | TDG | CPRT | CDAY | SEDG | ANSS | LM | PODD |
| 2020-02-28 | HET | CCI | EXR | SAF | UST | BRK-B | KMB | BLK | DGX | NCC | RSG | TYL | NI | MRK | ETR |
| 2020-03-31 | EXR | UST | TE | NCC | GEN | KR | TECH | MRK | CLX | CHRW | CVG | CCI | DVN | CCU | GOOG |
| 2020-04-30 | EXR | TE | UST | NCC | GEN | CHRW | CCI | KR | CLX | CVG | GOOG | MRK | CHIR | BRK-B | CNXT |
| 2020-05-29 | TE | UST | ENPH | EXR | GEN | NCC | TSLA | CLX | KR | CHRW | CI | GOOG | BIO | INCY | CNXT |
| 2020-06-30 | TSLA | TE | UST | AZO | CLX | NCC | KMB | KR | EA | CL | CCI | BLK | ENPH | GOOG | MKC |
| 2020-07-31 | TSLA | BBBY | ENPH | AZO | UST | CLX | TE | NEM | CTLT | CDAY | BLK | LM | VRTX | GOOG | ANSS |
| 2020-08-31 | TSLA | BBBY | ETSY | REGN | AZO | AAPL | ENPH | AMZN | WST | NVDA | BLK | AMD | CTLT | ODFL | SEDG |
| 2020-09-30 | TSLA | BBBY | ENPH | TUP | NVDA | ETSY | AMD | AZO | SEDG | AAPL | AMZN | GME | BLK | REGN | PENN |
| 2020-10-30 | TUP | ENPH | GME | EXR | SEDG | AZO | UST | BLK | NVDA | TE | BBWI | VIAC | NCC | AMD | ETSY |
| 2020-11-30 | TUP | MRNA | EXR | ENPH | CCI | AZO | TSLA | GME | BLK | VIAC | XEC | SEDG | AMZN | UST | TE |
| 2020-12-31 | TUP | TSLA | MRNA | ENPH | ETSY | TTD | CCI | BLK | SEDG | XYZ | AZO | AMD | ABMD | GME | CTLT |
| 2021-01-29 | GME | MRNA | TSLA | ENPH | TUP | AZO | ETSY | CCI | BLK | EXR | AAPL | AMZN | ABMD | ABX | NVDA |
| 2021-02-26 | GME | MRNA | TUP | VIAC | CCI | AZO | TSLA | QEP | ETSY | ENPH | BLK | EXR | DISCA | DISCK | CPRI |
| 2021-03-31 | GME | DVN | TUP | VIAC | MRNA | DISCA | DISCK | AZO | QEP | CCI | ETSY | FCX | EXR | TSLA | AMT |
| 2021-04-30 | GME | DVN | TUP | MRNA | VIAC | XEC | QEP | ANF | AZO | DISCA | DISCK | TSLA | CAR | BBWI | EXR |
| 2021-05-28 | GME | DVN | XEC | AZO | MRNA | TUP | RRD | BLK | EXR | COF | GS | CRM | BIG | NAVI | CCI |
| 2021-06-30 | GME | MRNA | RRD | GS | XEC | AZO | MDP | BX | BLK | SBNY | BIG | TUP | ANF | TWTR | MRO |
| 2021-07-30 | MRNA | GME | RRD | MDP | AZO | BX | XEC | SBNY | GS | GOOG | SIVB | EPAM | CPT | TWTR | NVDA |
| 2021-08-31 | MRNA | GME | RRD | MDP | SBNY | DDS | KKR | XEC | GS | BX | SIVB | GOOG | CRL | TWTR | EPAM |
| 2021-09-30 | MRNA | RRD | GME | MDP | SBNY | KKR | GS | M | BX | SIVB | XEC | FTNT | GOOG | XLNX | IT |
| 2021-10-29 | MRNA | RRD | GME | MDP | KKR | GS | M | MRO | DVN | SBNY | JWN | BX | DDS | TRGP | TSLA |
| 2021-11-30 | MRNA | DVN | MRO | TSLA | RRD | EXR | AZO | ABX | GS | DDOG | MDP | FDS | COST | BX | BLK |
| 2021-12-31 | RRD | DVN | MRNA | TSLA | NVDA | MRO | EXR | AZO | BLDR | AMD | SBNY | GS | DDOG | FDS | GME |
| 2022-01-31 | DVN | EXR | ABX | RRD | AZO | GS | MRO | HSY | PPL | BLK | EXC | BRK-B | FE | DTE | EIX |
| 2022-02-28 | DVN | ABX | EXR | RRD | GS | BRK-B | MCK | MRO | EXC | COR | HSY | NI | UST | MDLZ | MRNA |
| 2022-03-31 | COP | DVN | MRO | RRD | EXR | OXY | CF | ABX | MCK | MOS | TRGP | EXC | MRNA | XOM | CVX |
| 2022-04-29 | EXR | ABX | AMT | COP | BRK-B | CVG | NI | WEC | SRE | MRK | XEL | HSY | MCK | CMS | DTE |
| 2022-05-31 | EXR | ABX | AMT | FHN | MRK | CCI | BRK-B | XEL | EVRG | DTE | NI | PPL | WEC | CNP | ES |
| 2022-06-30 | EXR | ABX | AMT | FHN | CCI | MRK | ATO | DTE | XEL | EVRG | LDOS | ES | WEC | FE | WRB |
| 2022-07-29 | ABX | EXR | AMT | FHN | MRK | PSA | MCK | ATO | LW | DTE | KDP | XOM | KMB | CCI | XEL |
| 2022-08-31 | EXR | ABX | AMT | CCI | PSA | FHN | HSY | MDLZ | MRK | CL | KDP | MCK | KMB | WM | GPC |
| 2022-09-30 | EXR | AMT | ABX | CCI | FHN | PSA | HSY | SJM | MRK | WM | KMB | RSG | BF.B | BF-B | KDP |
| 2022-10-31 | ABX | EXR | NCLH | FHN | AMT | TKO | DVN | HSY | SJM | MCK | MRK | LW | CCI | ERIE | AZO |
| 2022-11-30 | NCLH | MPC | FHN | ABX | EXR | MRK | BKNG | CF | TKO | AZO | SJM | GPC | UNM | LW | ERIE |
| 2022-12-30 | MPC | NCLH | FHN | BKNG | ABX | MRK | EXR | SJM | HES | AZO | CCI | GPC | LW | CAH | ODP |
| 2023-01-31 | NCLH | MPC | BKNG | FHN | EXR | ABX | CCI | ACGL | MRK | PSA | AZO | VLO | SJM | HES | BLK |
| 2023-02-28 | NCLH | MPC | EXR | BKNG | FHN | PSA | CCI | RCL | ACGL | BLK | HES | ABX | TJX | AMT | ULTA |
| 2023-03-31 | VLO | TSLA | BKNG | NCLH | RCL | EXR | WBD | CCI | PSA | MPC | CCL | ULTA | COTY | AMT | BLK |
| 2023-04-28 | BKNG | LW | EXR | CCI | ABX | ULTA | CPRT | PSA | HSY | MPC | MDLZ | NCLH | BSX | VLO | KMB |
| 2023-05-31 | EXR | NCLH | BKNG | ABX | AMT | LW | CCI | PSA | HSY | MDLZ | BLK | BRK-B | MNST | KMB | WM |
| 2023-06-30 | SMCI | RCL | NCLH | BKNG | NVDA | CCL | PLTR | TSLA | META | EXR | FICO | BLDR | LW | CPRT | UBER |
| 2023-07-31 | SMCI | RCL | NCLH | BKNG | NVDA | CCL | META | JBL | UBER | TSLA | BLDR | VRT | PLTR | NFLX | ROST |
| 2023-08-31 | EXR | RCL | NCLH | BKNG | CCL | NFLX | TSLA | ROST | META | BLK | CCI | AZO | AMT | NVDA | MRSH |
| 2023-09-29 | EXR | BKNG | BLK | NCLH | CCI | NFLX | BRK-B | MRSH | AZO | AMT | L | VRSK | MEDI | ROP | TJX |
| 2023-10-31 | EXR | CCI | BLK | AMT | BRK-B | CVG | MRSH | AFL | ROP | L | CME | MEDI | RSG | VRSK | TJX |
| 2023-11-30 | EXR | NVDA | PHM | BKNG | CBOE | TSLA | AKAM | RSG | AFL | L | BRK-B | COR | CME | NCLH | MCK |
| 2023-12-29 | ANF | COIN | EXR | BKNG | NVDA | CRWD | PHM | VRT | CVNA | GPS | APP | UBER | TSLA | META | RCL |
| 2024-01-31 | VRT | ANF | EXR | NVDA | CRWD | SMCI | BKNG | PHM | META | ANET | VST | AVGO | UBER | KKR | RCL |
| 2024-02-29 | EXR | NVDA | ANF | SMCI | CRWD | VRT | GE | KKR | VST | META | NRG | CVNA | UBER | AMD | GDDY |
| 2024-03-28 | NVDA | EXR | ANF | SMCI | VRT | CVNA | GE | KKR | UBER | VST | META | COIN | CRWD | EME | PLTR |
| 2024-04-30 | NVDA | CVNA | ANF | VRT | EXR | GE | VST | KKR | SMCI | NRG | EME | URI | TDG | UBER | RSG |
| 2024-05-31 | ANF | NVDA | VRT | EXR | VST | COIN | CVNA | EME | KKR | TT | APP | LDOS | HOOD | NRG | URI |
| 2024-06-28 | ANF | NVDA | EXR | CVNA | APP | KKR | VST | DYN | EME | HOOD | GDDY | TRGP | COST | LDOS | COIN |
| 2024-07-31 | NVDA | ANF | EXR | KKR | CVNA | THC | COIN | ANET | AZO | TRGP | DYN | GDDY | IRM | CCI | BKNG |
| 2024-08-30 | NVDA | EXR | DYN | ANF | THC | CVNA | AZO | GDDY | CCI | IRM | TRGP | VTR | KKR | GS | MSI |
| 2024-09-30 | NVDA | EXR | CVNA | THC | CCI | AZO | FICO | IRM | KKR | LUMN | VTR | MSI | BLK | WELL | BKNG |
| 2024-10-31 | CVNA | NVDA | APP | EXR | PLTR | GEV | BKNG | AZO | KKR | FICO | IRM | BLK | VST | HWM | SLG |
| 2024-11-29 | CVNA | APP | NVDA | LUMN | CCI | PLTR | AIG | HOOD | TPL | WYNN | EXR | FICO | TRGP | FISV | VST |
| 2024-12-31 | PLTR | NVDA | AIG | CCI | EXR | TSLA | UAL | EMR | WYNN | BLK | URI | CA | BK | BNY | FISV |
| 2025-01-31 | APP | PLTR | HOOD | TSLA | NVDA | CVNA | CCI | EXR | UAL | COIN | WYNN | AIG | ALK | GDDY | TPR |
| 2025-02-28 | AIG | CCI | EXR | NVDA | WYNN | EMR | PLTR | FOXA | TSLA | BSX | CA | BLK | UNM | EVRG | GS |
| 2025-03-31 | EXR | NEM | CA | VRSN | AZO | BRO | WDC | RSG | MRSH | BRK-B | EVRG | NVDA | CME | CAH | UST |
| 2025-04-30 | EXR | CA | UST | CNP | EVRG | WEC | ATO | PNW | CME | COR | CMS | BRK-B | EXC | DTE | PPL |
| 2025-05-30 | WDC | NEM | AZO | PM | CA | CME | CNP | VRSN | BUD | CAH | MNST | MCK | RSG | COR | ATO |
| 2025-06-30 | WDC | PLTR | NEM | HOOD | PM | AZO | CA | CAH | BUD | CNP | CME | TSLA | WEC | MNST | MCK |
| 2025-07-31 | WDC | NEM | HOOD | BKNG | NVDA | GS | CA | AZO | ACV | BNY | BK | RCL | BLK | ICE | INFO |
| 2025-08-29 | HOOD | FNMA | PLTR | FMCC | NVDA | GEV | NEM | AZO | APP | WDC | GS | STX | LITE | AMD | MPWR |
| 2025-09-30 | HOOD | APP | WDC | NEM | NVDA | STX | FNMA | PLTR | FMCC | AZO | COIN | AVGO | GS | TSLA | MPWR |
| 2025-10-31 | MU | HOOD | NEM | AZO | NVDA | EXR | MPWR | WDC | ABI | PCS | CA | STX | COIN | GS | TEL |
| 2025-11-28 | MU | WDC | STX | NEM | NVDA | NKTR | EXR | AZO | LRCX | AMD | MPWR | PCS | ABI | CA | GOOG |
| 2025-12-31 | WDC | MU | ECHO | NKTR | LITE | NEM | STX | CIEN | GILD | NVDA | WBD | PLTR | GOOG | AMD | HOOD |
| 2026-01-30 | MU | WDC | STX | NEM | LRCX | LITE | ECHO | TE | NKTR | NVDA | EA | GILD | WBD | GOOG | AMD |
| 2026-02-27 | MU | WDC | LITE | STX | LRCX | TER | CIEN | ATI | NEM | GILD | GOOG | NKTR | MPWR | FTI | EA |
| 2026-03-31 | CCI | EXR | ABI | PCS | CAM | CA | EA | UST | BHF | AMT | AZO | ATO | FE | NVDA | GOOG |
| 2026-04-30 | MU | CCI | EXR | WDC | ABI | PCS | CAM | AZO | NVDA | CA | EA | LITE | AMT | SEDG | FTI |
| 2026-05-29 | MU | EXR | CCI | WDC | NVDA | ABI | STX | PCS | CAM | EA | CA | AMD | EQIX | GS | AZO |
| 2026-06-26 | MU | STX | WDC | AMD | MRVL | INTC | TER | LRCX | CCI | AMAT | EXR | LITE | KLAC | DELL | CIEN |
Scoring script (python)
FORMULA_NAME = "Recovery Quality Contrarian 52-Week Hybrid (Relay Ladder Arbitration, v1142)"
LOGIC_VARIANT_COUNT = 4
NOTES = """mode=explore; family=recovery-quality-contrarian-52w-hybrid
This hybrid combines three orthogonal parent strengths through a relay-ladder instead of a blended average. Controlled 52-week washouts only qualify when they show repair evidence and business quality; repaired names can hand off into trend leadership in stronger tapes; and when signals conflict, a separate support sleeve decides whether the stock is an unfinished turnaround or a durable franchise. In risk-off conditions, deep drawdowns are sharply de-emphasized unless low volatility, liquidity, income, and valuation sanity all agree.
Deliberate metric coverage: actively use momentum/return (return_1m_pct, return_3m_pct, return_6m_pct, return_12m_pct, momentum_12_1_pct), both recovery metrics (from_200d_ma_pct, from_52w_high_pct), volatility (realized_vol_3m), liquidity (avg_daily_dollar_volume_3m, trading_days_3m), income (dividend_yield_ttm_pct, dividend_ttm), valuation (pe, peg), growth (revenue_growth_pct, free_cash_flow_growth_pct, forward_eps), quality (operating_margin_pct, free_cash_flow_margin_pct), and size (market_cap). Deliberately weight forward_pe, eps_growth_pct, operating_income_growth_pct, avg_daily_volume_3m, shares_outstanding, close, adj_close, high_52w, ma_200d, eps_ttm, revenue_ttm, operating_income_ttm, and free_cash_flow_ttm at zero this run to avoid overstacking correlated momentum/valuation bets and to rotate underused revenue-plus-income evidence into the family."""
WASHOUT_REPAIR = {
"from_52w_high_pct": (0.22, -1),
"from_200d_ma_pct": (0.18, +1),
"return_1m_pct": (0.10, -1),
"return_3m_pct": (0.16, +1),
"revenue_growth_pct": (0.11, +1),
"free_cash_flow_growth_pct": (0.09, +1),
"operating_margin_pct": (0.08, +1),
"avg_daily_dollar_volume_3m": (0.06, +1),
"trading_days_3m": (0.05, +1),
"pe": (0.08, -1),
"market_cap": (0.07, -1),
}
TREND_RELAY = {
"momentum_12_1_pct": (0.23, +1),
"return_6m_pct": (0.19, +1),
"return_12m_pct": (0.12, +1),
"from_200d_ma_pct": (0.14, +1),
"from_52w_high_pct": (0.09, +1),
"forward_eps": (0.08, +1),
"free_cash_flow_margin_pct": (0.07, +1),
"avg_daily_dollar_volume_3m": (0.05, +1),
"trading_days_3m": (0.03, +1),
}
FRANCHISE_DEFENSE = {
"realized_vol_3m": (0.20, -1),
"operating_margin_pct": (0.17, +1),
"free_cash_flow_margin_pct": (0.17, +1),
"dividend_yield_ttm_pct": (0.10, +1),
"dividend_ttm": (0.06, +1),
"peg": (0.10, -1),
"pe": (0.08, -1),
"trading_days_3m": (0.05, +1),
"avg_daily_dollar_volume_3m": (0.04, +1),
"market_cap": (0.03, +1),
}
SUPPORT_CONFIRM = {
"revenue_growth_pct": (0.20, +1),
"free_cash_flow_growth_pct": (0.18, +1),
"forward_eps": (0.14, +1),
"dividend_yield_ttm_pct": (0.10, +1),
"dividend_ttm": (0.08, +1),
"peg": (0.12, -1),
"pe": (0.08, -1),
"realized_vol_3m": (0.10, -1),
}
def _clamp(x, lo, hi):
if x < lo:
return lo
if x > hi:
return hi
return x
def _weighted_score(symbol, weights, zcache):
total = 0.0
used = 0.0
for metric, spec in weights.items():
zmap = zcache.get(metric)
if not zmap:
continue
z = zmap.get(symbol)
if z is None:
continue
weight, direction = spec
total += weight * direction * z
used += weight
if used <= 0.0:
return 0.0
return total / used
def score_universe(stocks, regime, ctx):
metrics = {}
for bundle in (WASHOUT_REPAIR, TREND_RELAY, FRANCHISE_DEFENSE, SUPPORT_CONFIRM):
for metric in bundle:
metrics[metric] = True
zcache = {}
for metric in metrics:
zcache[metric] = ctx.z(metric)
breadth = regime.get("breadth")
if breadth is None:
breadth = 0.5
median_momo = regime.get("median_momentum_12_1_pct")
if median_momo is None:
median_momo = 0.0
median_200d = regime.get("median_from_200d_ma_pct")
if median_200d is None:
median_200d = 0.0
avg_vol = regime.get("avg_realized_vol_3m")
if avg_vol is None:
avg_vol = 0.0
if regime.get("bull") and breadth >= 0.60 and median_momo > 2.5 and avg_vol < 30.0:
branch = "breakout"
elif breadth >= 0.48 and median_200d > -8.0 and avg_vol < 40.0:
branch = "repair"
elif breadth >= 0.35 and avg_vol < 48.0:
branch = "skeptical"
else:
branch = "defense"
scores = {}
for stock in stocks:
symbol = stock["symbol"]
washout_repair = _weighted_score(symbol, WASHOUT_REPAIR, zcache)
trend_relay = _weighted_score(symbol, TREND_RELAY, zcache)
franchise_defense = _weighted_score(symbol, FRANCHISE_DEFENSE, zcache)
support_confirm = _weighted_score(symbol, SUPPORT_CONFIRM, zcache)
from_200d = stock.get("from_200d_ma_pct")
if from_200d is None:
from_200d = -999.0
from_high = stock.get("from_52w_high_pct")
if from_high is None:
from_high = -999.0
ret_1m = stock.get("return_1m_pct")
if ret_1m is None:
ret_1m = 0.0
ret_3m = stock.get("return_3m_pct")
if ret_3m is None:
ret_3m = -999.0
ret_6m = stock.get("return_6m_pct")
if ret_6m is None:
ret_6m = -999.0
mom_121 = stock.get("momentum_12_1_pct")
if mom_121 is None:
mom_121 = -999.0
realized_vol = stock.get("realized_vol_3m")
if realized_vol is None:
realized_vol = 999.0
trading_days = stock.get("trading_days_3m")
if trading_days is None:
trading_days = 0.0
dollar_volume = stock.get("avg_daily_dollar_volume_3m")
if dollar_volume is None:
dollar_volume = 0.0
op_margin = stock.get("operating_margin_pct")
fcf_margin = stock.get("free_cash_flow_margin_pct")
rev_growth = stock.get("revenue_growth_pct")
fcf_growth = stock.get("free_cash_flow_growth_pct")
div_yield = stock.get("dividend_yield_ttm_pct")
div_cash = stock.get("dividend_ttm")
drawdown = 0.0
if from_high < 0.0:
drawdown = -from_high
near_high = from_high > -10.0
above_200d = from_200d > 0.0
repaired = from_200d > -4.0 and ret_3m > -2.0
strong_trend = above_200d and ret_6m > 6.0 and mom_121 > 0.0
calm = realized_vol < 38.0
liquid = trading_days >= 45.0 and dollar_volume >= 2500000.0
quality_points = 0
if op_margin is not None and op_margin > 6.0:
quality_points += 1
if fcf_margin is not None and fcf_margin > 3.0:
quality_points += 1
if rev_growth is not None and rev_growth > 0.0:
quality_points += 1
if fcf_growth is not None and fcf_growth > 0.0:
quality_points += 1
quality_ok = quality_points >= 2
income_points = 0
if div_yield is not None and div_yield > 0.0:
income_points += 1
if div_cash is not None and div_cash > 0.0:
income_points += 1
income_ok = income_points >= 1
repair_window = drawdown >= 16.0 and drawdown <= 48.0
shallow_pullback = drawdown >= 5.0 and drawdown <= 20.0
too_deep = drawdown > 55.0
overshot = ret_1m > 15.0
fresh_shakeout = ret_1m >= -14.0 and ret_1m <= 4.0
repaired_washout = repair_window and repaired and fresh_shakeout and quality_ok
relay_candidate = shallow_pullback and strong_trend and quality_ok
unfinished_turnaround = drawdown >= 22.0 and not repaired
defensive_rebound = repaired and calm and liquid and (quality_ok or income_ok)
if branch == "breakout":
if relay_candidate:
core = 0.60 * trend_relay + 0.20 * washout_repair + 0.12 * support_confirm + 0.08 * franchise_defense
elif repaired_washout:
core = 0.44 * washout_repair + 0.34 * trend_relay + 0.14 * support_confirm + 0.08 * franchise_defense
else:
core = 0.48 * trend_relay + 0.20 * franchise_defense + 0.18 * support_confirm + 0.14 * washout_repair
elif branch == "repair":
if repaired_washout:
core = 0.52 * washout_repair + 0.18 * trend_relay + 0.18 * support_confirm + 0.12 * franchise_defense
elif relay_candidate:
core = 0.40 * trend_relay + 0.30 * washout_repair + 0.16 * support_confirm + 0.14 * franchise_defense
else:
core = 0.34 * washout_repair + 0.28 * franchise_defense + 0.22 * support_confirm + 0.16 * trend_relay
elif branch == "skeptical":
if defensive_rebound and repaired_washout:
core = 0.34 * washout_repair + 0.34 * franchise_defense + 0.22 * support_confirm + 0.10 * trend_relay
else:
core = 0.40 * franchise_defense + 0.26 * support_confirm + 0.22 * washout_repair + 0.12 * trend_relay
else:
if defensive_rebound:
core = 0.56 * franchise_defense + 0.20 * support_confirm + 0.14 * washout_repair + 0.10 * trend_relay
else:
core = 0.68 * franchise_defense + 0.18 * support_confirm + 0.08 * washout_repair + 0.06 * trend_relay
conflict_penalty = 0.0
if unfinished_turnaround and not quality_ok:
conflict_penalty += 0.16
if too_deep and not defensive_rebound:
conflict_penalty += 0.12
if trend_relay - washout_repair > 1.00 and not near_high:
conflict_penalty += 0.14 * (trend_relay - washout_repair)
if washout_repair - trend_relay > 1.05 and not repaired:
conflict_penalty += 0.16 * (washout_repair - trend_relay)
if overshot and drawdown < 8.0:
conflict_penalty += 0.08
if trading_days < 38.0:
conflict_penalty += 0.10
if realized_vol > 55.0 and branch != "breakout":
conflict_penalty += 0.08
quality_gate = 1.0 + 0.18 * _clamp(support_confirm, -0.8, 1.0)
defense_gate = 1.0 + 0.14 * _clamp(franchise_defense, -0.8, 1.0)
if branch in ("skeptical", "defense"):
gate = 0.55 * quality_gate + 0.45 * defense_gate
else:
gate = 0.70 * quality_gate + 0.30 * defense_gate
score = core * gate - conflict_penalty
if branch == "breakout" and relay_candidate and trend_relay > 0.45:
score += 0.06
if branch == "repair" and repaired_washout and support_confirm > 0.15:
score += 0.08
if branch == "skeptical" and defensive_rebound and support_confirm > 0.20:
score += 0.05
if branch == "defense" and defensive_rebound and franchise_defense > 0.35 and income_ok:
score += 0.07
scores[symbol] = score
return scores