← All V2 experiments
Relative return
1.015x
Excess vs bench
1.52%
Benchmark
CAPW_UNIV
Rolling windows
179 · monthly
Mean strategy gain
15.78%
Mean benchmark gain
14.08%
Mean excess gain
1.69%
Dispersion (ref)
6.01%
Win-rate vs bench (ref)
66.48%
Worst / best ratio (ref)
0.939x / 1.077x
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 | 9.37% | 2.22% | 1.070x |
| 2011-07-01 … 2016-06-30 | 12.96% | 13.74% | 0.993x |
| 2016-07-01 … 2021-06-30 | 21.98% | 20.63% | 1.011x |
| 2021-07-01 … 2026-06-26 | 20.28% | 15.48% | 1.042x |
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.015x · beat benchmark in 119/179
| # | Window | Strategy | Benchmark | Ratio |
|---|---|---|---|---|
| 1 | 2006-07-31 … 2011-07-29 | 9.26% | 1.79% | 1.073x |
| 2 | 2006-08-31 … 2011-08-31 | 7.27% | 0.21% | 1.070x |
| 3 | 2006-09-29 … 2011-08-31 | 6.87% | -0.14% | 1.070x |
| 4 | 2006-10-31 … 2011-10-31 | 6.81% | 0.23% | 1.066x |
| 5 | 2006-11-30 … 2011-11-30 | 4.61% | -0.05% | 1.047x |
| 6 | 2006-12-29 … 2011-11-30 | 4.63% | -0.32% | 1.050x |
| 7 | 2007-01-31 … 2012-01-31 | 7.80% | 0.93% | 1.068x |
| 8 | 2007-02-28 … 2012-01-31 | 8.53% | 1.43% | 1.070x |
| 9 | 2007-03-30 … 2012-03-30 | 10.61% | 3.09% | 1.073x |
| 10 | 2007-04-30 … 2012-04-30 | 10.30% | 2.42% | 1.077x |
| 11 | 2007-05-31 … 2012-05-31 | 6.36% | 0.60% | 1.057x |
| 12 | 2007-06-29 … 2012-06-29 | 7.67% | 1.92% | 1.057x |
| 13 | 2007-07-31 … 2012-07-31 | 7.50% | 2.69% | 1.047x |
| 14 | 2007-08-31 … 2012-08-31 | 8.25% | 2.95% | 1.051x |
| 15 | 2007-09-28 … 2012-09-28 | 8.59% | 3.20% | 1.052x |
| 16 | 2007-10-31 … 2012-10-31 | 7.43% | 2.60% | 1.047x |
| 17 | 2007-11-30 … 2012-11-30 | 8.54% | 3.45% | 1.049x |
| 18 | 2007-12-31 … 2012-12-31 | 8.38% | 3.69% | 1.045x |
| 19 | 2008-01-31 … 2013-01-31 | 11.37% | 5.85% | 1.052x |
| 20 | 2008-02-29 … 2013-02-28 | 11.76% | 6.82% | 1.046x |
| 21 | 2008-03-31 … 2013-03-28 | 14.89% | 7.73% | 1.066x |
| 22 | 2008-04-30 … 2013-04-30 | 15.11% | 7.51% | 1.071x |
| 23 | 2008-05-30 … 2013-04-30 | 14.88% | 7.81% | 1.066x |
| 24 | 2008-06-30 … 2013-06-28 | 15.89% | 9.33% | 1.060x |
| 25 | 2008-07-31 … 2013-07-31 | 17.35% | 10.48% | 1.062x |
| 26 | 2008-08-29 … 2013-07-31 | 17.53% | 10.52% | 1.063x |
| 27 | 2008-09-30 … 2013-09-30 | 19.55% | 11.48% | 1.072x |
| 28 | 2008-10-31 … 2013-10-31 | 23.54% | 15.76% | 1.067x |
| 29 | 2008-11-28 … 2013-10-31 | 25.41% | 17.46% | 1.068x |
| 30 | 2008-12-31 … 2013-12-31 | 26.45% | 18.44% | 1.068x |
| 31 | 2009-01-30 … 2013-12-31 | 29.57% | 20.64% | 1.074x |
| 32 | 2009-02-27 … 2014-01-31 | 29.51% | 21.63% | 1.065x |
| 33 | 2009-03-31 … 2014-03-31 | 27.19% | 20.60% | 1.055x |
| 34 | 2009-04-30 … 2014-04-30 | 23.68% | 19.00% | 1.039x |
| 35 | 2009-05-29 … 2014-04-30 | 22.21% | 18.32% | 1.033x |
| 36 | 2009-06-30 … 2014-06-30 | 24.35% | 19.01% | 1.045x |
| 37 | 2009-07-31 … 2014-07-31 | 21.50% | 17.39% | 1.035x |
| 38 | 2009-08-31 … 2014-08-29 | 21.91% | 17.70% | 1.036x |
| 39 | 2009-09-30 … 2014-09-30 | 20.62% | 16.64% | 1.034x |
| 40 | 2009-10-30 … 2014-09-30 | 21.39% | 17.08% | 1.037x |
| 41 | 2009-11-30 … 2014-11-28 | 21.17% | 16.82% | 1.037x |
| 42 | 2009-12-31 … 2014-12-31 | 20.55% | 16.28% | 1.037x |
| 43 | 2010-01-29 … 2014-12-31 | 21.26% | 17.23% | 1.034x |
| 44 | 2010-02-26 … 2015-01-30 | 19.94% | 15.80% | 1.036x |
| 45 | 2010-03-31 … 2015-03-31 | 19.69% | 15.40% | 1.037x |
| 46 | 2010-04-30 … 2015-04-30 | 21.06% | 15.38% | 1.049x |
| 47 | 2010-05-28 … 2015-04-30 | 23.33% | 17.09% | 1.053x |
| 48 | 2010-06-30 … 2015-06-30 | 22.75% | 17.45% | 1.045x |
| 49 | 2010-07-30 … 2015-06-30 | 21.82% | 16.43% | 1.046x |
| 50 | 2010-08-31 … 2015-08-31 | 19.89% | 15.76% | 1.036x |
| 51 | 2010-09-30 … 2015-09-30 | 16.68% | 13.61% | 1.027x |
| 52 | 2010-10-29 … 2015-09-30 | 15.88% | 13.06% | 1.025x |
| 53 | 2010-11-30 … 2015-11-30 | 17.92% | 15.09% | 1.025x |
| 54 | 2010-12-31 … 2015-12-31 | 15.46% | 13.55% | 1.017x |
| 55 | 2011-01-31 … 2016-01-29 | 11.95% | 11.90% | 1.000x |
| 56 | 2011-02-28 … 2016-01-29 | 11.77% | 11.53% | 1.002x |
| 57 | 2011-03-31 … 2016-03-31 | 14.98% | 12.90% | 1.018x |
| 58 | 2011-04-29 … 2016-04-29 | 14.15% | 12.39% | 1.016x |
| 59 | 2011-05-31 … 2016-05-31 | 14.71% | 12.94% | 1.016x |
| 60 | 2011-06-30 … 2016-06-30 | 12.86% | 13.30% | 0.996x |
| 61 | 2011-07-29 … 2016-07-29 | 14.19% | 14.52% | 0.997x |
| 62 | 2011-08-31 … 2016-08-31 | 15.57% | 15.19% | 1.003x |
| 63 | 2011-09-30 … 2016-09-30 | 18.74% | 16.32% | 1.021x |
| 64 | 2011-10-31 … 2016-10-31 | 14.52% | 14.02% | 1.004x |
| 65 | 2011-11-30 … 2016-11-30 | 17.96% | 14.66% | 1.029x |
| 66 | 2011-12-30 … 2016-12-30 | 17.57% | 14.92% | 1.023x |
| 67 | 2012-01-31 … 2017-01-31 | 15.92% | 14.63% | 1.011x |
| 68 | 2012-02-29 … 2017-02-28 | 16.64% | 14.78% | 1.016x |
| 69 | 2012-03-30 … 2017-02-28 | 16.19% | 14.43% | 1.015x |
| 70 | 2012-04-30 … 2017-04-28 | 16.56% | 14.61% | 1.017x |
| 71 | 2012-05-31 … 2017-05-31 | 19.46% | 15.98% | 1.030x |
| 72 | 2012-06-29 … 2017-05-31 | 18.61% | 15.44% | 1.027x |
| 73 | 2012-07-31 … 2017-07-31 | 18.01% | 15.43% | 1.022x |
| 74 | 2012-08-31 … 2017-08-31 | 17.90% | 15.12% | 1.024x |
| 75 | 2012-09-28 … 2017-08-31 | 17.36% | 14.77% | 1.022x |
| 76 | 2012-10-31 … 2017-10-31 | 19.42% | 16.12% | 1.028x |
| 77 | 2012-11-30 … 2017-11-30 | 19.39% | 16.79% | 1.022x |
| 78 | 2012-12-31 … 2017-12-29 | 20.39% | 16.93% | 1.030x |
| 79 | 2013-01-31 … 2018-01-31 | 20.37% | 17.57% | 1.024x |
| 80 | 2013-02-28 … 2018-02-28 | 19.54% | 16.21% | 1.029x |
| 81 | 2013-03-28 … 2018-02-28 | 18.06% | 15.81% | 1.019x |
| 82 | 2013-04-30 … 2018-04-30 | 16.22% | 14.25% | 1.017x |
| 83 | 2013-05-31 … 2018-05-31 | 16.28% | 14.57% | 1.015x |
| 84 | 2013-06-28 … 2018-05-31 | 17.17% | 14.97% | 1.019x |
| 85 | 2013-07-31 … 2018-07-31 | 16.54% | 14.83% | 1.015x |
| 86 | 2013-08-30 … 2018-07-31 | 16.93% | 15.59% | 1.012x |
| 87 | 2013-09-30 … 2018-09-28 | 15.42% | 15.84% | 0.996x |
| 88 | 2013-10-31 … 2018-10-31 | 12.13% | 12.89% | 0.993x |
| 89 | 2013-11-29 … 2018-10-31 | 11.21% | 12.60% | 0.988x |
| 90 | 2013-12-31 … 2018-12-31 | 8.03% | 9.93% | 0.983x |
| 91 | 2014-01-31 … 2019-01-31 | 10.83% | 12.37% | 0.986x |
| 92 | 2014-02-28 … 2019-02-28 | 10.43% | 12.38% | 0.983x |
| 93 | 2014-03-31 … 2019-03-29 | 10.97% | 12.76% | 0.984x |
| 94 | 2014-04-30 … 2019-04-30 | 11.46% | 13.73% | 0.980x |
| 95 | 2014-05-30 … 2019-04-30 | 10.86% | 13.54% | 0.976x |
| 96 | 2014-06-30 … 2019-06-28 | 7.55% | 12.81% | 0.953x |
| 97 | 2014-07-31 … 2019-07-31 | 7.98% | 13.30% | 0.953x |
| 98 | 2014-08-29 … 2019-07-31 | 7.56% | 12.80% | 0.954x |
| 99 | 2014-09-30 … 2019-09-30 | 7.63% | 12.70% | 0.955x |
| 100 | 2014-10-31 … 2019-10-31 | 7.40% | 12.91% | 0.951x |
| 101 | 2014-11-28 … 2019-10-31 | 7.32% | 12.60% | 0.953x |
| 102 | 2014-12-31 … 2019-12-31 | 11.12% | 14.16% | 0.973x |
| 103 | 2015-01-30 … 2019-12-31 | 11.67% | 14.85% | 0.972x |
| 104 | 2015-02-27 … 2020-01-31 | 8.87% | 14.04% | 0.955x |
| 105 | 2015-03-31 … 2020-03-31 | 4.08% | 8.56% | 0.959x |
| 106 | 2015-04-30 … 2020-04-30 | 6.63% | 11.65% | 0.955x |
| 107 | 2015-05-29 … 2020-05-29 | 6.80% | 12.61% | 0.948x |
| 108 | 2015-06-30 … 2020-06-30 | 7.06% | 13.64% | 0.942x |
| 109 | 2015-07-31 … 2020-07-31 | 8.23% | 14.60% | 0.944x |
| 110 | 2015-08-31 … 2020-08-31 | 10.93% | 18.07% | 0.940x |
| 111 | 2015-09-30 … 2020-09-30 | 11.30% | 17.05% | 0.951x |
| 112 | 2015-10-30 … 2020-10-30 | 8.65% | 14.60% | 0.948x |
| 113 | 2015-11-30 … 2020-11-30 | 13.26% | 17.43% | 0.964x |
| 114 | 2015-12-31 … 2020-12-31 | 16.43% | 18.65% | 0.981x |
| 115 | 2016-01-29 … 2021-01-29 | 18.95% | 19.26% | 0.997x |
| 116 | 2016-02-29 … 2021-02-26 | 19.74% | 19.79% | 1.000x |
| 117 | 2016-03-31 … 2021-03-31 | 20.41% | 19.42% | 1.008x |
| 118 | 2016-04-29 … 2021-03-31 | 20.64% | 19.66% | 1.008x |
| 119 | 2016-05-31 … 2021-05-28 | 20.28% | 20.42% | 0.999x |
| 120 | 2016-06-30 … 2021-06-30 | 22.72% | 21.06% | 1.014x |
| 121 | 2016-07-29 … 2021-06-30 | 21.98% | 20.63% | 1.011x |
| 122 | 2016-08-31 … 2021-08-31 | 23.35% | 21.75% | 1.013x |
| 123 | 2016-09-30 … 2021-09-30 | 21.57% | 20.22% | 1.011x |
| 124 | 2016-10-31 … 2021-10-29 | 23.85% | 22.50% | 1.011x |
| 125 | 2016-11-30 … 2021-11-30 | 22.13% | 21.87% | 1.002x |
| 126 | 2016-12-30 … 2021-11-30 | 22.42% | 21.75% | 1.006x |
| 127 | 2017-01-31 … 2022-01-31 | 20.58% | 20.17% | 1.003x |
| 128 | 2017-02-28 … 2022-02-28 | 17.57% | 18.51% | 0.992x |
| 129 | 2017-03-31 … 2022-03-31 | 17.37% | 19.46% | 0.982x |
| 130 | 2017-04-28 … 2022-03-31 | 17.03% | 19.46% | 0.980x |
| 131 | 2017-05-31 … 2022-05-31 | 14.55% | 15.59% | 0.991x |
| 132 | 2017-06-30 … 2022-06-30 | 11.69% | 13.08% | 0.988x |
| 133 | 2017-07-31 … 2022-07-29 | 12.90% | 15.16% | 0.980x |
| 134 | 2017-08-31 … 2022-08-31 | 9.99% | 13.72% | 0.967x |
| 135 | 2017-09-29 … 2022-08-31 | 9.32% | 13.56% | 0.963x |
| 136 | 2017-10-31 … 2022-10-31 | 8.81% | 11.86% | 0.973x |
| 137 | 2017-11-30 … 2022-11-30 | 10.92% | 12.52% | 0.986x |
| 138 | 2017-12-29 … 2022-11-30 | 10.37% | 12.46% | 0.981x |
| 139 | 2018-01-31 … 2023-01-31 | 9.38% | 11.01% | 0.985x |
| 140 | 2018-02-28 … 2023-02-28 | 9.82% | 11.03% | 0.989x |
| 141 | 2018-03-29 … 2023-02-28 | 10.01% | 11.72% | 0.985x |
| 142 | 2018-04-30 … 2023-04-28 | 9.11% | 13.01% | 0.966x |
| 143 | 2018-05-31 … 2023-05-31 | 6.06% | 12.95% | 0.939x |
| 144 | 2018-06-29 … 2023-05-31 | 6.49% | 13.01% | 0.942x |
| 145 | 2018-07-31 … 2023-07-31 | 9.53% | 14.67% | 0.955x |
| 146 | 2018-08-31 … 2023-08-31 | 9.48% | 13.51% | 0.964x |
| 147 | 2018-09-28 … 2023-08-31 | 9.74% | 13.56% | 0.966x |
| 148 | 2018-10-31 … 2023-10-31 | 9.55% | 12.60% | 0.973x |
| 149 | 2018-11-30 … 2023-11-30 | 11.19% | 14.58% | 0.970x |
| 150 | 2018-12-31 … 2023-12-29 | 15.80% | 17.26% | 0.987x |
| 151 | 2019-01-31 … 2024-01-31 | 13.10% | 16.27% | 0.973x |
| 152 | 2019-02-28 … 2024-01-31 | 12.65% | 15.94% | 0.972x |
| 153 | 2019-03-29 … 2024-03-28 | 14.79% | 17.50% | 0.977x |
| 154 | 2019-04-30 … 2024-04-30 | 13.51% | 15.50% | 0.983x |
| 155 | 2019-05-31 … 2024-05-31 | 18.57% | 18.12% | 1.004x |
| 156 | 2019-06-28 … 2024-06-28 | 18.11% | 17.99% | 1.001x |
| 157 | 2019-07-31 … 2024-07-31 | 18.40% | 17.70% | 1.006x |
| 158 | 2019-08-30 … 2024-08-30 | 19.20% | 18.41% | 1.007x |
| 159 | 2019-09-30 … 2024-09-30 | 19.78% | 18.65% | 1.010x |
| 160 | 2019-10-31 … 2024-10-31 | 20.42% | 17.87% | 1.022x |
| 161 | 2019-11-29 … 2024-11-29 | 21.94% | 18.64% | 1.028x |
| 162 | 2019-12-31 … 2024-12-31 | 20.38% | 17.62% | 1.023x |
| 163 | 2020-01-31 … 2025-01-31 | 22.45% | 18.07% | 1.037x |
| 164 | 2020-02-28 … 2025-02-28 | 22.49% | 19.00% | 1.029x |
| 165 | 2020-03-31 … 2025-03-31 | 23.67% | 19.24% | 1.037x |
| 166 | 2020-04-30 … 2025-04-30 | 20.71% | 16.49% | 1.036x |
| 167 | 2020-05-29 … 2025-04-30 | 20.86% | 15.80% | 1.044x |
| 168 | 2020-06-30 … 2025-06-30 | 26.06% | 18.19% | 1.067x |
| 169 | 2020-07-31 … 2025-07-31 | 26.41% | 17.87% | 1.072x |
| 170 | 2020-08-31 … 2025-08-29 | 25.02% | 16.69% | 1.071x |
| 171 | 2020-09-30 … 2025-09-30 | 26.01% | 18.57% | 1.063x |
| 172 | 2020-10-30 … 2025-09-30 | 27.11% | 19.43% | 1.064x |
| 173 | 2020-11-30 … 2025-11-28 | 24.44% | 17.77% | 1.057x |
| 174 | 2020-12-31 … 2025-12-31 | 23.51% | 16.92% | 1.056x |
| 175 | 2021-01-29 … 2025-12-31 | 23.40% | 17.20% | 1.053x |
| 176 | 2021-02-26 … 2026-01-30 | 22.15% | 17.04% | 1.044x |
| 177 | 2021-03-31 … 2026-03-31 | 19.54% | 14.07% | 1.048x |
| 178 | 2021-04-30 … 2026-04-30 | 21.70% | 16.03% | 1.049x |
| 179 | 2021-05-28 … 2026-04-30 | 22.27% | 16.22% | 1.052x |
Notes
mode=explore; family=recovery-quality-contrarian-52w-hybrid
This hybrid combines four distinct sleeves rather than averaging parents mechanically: a panic-repair sleeve for deep 52-week washouts that are proving they can rebound, a skeptical transition sleeve for messy tapes where quality must validate recovery before price strength is trusted, a trend-graduation sleeve where repaired names can outrank pure momentum only after crossing a quality-and-stability gate, and a defensive compounder sleeve for risk-off conditions. The explicit arbitration mechanism is stock-level: deep drawdown only helps when near-term repair is real, clean trend only wins when the name is not excessively extended versus recovery evidence, and weak-quality contrarian bounces are capped so low-quality dead-cat rallies do not dominate.
Deliberate metric coverage this run: actively use momentum (return_1m_pct, return_3m_pct, return_6m_pct, momentum_12_1_pct), trend/recovery (from_200d_ma_pct, from_52w_high_pct), volatility (realized_vol_3m), liquidity (avg_daily_volume_3m, avg_daily_dollar_volume_3m, trading_days_3m), income (dividend_yield_ttm_pct), valuation (forward_pe, peg), growth (operating_income_growth_pct, free_cash_flow_growth_pct, forward_eps), quality (operating_margin_pct, free_cash_flow_margin_pct), and size (market_cap). Deliberate weight-0 metrics this run: return_12m_pct, dividend_ttm, pe, eps_growth_pct, revenue_growth_pct, shares_outstanding, close, adj_close, high_52w, ma_200d, eps_ttm, revenue_ttm, operating_income_ttm, free_cash_flow_ttm.
Lesson notes
explore/recovery-quality-contrarian-52w-hybrid: relative_return 1.0152x (delta -0.3757 vs exp_1118); win-rate 66.4804%, worst-window 0.939052, dispersion 6.0054%.
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 | AMGN | MDT | ESRX | CMS | SYK | NEE | EIX | MRK | AEP | MCO | EG | AAPL | D | CNP | COR |
| 2006-08-31 | CRM | GEN | CI | EA | MCO | EXPE | MTCH | ZBH | ESRX | PAYX | FCX | VMC | NVDA | F | DRI |
| 2006-09-29 | CCL | GEN | AMAT | AAPL | MCO | MNST | CRM | GOOG | GOOGL | CF | TGT | ORCL | EA | TPR | AMG |
| 2006-10-31 | UAL | AXON | ALGN | SWKS | FFIV | NSC | CI | CRM | VMC | VIAB | ATI | CMG | CCL | VRTX | KSS |
| 2006-11-30 | EXPE | OI | MLM | NDAQ | WDC | AMZN | AAL | MDT | UAL | ICE | CCL | GS | MMM | RCL | FICO |
| 2006-12-29 | EXPE | NVR | FTI | CSGP | MLM | TWX | MDT | A | ICE | HD | UNH | ILMN | CF | VIAB | TEX |
| 2007-01-31 | MNST | TT | KBH | DHI | VTRS | BC | CME | CAR | ICE | EBAY | LVS | AAL | MGM | EXPE | DIS |
| 2007-02-28 | URI | AET | ISRG | EXPD | CIEN | HUM | ICE | MAT | AON | DXC | ON | ZBRA | NAV | CVS | CMX |
| 2007-03-30 | MNST | CNX | HP | QCOM | DNR | JNPR | CVS | FLR | VLO | NRG | ORCL | TTWO | MAT | KR | MMM |
| 2007-04-30 | ADM | CAT | HUM | ETR | MOS | PEG | HP | GLW | EIX | BKR | CNX | FSLR | MMM | LLY | DNR |
| 2007-05-31 | HES | EIX | STJ | MEE | WWY | WIN | COO | MCD | CVS | LLTC | HON | CMCSA | PXD | BOL | FSLR |
| 2007-06-29 | FNMA | ILMN | ICE | NVDA | GEN | CMCSA | LIN | NOV | SLB | MCD | MNST | PENN | MDLZ | APA | SWKS |
| 2007-07-31 | UAL | AXON | AAPL | AMZN | ICE | SWKS | DGX | COP | HPQ | ROK | PAYX | BWA | TMUS | HON | GOOG |
| 2007-08-31 | DXCM | NDAQ | IBKR | EBAY | GOOG | VRTX | FLEX | DGX | EA | CMCSA | LOW | ED | LUV | COR | ES |
| 2007-09-28 | MAC | WU | GPN | KIM | NEM | HAL | CNC | INTU | EBAY | NDAQ | ES | MCD | AMGN | EOG | WYNN |
| 2007-10-31 | BBY | MSI | IBKR | CAH | BIIB | BXP | SRE | FISV | STZ | DOC | SPG | MAC | EXPE | FLR | ADM |
| 2007-11-30 | RMD | CNP | PNW | BBY | ABT | UNH | LNT | CL | SRE | MLM | EL | MDLZ | CMS | MRK | XEL |
| 2007-12-31 | SNPS | HPQ | CPB | KSS | CSCO | ANF | DE | HD | AMAT | WMT | GPS | LOW | TGT | MDT | VLO |
| 2008-01-31 | KSS | MOS | CAG | SNPS | TGT | GS | MS | HD | LOW | CPB | AMAT | HPQ | AZO | BBWI | MDT |
| 2008-02-29 | URI | ALL | STX | WHR | KSS | BA | KLAC | MHK | CF | HAL | MOS | VLO | CDNS | XRX | SPGI |
| 2008-03-31 | MHK | URI | WHR | ADI | BA | GS | BEN | ALL | ABT | D | STX | BKNG | XRX | HAL | BBWI |
| 2008-04-30 | BA | CF | KLAC | URI | MOS | MHK | CDNS | SPGI | HAL | ALL | AIG | WDC | D | XRX | STX |
| 2008-05-30 | STX | BA | D | MA | LLY | HAL | ABT | BKNG | MMM | WDC | CF | GE | ADI | OXY | MOS |
| 2008-06-30 | URI | STX | CF | MOS | GS | LLY | D | PEG | ALL | RTX | WDC | ABT | HAL | TRV | AEP |
| 2008-07-31 | WHR | GS | UNH | GE | ABT | RCL | MMM | WDC | RTX | TRV | CF | BKNG | DE | D | LLY |
| 2008-08-29 | MS | MHK | LLY | ED | CI | BA | AEP | RTX | MCD | APA | MMM | D | TRV | RCL | DE |
| 2008-09-30 | LLY | MMM | DRI | RTX | MHK | GE | ED | D | MCD | AEP | CAG | ABT | APA | ADI | AON |
| 2008-10-31 | BA | AON | D | APA | MHK | ABT | MCD | OXY | ETN | CAG | ED | GE | DRI | HON | MS |
| 2008-11-28 | BKNG | CAT | D | APA | COP | AON | HON | PH | ETN | OXY | DE | ADI | DRI | LLY | MCD |
| 2008-12-31 | EBAY | MOS | GS | GE | ANF | DE | RCL | BA | BKNG | VLO | WYNN | ADI | HON | APA | CAG |
| 2009-01-30 | MOS | WDC | GS | APA | FCX | VLO | COP | EOG | BKNG | DE | ADI | PH | EBAY | DVN | HON |
| 2009-02-27 | MOS | EBAY | WDC | CF | ANF | FCX | GS | RCL | DVN | APA | SLB | COP | EOG | VLO | ADI |
| 2009-03-31 | MOS | EBAY | GE | EOG | ANF | CF | MS | DE | WHR | RCL | CAT | CVX | SLB | ADI | UPS |
| 2009-04-30 | GE | EBAY | MOS | CAT | RCL | WHR | CF | SLB | GD | BKNG | EOG | MS | ADBE | PSA | PH |
| 2009-05-29 | GE | EOG | EBAY | MOS | CAT | CF | GD | UPS | CVX | MS | WHR | BKNG | RCL | AEE | ADBE |
| 2009-06-30 | EOG | WHR | EBAY | XRX | GE | SYK | SPG | HAL | SLB | AMGN | AEE | ISRG | EXR | MOS | BMY |
| 2009-07-31 | MOS | GE | EOG | EBAY | XRX | AMGN | BMY | WHR | BKNG | AMT | PG | SYK | MCHP | AEE | SPG |
| 2009-08-31 | MCO | EOG | SYK | BKNG | ABT | WHR | GE | PG | MDT | GILD | SPG | AMGN | XOM | COST | EBAY |
| 2009-09-30 | GE | GILD | EOG | SYK | PG | ABT | XOM | COST | MCD | PEP | WBD | EBAY | AZO | CMCSA | BKNG |
| 2009-10-30 | MCO | GILD | EOG | XOM | AMGN | GE | SYK | AZO | BKNG | ABT | WBD | MCD | EBAY | SPGI | NEE |
| 2009-11-30 | GILD | AMGN | LMT | GE | AZO | BKNG | PEG | GS | CB | CCI | ABT | WBD | INTU | XOM | QCOM |
| 2009-12-31 | MCO | AZO | DRI | BKNG | SPGI | TMUS | CB | PEG | PEP | AMGN | MCD | GILD | PG | LIN | ORCL |
| 2010-01-29 | LMT | AMGN | GILD | AZO | BKNG | FL | MCO | CB | PEG | WBD | GS | SYK | LIN | CF | GE |
| 2010-02-26 | AMGN | LMT | CB | MCO | TMUS | BKNG | GS | GILD | PEG | PFE | ADBE | IBM | LIN | AZO | MSFT |
| 2010-03-31 | GS | AMGN | LMT | CB | MSFT | JPM | XRX | QCOM | CI | EBAY | BKNG | MCO | MA | GE | ABT |
| 2010-04-30 | WDC | PEG | BKNG | XRX | TRV | MA | ABT | NTAP | AMGN | CI | MRO | DPZ | CB | GS | BBWI |
| 2010-05-28 | GS | PEG | BMY | JPM | QCOM | WFC | CI | TRV | GE | AMGN | GILD | ABT | MRO | CB | BKNG |
| 2010-06-30 | GILD | AMGN | MA | GE | JPM | MSFT | ABT | CB | PEG | WFC | TXN | GS | QCOM | MCO | CI |
| 2010-07-30 | GS | QCOM | BLK | JPM | CI | MSFT | AMGN | BEN | GILD | MCO | MA | BKNG | MDT | EBAY | WFC |
| 2010-08-31 | GS | MA | INTC | MSFT | JPM | GILD | AMGN | NEM | CB | BKNG | MRO | V | CI | BEN | BMY |
| 2010-09-30 | BLK | WDC | MA | GE | MCO | INTC | GS | BEN | GILD | MRO | AMGN | WBA | BKNG | TER | MSFT |
| 2010-10-29 | WDC | GILD | GS | INTC | MA | MSFT | MDT | MRO | AMGN | V | BKNG | TXN | AXP | CI | BEN |
| 2010-11-30 | WDC | INTC | AXP | WFC | GS | TXN | BKNG | TER | MCHP | SYK | ADI | GILD | MSFT | D | MA |
| 2010-12-31 | WDC | GS | JPM | BLK | MDT | GE | WFC | D | MSFT | PHM | INTC | ADI | BMY | TXN | DHI |
| 2011-01-31 | INTC | GILD | JPM | ISRG | AXP | MDT | LMT | ADBE | BLK | BMY | D | ADI | PHM | MCHP | MRVL |
| 2011-02-28 | INTC | MDT | BLK | AXP | BMY | ISRG | ADBE | OXY | MOS | V | ADI | TXN | LMT | GILD | MSFT |
| 2011-03-31 | GILD | D | ISRG | AXP | MA | AMGN | ADI | BKNG | INTC | EXPE | LLY | XOM | JPM | TXN | COP |
| 2011-04-29 | NEM | V | ADBE | BKNG | COP | ISRG | ADI | MDT | JPM | TXN | LLY | NTAP | AMGN | WBD | D |
| 2011-05-31 | GE | BKNG | MRVL | INTC | XRX | ADBE | D | NTAP | COP | EXPE | ADI | AMGN | MOS | CAT | GILD |
| 2011-06-30 | MSFT | GE | INTC | BKNG | COP | AAPL | XRX | FCX | D | WBD | TXN | CAT | XOM | MOS | APA |
| 2011-07-29 | MOS | KLAC | GE | MS | JPM | ADI | D | CSCO | NEM | MU | WFC | XRX | WBD | BKNG | TXN |
| 2011-08-31 | KLAC | CF | GE | ADI | MOS | BKNG | JPM | WFC | CAT | WBD | AMAT | FCX | AAPL | CCL | LRCX |
| 2011-09-30 | AMAT | KLAC | LRCX | ADBE | CF | TER | GE | MOS | TXN | AAPL | ADI | BKNG | OXY | MCO | JPM |
| 2011-10-31 | AMAT | CF | MOS | FCX | LRCX | ADBE | KLAC | KKR | TER | CAT | XRX | VLO | JPM | APA | FTNT |
| 2011-11-30 | GE | ADBE | KLAC | IVZ | CF | BLK | CAT | VLO | WFC | LRCX | ETN | APA | MCO | MA | NVDA |
| 2011-12-30 | CF | JPM | FCX | ADBE | VLO | XRX | KLAC | IVZ | ETN | BEN | BKNG | GE | CAT | ORCL | WFC |
| 2012-01-31 | FCX | JPM | CF | AMAT | BEN | VLO | ORCL | IVZ | BKNG | GE | CAT | CI | LRCX | KLAC | NFLX |
| 2012-02-29 | AIG | APA | XRX | AMAT | BEN | JPM | BKNG | CF | ORCL | AAPL | MRO | VLO | GE | C | IVZ |
| 2012-03-30 | VLO | WYNN | BKNG | AAPL | CF | AIG | CI | BEN | WBD | AMAT | AEP | GILD | KLAC | ORCL | CAT |
| 2012-04-30 | WYNN | ORCL | CF | COP | BKNG | AAPL | VLO | MRO | WBD | HAL | CAT | XRX | PEG | EOG | KLAC |
| 2012-05-31 | ORCL | BKNG | AAPL | KLAC | CF | CI | QCOM | AEP | SPG | PEG | WBD | AIG | NEE | XRX | ETN |
| 2012-06-29 | XRX | APA | CF | BKNG | ORCL | QCOM | OXY | KLAC | AIG | EOG | STX | JPM | C | SPG | AAPL |
| 2012-07-31 | EOG | ETN | HAL | QCOM | AAPL | KLAC | GS | OXY | CF | BKNG | BLK | MCD | ORCL | JPM | WDC |
| 2012-08-31 | MS | STX | URI | JPM | WDC | WYNN | XRX | APA | C | CF | ALL | ETN | QCOM | GS | ISRG |
| 2012-09-28 | MS | WYNN | WDC | CF | ALL | ETN | STX | GS | QCOM | JPM | EOG | HAL | BKNG | AAPL | ISRG |
| 2012-10-31 | ALL | URI | CF | CSCO | KLAC | AAPL | AIG | MS | ISRG | LIN | QCOM | GE | ORLY | BKNG | EOG |
| 2012-11-30 | BKNG | ALL | ORLY | GE | XRX | CF | WDC | AAPL | CSCO | MAR | AMGN | GS | KLAC | ISRG | QCOM |
| 2012-12-31 | STX | WDC | KLAC | VRTX | BKNG | GS | MAR | INTC | ORLY | ALL | AIG | AZO | AMGN | FAST | LIN |
| 2013-01-31 | BKNG | STX | WDC | XRX | FL | MAR | ALL | KKR | GE | CSCO | AMGN | AZO | CF | KLAC | MO |
| 2013-02-28 | VRTX | STX | FL | ALL | BKNG | GS | WDC | MSFT | KKR | YUM | GE | AMT | AZO | AAPL | CB |
| 2013-03-28 | BKNG | STX | KKR | DG | AMGN | ALL | WFC | WDC | YUM | GS | GE | FL | MSFT | BAC | HON |
| 2013-04-30 | BKNG | AMGN | GE | KKR | ALL | WDC | ORCL | LULU | CDNS | GS | QCOM | DG | STX | AAPL | INTC |
| 2013-05-31 | BKNG | VLO | AMGN | INTC | MCO | WDC | STX | MO | REGN | PHM | KKR | ORCL | ALL | GS | SPGI |
| 2013-06-28 | ISRG | PFE | BKNG | LULU | PSA | KKR | GS | T | SPGI | WDC | QCOM | EBAY | MA | ALL | CCI |
| 2013-07-31 | CF | BKNG | AAPL | CDNS | ORCL | GS | INTU | LLY | QCOM | BEN | FTNT | STX | VLO | ALL | AMGN |
| 2013-08-30 | AAPL | VLO | BKNG | CB | PFE | LLY | MA | ISRG | INTU | V | GE | MAR | PSA | MO | JPM |
| 2013-09-30 | BEN | CF | PFE | ORCL | GS | BKNG | MA | META | AAPL | MAR | QCOM | V | MCO | GE | EBAY |
| 2013-10-31 | VLO | BKNG | GS | ORCL | PHM | AAPL | KKR | MA | BEN | AMT | CF | V | PSA | SPG | URI |
| 2013-11-29 | PHM | BKNG | REGN | MO | OXY | ORCL | MA | URI | CB | BX | CF | MCO | ABBV | PFE | GS |
| 2013-12-31 | PHM | ABBV | PFE | META | BKNG | JNJ | C | MA | CSCO | EBAY | DE | URI | MSFT | OXY | BX |
| 2014-01-31 | PHM | ISRG | BKNG | GS | LLY | PFE | CDNS | CB | REGN | MO | V | PSA | SPG | JNJ | URI |
| 2014-02-28 | BKNG | GS | ISRG | REGN | MO | PHM | CB | SPG | IBM | OXY | CDNS | META | PSA | MA | ABBV |
| 2014-03-31 | T | VZ | PLD | CSCO | BKNG | COP | APA | V | SPG | EOG | CB | BX | AIG | URI | BEN |
| 2014-04-30 | C | VZ | EOG | PLD | APA | GS | V | BEN | UPS | AIG | BKNG | OXY | PGR | URI | KLAC |
| 2014-05-30 | V | META | CAG | BKNG | EOG | URI | T | PFE | MA | BX | BEN | VZ | COP | F | MS |
| 2014-06-30 | META | T | URI | OXY | EOG | GS | AIG | BX | V | VZ | GE | PHM | AMGN | MS | COP |
| 2014-07-31 | V | BKNG | C | META | PFE | URI | MA | BX | EBAY | BMY | CI | VZ | OXY | EOG | ISRG |
| 2014-08-29 | V | GILD | EBAY | GE | MU | BX | PHM | ABBV | URI | AIG | QCOM | AXP | OXY | T | BKNG |
| 2014-09-30 | V | GE | GILD | MA | PLD | BKNG | NXPI | GS | MS | PFE | AXP | VZ | T | QCOM | AIG |
| 2014-10-31 | BKNG | AIG | GILD | PLD | PHM | QCOM | GE | NXPI | AXP | ORCL | XOM | MS | META | URI | MU |
| 2014-11-28 | BX | T | AIG | VZ | NXPI | GE | META | MCHP | AXP | MU | MCD | PFE | KKR | EBAY | GS |
| 2014-12-31 | VLO | EOG | OXY | COP | T | GE | AEP | VZ | QCOM | BKNG | EBAY | XOM | ED | BX | PLD |
| 2015-01-30 | AIG | GILD | GE | OXY | PSX | VZ | VLO | T | F | YUM | PLD | EOG | ALL | EBAY | HAL |
| 2015-02-27 | BKNG | PSX | AIG | EOG | GILD | URI | VLO | QCOM | VZ | GE | F | PLD | MSFT | EBAY | WDC |
| 2015-03-31 | GILD | PSX | EOG | BKNG | GE | CI | SBUX | AAPL | HAL | AMT | TXN | JNJ | CPB | META | MU |
| 2015-04-30 | GILD | URI | EOG | PSX | MU | STX | BKNG | QCOM | WBD | INTC | WDC | IBM | GME | LRCX | HAL |
| 2015-05-29 | GILD | BKNG | QCOM | AXP | WBD | AMAT | MOS | WY | INTC | PSX | JNJ | IBM | CB | CI | META |
| 2015-06-30 | URI | GILD | BKNG | AXP | INTC | GS | WBD | BEN | AMT | IBM | CB | MOS | AMGN | WY | ANET |
| 2015-07-31 | PLD | GILD | WDC | BKNG | TXN | STX | SPG | VLO | ED | SBUX | AMT | GS | WY | CB | ALL |
| 2015-08-31 | URI | MOS | PLD | AXP | TXN | NEM | INTC | GILD | BKNG | STX | VLO | CCI | UAL | MMM | ORCL |
| 2015-09-30 | VLO | PLD | GILD | ALL | BKNG | TXN | ORCL | WY | INTC | CB | BLK | SBUX | STX | IBM | CCI |
| 2015-10-30 | URI | NEM | MOS | GILD | BEN | BKNG | WY | VLO | ORCL | TXN | CCI | PLD | QCOM | AXP | SBUX |
| 2015-11-30 | URI | NEM | GS | GILD | ALL | NXPI | IBM | WBD | ETN | VLO | AAPL | AMGN | AMAT | PLD | ORCL |
| 2015-12-31 | NEM | GILD | URI | BKNG | AAPL | AMGN | GS | UAL | ALL | IBM | PLD | IVZ | CCI | MO | NEE |
| 2016-01-29 | AAPL | NEM | IBM | GS | ETN | GILD | BEN | C | AMGN | BKNG | ORCL | WBD | CCI | NXPI | NEE |
| 2016-02-29 | GILD | IBM | ABBV | URI | BKNG | GME | AAPL | JWN | DAL | ETN | BEN | F | YUM | AXP | ANET |
| 2016-03-31 | GILD | NXPI | AAPL | URI | ABBV | BEN | BAC | IBM | WBD | EBAY | IVZ | AXP | AMGN | BKNG | MCO |
| 2016-04-29 | NXPI | C | URI | AXP | MS | ABBV | EBAY | BAC | BKNG | GILD | GS | ANET | DIS | AMGN | DAL |
| 2016-05-31 | NXPI | C | ABBV | AXP | URI | AAPL | DAL | REGN | BAC | QCOM | BKNG | AMGN | MHK | INTC | WFC |
| 2016-06-30 | BKNG | ABBV | AMGN | MHK | DIS | CCI | GILD | PSX | URI | QCOM | CCL | JPM | KLAC | LUV | SPGI |
| 2016-07-29 | REGN | AAPL | NXPI | BKNG | UAL | BAC | ABBV | V | KLAC | AMGN | SPGI | MCO | MA | MCD | CCI |
| 2016-08-31 | C | GS | UAL | BKNG | AAPL | NXPI | AXP | ABBV | CCL | MCD | PSX | WFC | AMGN | SPGI | INTU |
| 2016-09-30 | DAL | GILD | REGN | SPGI | LUV | C | ABBV | UAL | CCL | BKNG | CI | WBD | MCD | AMGN | GS |
| 2016-10-31 | DAL | LUV | DIS | ABBV | WFC | F | MCD | SPGI | GILD | C | BKNG | TRV | MHK | VZ | PSX |
| 2016-11-30 | ABBV | DG | DIS | SPGI | MCD | META | CI | KLAC | VZ | T | BKNG | GILD | MHK | WBD | F |
| 2016-12-30 | META | PSA | ABBV | SPGI | F | LEG | ED | DG | ISRG | AMT | COST | LULU | BLK | K | GILD |
| 2017-01-31 | AMGN | ABBV | SPGI | ISRG | MDT | F | MCO | GILD | MCD | BKNG | VZ | BLK | SPG | AMAT | XRX |
| 2017-02-28 | ABBV | MDT | PSA | SPGI | QCOM | AMT | AMGN | AZO | PYPL | BKNG | ED | META | ADBE | VZ | CCI |
| 2017-03-31 | AMGN | MDT | SPGI | META | INTU | BKNG | REGN | YUM | KLAC | LEG | AMAT | TXN | ADBE | MHK | PLD |
| 2017-04-28 | BMY | AMGN | EXR | SPGI | MDT | AMAT | KLAC | NEM | YUM | DG | META | MHK | BKNG | REGN | PG |
| 2017-05-31 | KLAC | META | LRCX | SPGI | BKNG | ADBE | AMAT | PG | MSFT | BX | EBAY | KHC | INTC | ALL | GOOGL |
| 2017-06-30 | GS | GILD | BMY | AMGN | SPG | SPGI | MSFT | EXR | NVDA | META | REGN | BX | MS | PANW | PAYC |
| 2017-07-31 | NEM | AMAT | BMY | GS | SPGI | LRCX | GILD | KHC | META | VRTX | AMGN | NVDA | BKNG | ADI | BX |
| 2017-08-31 | GS | SPG | KLAC | INTC | ALL | RCL | TRV | AMGN | MS | CB | CSCO | BX | AMAT | SPGI | LRCX |
| 2017-09-29 | DVN | AZO | GS | KLAC | AMAT | STX | OXY | TRV | XOM | TXN | AMGN | BKNG | LRCX | BX | RCL |
| 2017-10-31 | STX | DVN | IBM | AMAT | BKNG | AZO | GS | RCL | TXN | CB | ABBV | AMGN | SPGI | MU | ADBE |
| 2017-11-30 | AZO | MO | DVN | DIS | STX | XOM | ANET | SPG | CPB | AMGN | TXN | KLAC | KKR | EBAY | META |
| 2017-12-29 | MO | DVN | AMGN | WBD | STX | WDC | DIS | KLAC | BKNG | REGN | SPG | MCHP | TXN | XOM | AEP |
| 2018-01-31 | BKNG | AMGN | WBD | CMG | GILD | MO | WDC | KKR | TXN | ABBV | MU | ANET | DIS | KLAC | IBM |
| 2018-02-28 | AEP | BKNG | WBD | LRCX | TXN | MU | CMG | SPG | NXPI | AMGN | WDC | KLAC | KKR | ANET | AMAT |
| 2018-03-29 | MU | AEP | REGN | WDC | BKNG | PSX | META | MO | LRCX | PSA | DIS | DUK | ED | WYNN | NXPI |
| 2018-04-30 | MU | NXPI | BKNG | AEP | PSX | DIS | ALL | DUK | ANET | RCL | CI | MRVL | XOM | META | WYNN |
| 2018-05-31 | MU | WDC | PSX | FCX | AEP | DIS | TER | MCO | AMAT | AZO | BKNG | URI | MRVL | KHC | SEDG |
| 2018-06-29 | REGN | KHC | CMCSA | GIS | MU | MO | MCO | FCX | PSX | CI | BKNG | ANET | AEP | V | META |
| 2018-07-31 | MU | REGN | CI | LRCX | FCX | CMCSA | MO | TER | AMAT | BLK | BMY | MCO | CB | RCL | GD |
| 2018-08-31 | URI | CMCSA | CI | MU | REGN | MO | ABBV | META | MCO | ALL | GS | BLK | PFE | BKNG | AZO |
| 2018-09-28 | URI | BKNG | MO | GD | CMCSA | MU | AVGO | CAT | PFE | CI | REGN | MCO | MOS | GS | CB |
| 2018-10-31 | MCO | AVGO | SEDG | BKNG | LRCX | IVZ | MU | GS | META | TXN | ADI | PHM | ALL | MO | MOS |
| 2018-11-30 | NXPI | ABBV | MCO | EOG | STX | LRCX | BKNG | MU | AMAT | AVGO | PSX | MO | OXY | MOS | PHM |
| 2018-12-31 | BLK | PSX | META | BKNG | PHM | EOG | MO | AVGO | LRCX | MU | ABBV | CB | ADI | MCO | AAPL |
| 2019-01-31 | MU | URI | NXPI | MCO | EOG | META | FCX | STX | AMAT | PSX | LRCX | OXY | ABBV | WY | BKNG |
| 2019-02-28 | MU | FCX | URI | PSX | BLK | NXPI | STX | META | NVDA | AVGO | MO | ALL | IVZ | MCO | OXY |
| 2019-03-29 | DVN | MU | NVDA | META | MRO | OXY | BKNG | AAPL | STX | PSX | AMAT | MO | KLAC | GS | BLK |
| 2019-04-30 | DVN | MU | GS | URI | BKNG | MS | AAPL | BLK | MRO | NVDA | AMGN | VRTX | WBD | ADI | META |
| 2019-05-31 | BMY | GS | BKNG | AMGN | GILD | LLY | COP | VRTX | INTC | AAPL | BLK | MO | SPG | AXP | MTCH |
| 2019-06-28 | GS | URI | MU | BKNG | DVN | MOS | AMGN | PSX | GILD | EOG | WBD | CAT | NVDA | INTC | VRTX |
| 2019-07-31 | LLY | AMGN | OXY | INTC | PSX | BKNG | GS | VRTX | GILD | SPG | JNJ | AXP | MTCH | BMY | CAT |
| 2019-08-30 | BMY | GILD | VRTX | INTC | JNJ | QCOM | GS | BKNG | PSX | WBD | FTNT | AMGN | CCI | SPG | CAT |
| 2019-09-30 | BMY | CSCO | COP | DVN | GILD | VRTX | INTC | URI | SPG | ABBV | ANET | JNJ | PSX | BEN | CAT |
| 2019-10-31 | REGN | VRTX | GILD | JNJ | MO | BMY | ANET | FTNT | ABBV | NCLH | NTAP | BKNG | QCOM | AMGN | DPZ |
| 2019-11-29 | LLY | REGN | DVN | COP | NTAP | QCOM | AXP | URI | BMY | VRTX | MO | ORCL | JNJ | XRX | IBM |
| 2019-12-31 | DVN | CSCO | ANET | QCOM | LLY | COP | EOG | NTAP | BMY | URI | MMM | AMGN | REGN | AXP | TER |
| 2020-01-31 | ANET | ORCL | DVN | LLY | QCOM | BMY | WBD | TRV | REGN | VRTX | ETSY | MSFT | BKNG | AXP | PSA |
| 2020-02-28 | ANET | BKNG | ORCL | SPG | BMY | LLY | QCOM | TRV | MMM | MSFT | PSA | VRTX | EBAY | WBD | URI |
| 2020-03-31 | ANET | WBD | QCOM | BKNG | CSCO | ALL | NEM | MA | MO | ABBV | PGR | LLY | CDNS | GS | HAS |
| 2020-04-30 | DVN | WBD | BKNG | C | SPG | ANET | QCOM | JPM | NEM | ENPH | GS | ALL | ABBV | AZO | URI |
| 2020-05-29 | BKNG | ANET | QCOM | CB | JPM | MO | CF | KO | GS | LLY | ABBV | EXR | ENPH | NEM | TRV |
| 2020-06-30 | SPG | C | TRV | QCOM | MO | EBAY | BKNG | GS | NEM | KO | ABBV | JPM | URI | CB | ALL |
| 2020-07-31 | CF | MO | XRX | BKNG | KO | QCOM | EBAY | JPM | INTC | ALL | ENPH | GS | TRV | CB | SPGI |
| 2020-08-31 | SPG | INTC | XRX | MO | ALL | ENPH | WBD | JPM | KO | BMY | MS | EBAY | META | URI | KLAC |
| 2020-09-30 | ALL | INTC | MO | KO | AEP | ED | XRX | WBD | ENPH | IBM | AON | ABBV | BMY | SPGI | PGR |
| 2020-10-30 | ALL | ENPH | SPG | JPM | MO | ABBV | KO | CI | ED | BMY | BKNG | REGN | INTC | AON | AMT |
| 2020-11-30 | DVN | ALL | SPG | WBD | JPM | CSCO | ENPH | AON | AMGN | GS | NEM | IBM | VRTX | INTC | AEP |
| 2020-12-31 | DVN | ALL | NEM | SPG | AMGN | ETSY | CSCO | MCO | EBAY | ENPH | SPGI | VRTX | PGR | AMT | MO |
| 2021-01-29 | INTC | ALL | REGN | DVN | KLAC | VRTX | SPG | GS | ADBE | ENPH | SPGI | AMGN | AMAT | NEM | AMT |
| 2021-02-26 | PGR | MCO | AMGN | SPGI | AZO | KLAC | TER | EBAY | CSCO | VRTX | ORLY | VZ | DVN | ADBE | GS |
| 2021-03-31 | NEM | PG | AMT | SPGI | AMGN | AEP | VRTX | EBAY | DPZ | ED | PFE | MCO | GS | MO | REGN |
| 2021-04-30 | ADBE | PG | VRTX | CRM | TTD | MSFT | ORCL | MO | AAPL | SPGI | NVDA | AMT | AMGN | BMY | PFE |
| 2021-05-28 | REGN | PGR | EBAY | PG | AZO | ALL | MO | VRTX | ADBE | AMGN | CRM | BMY | SPGI | NEM | PFE |
| 2021-06-30 | REGN | ETSY | QCOM | TMO | PGR | BX | TTD | MTCH | GS | CB | AAPL | VRTX | PG | AMD | MRNA |
| 2021-07-30 | REGN | BX | QCOM | PGR | VRTX | GS | MO | KLAC | MRNA | AMGN | ETSY | TTD | BMY | ORCL | JPM |
| 2021-08-31 | MRNA | WY | ETSY | QCOM | C | KKR | GS | CB | BX | TTD | PFE | WFC | PGR | AMD | EBAY |
| 2021-09-30 | MRNA | WY | BX | GM | WFC | CB | C | KKR | PGR | QCOM | KLAC | ETSY | GS | DISH | PFE |
| 2021-10-29 | WY | FCX | BX | CB | KKR | GS | C | QCOM | GM | PGR | META | EOG | EBAY | OXY | LRCX |
| 2021-11-30 | MRNA | C | META | GILD | WY | SBUX | FCX | KKR | BX | SPG | KLAC | MO | MU | WFC | REGN |
| 2021-12-31 | BMY | FCX | MO | AXP | META | KKR | GILD | EBAY | GS | PFE | REGN | CB | BX | MRNA | KLAC |
| 2022-01-31 | C | META | WFC | GILD | REGN | PFE | GS | WY | COP | IVZ | SBUX | BX | FCX | CB | JPM |
| 2022-02-28 | GILD | GS | C | REGN | WFC | JPM | CB | WY | COP | ISRG | TXN | URI | IVZ | AMT | CHTR |
| 2022-03-31 | MRNA | GILD | GS | REGN | META | IVZ | COP | CF | FCX | EBAY | PFE | WFC | OXY | JPM | AMT |
| 2022-04-29 | GS | GILD | REGN | WDC | FCX | COP | BBWI | NXPI | JPM | CF | WY | MU | ABBV | PFE | BMY |
| 2022-05-31 | MRNA | GS | REGN | GILD | CF | SPG | APA | C | EOG | IVZ | KLAC | PFE | AMAT | MU | BEN |
| 2022-06-30 | MRNA | GILD | SPGI | REGN | SBUX | GS | ABBV | PFE | C | NXPI | URI | CHTR | WFC | BMY | PLD |
| 2022-07-29 | MRNA | SPG | WFC | MU | AMAT | LRCX | ADBE | C | AMD | SBUX | GS | KLAC | NVDA | BLK | EBAY |
| 2022-08-31 | CF | BKNG | ABNB | PLD | META | CSCO | VRTX | GS | MRNA | COP | ON | JPM | APA | DVN | EOG |
| 2022-09-30 | BKNG | SPG | FCX | ABNB | CF | PLD | NXPI | MCHP | COP | JPM | VRTX | EOG | MRNA | QCOM | APA |
| 2022-10-31 | MRNA | BKNG | SPG | FCX | PLD | APA | AIG | COP | EOG | CF | AVGO | CHTR | DVN | GS | ADBE |
| 2022-11-30 | BKNG | MRNA | AMAT | PLD | NXPI | AVGO | LRCX | MCHP | AIG | KLAC | QCOM | SPG | CF | ADBE | AON |
| 2022-12-30 | PLD | BKNG | ADBE | MRNA | APA | PSA | AIG | SPG | MO | CF | AVGO | AMAT | KLAC | COP | LRCX |
| 2023-01-31 | PLD | QCOM | META | BKNG | MOS | ABNB | PSA | CCI | EXPE | AMAT | ADBE | CF | CHTR | GOOGL | TSLA |
| 2023-02-28 | CF | PSA | MOS | PLD | ABNB | EXR | TSLA | AMGN | BKNG | MO | MSFT | AAPL | META | OXY | MCHP |
| 2023-03-31 | PSA | CCI | EOG | OXY | QCOM | ABNB | AMGN | BKNG | MOS | COP | EXR | MRNA | TSLA | PFE | GOOGL |
| 2023-04-28 | DVN | MRO | OXY | COP | APA | PSA | AMGN | BKNG | EOG | MO | CF | EXR | QCOM | VZ | VRTX |
| 2023-05-31 | EOG | NEE | ENPH | OXY | COP | AMGN | PFE | BKNG | PSA | DPZ | DHR | VRTX | QCOM | EMR | ADI |
| 2023-06-30 | CF | EOG | COP | NEE | BKNG | CVX | PHM | DPZ | VLO | SPG | MOS | DVN | URI | MRO | PAYC |
| 2023-07-31 | CF | DVN | MRO | OXY | AMGN | EOG | VLO | COP | APA | BKNG | MOS | CVX | DHR | SCHW | QCOM |
| 2023-08-31 | MTCH | BKNG | CF | EOG | PSA | AMGN | PSX | MRO | NEE | CB | GILD | AON | VLO | MO | EMR |
| 2023-09-29 | EOG | PSX | PSA | BKNG | MRO | ED | CF | MO | GILD | AMGN | JPM | SPG | MCHP | GS | NEE |
| 2023-10-31 | NEE | CCI | PSA | MRO | EOG | BKNG | PSX | MO | AON | GILD | ADI | MCHP | KLAC | AMT | ED |
| 2023-11-30 | CCI | ENPH | EXR | BKNG | ABNB | ADI | EBAY | MCHP | DAL | JNJ | D | DE | MO | BLK | IBM |
| 2023-12-29 | ENPH | BKNG | MTCH | CCI | MO | EBAY | DE | ABNB | PHM | SPG | FTNT | NEE | DAL | CSCO | JNJ |
| 2024-01-31 | BKNG | MO | ENPH | MTCH | IBM | ABNB | CCI | JNJ | CSCO | FTNT | DAL | DE | NVDA | PHM | EOG |
| 2024-02-29 | MO | D | JNJ | BKNG | PGR | EOG | EXR | KLAC | PEG | MRO | META | GE | AMT | CCI | CB |
| 2024-03-28 | NEE | BMY | EOG | MO | NVDA | DE | GE | HAL | SLB | MRO | META | PGR | JNJ | BKNG | MCD |
| 2024-04-30 | NEE | NVDA | JNJ | PGR | PANW | CSCO | BKNG | EXR | HAL | AAPL | MCD | EOG | DE | KLAC | MO |
| 2024-05-31 | NVDA | META | AMT | JNJ | BKNG | EXR | CMCSA | CSCO | CCI | DE | MCD | PGR | ANF | MO | GS |
| 2024-06-28 | NVDA | JNJ | CRM | MCD | CSCO | PANW | AMT | IBM | META | BMY | ADBE | BKNG | CMCSA | DE | MO |
| 2024-07-31 | MTCH | NVDA | JNJ | BMY | META | PAYC | MCD | PLD | CMCSA | CCI | IBM | MO | V | BKNG | AMT |
| 2024-08-30 | CRM | BMY | NVDA | AMT | META | MSFT | PAYC | PANW | PGR | V | BKNG | MO | MTCH | ADBE | MCD |
| 2024-09-30 | CRM | AMT | PAYC | MSFT | BMY | LULU | PGR | NVDA | CMCSA | V | IBM | GOOGL | TRV | MO | URI |
| 2024-10-31 | LULU | NVDA | CRM | META | MSFT | BKNG | PGR | COIN | TRV | AMT | IBM | CRWD | DIS | EOG | CB |
| 2024-11-29 | LULU | NVDA | ANF | CRM | META | COIN | DPZ | MSFT | WYNN | BKNG | GOOGL | SLB | AMT | BBWI | GS |
| 2024-12-31 | QCOM | WDAY | KLAC | NVDA | LULU | APA | MRO | META | LRCX | REGN | MSFT | BKNG | ANF | COIN | CB |
| 2025-01-31 | QCOM | KLAC | COIN | AMAT | LRCX | PGR | NVDA | META | SLB | UBER | MSFT | DPZ | EXR | SNPS | LULU |
| 2025-02-28 | QCOM | KLAC | NVDA | AMT | REGN | PGR | CCI | META | MSFT | LRCX | SLB | NXPI | MPWR | COP | CB |
| 2025-03-31 | QCOM | KLAC | DVN | MO | LRCX | PGR | EXR | NVDA | AMT | NEM | META | GOOGL | CRM | MSFT | BKNG |
| 2025-04-30 | COIN | NVDA | MPWR | BKNG | GOOGL | ANET | AMT | ADBE | KLAC | META | LRCX | CRM | AMAT | MO | PGR |
| 2025-05-30 | MPWR | ADBE | URI | TTD | COIN | KLAC | BKNG | NVDA | GILD | GOOGL | NTAP | HOOD | AMAT | LRCX | CF |
| 2025-06-30 | TER | QCOM | ANET | MPWR | AMAT | GOOGL | BKNG | PYPL | HOOD | REGN | PFE | GILD | NTAP | ADBE | URI |
| 2025-07-31 | TTD | HOOD | TER | BKNG | DVN | PLD | GILD | MPWR | REGN | C | DHI | ADBE | NVDA | COP | QCOM |
| 2025-08-29 | REGN | BMY | PFE | MPWR | PGR | AMGN | LRCX | GILD | BKNG | CB | QCOM | PLD | EXR | ENPH | AAPL |
| 2025-09-30 | AVGO | PGR | FTNT | REGN | AMGN | GILD | PFE | CB | COIN | C | ADBE | KLAC | BKNG | NEM | LLY |
| 2025-10-31 | BMY | REGN | GILD | VRTX | KLAC | MPWR | FTNT | CRM | ADBE | NEM | EXR | ISRG | BKNG | SPGI | AVGO |
| 2025-11-28 | PGR | VRTX | BMY | GILD | FTNT | BKNG | NEM | CF | AMT | INTU | MU | TMUS | ALL | AZO | MPWR |
| 2025-12-31 | ADBE | PGR | VRTX | WDC | CRM | ABNB | INTU | CMCSA | GILD | BKNG | BMY | C | NEM | KLAC | AMT |
| 2026-01-30 | AMT | PGR | WDC | KLAC | NEM | AZO | BKNG | GILD | CMCSA | EXR | EOG | MU | MA | MPWR | META |
| 2026-02-27 | AMT | CHTR | WDC | GILD | KLAC | TMUS | NFLX | NEM | URI | MA | AZO | PGR | MPWR | V | NVDA |
| 2026-03-31 | BKNG | AVGO | INTU | WDC | PLTR | NFLX | KLAC | AZO | MA | GILD | PGR | FTNT | CCI | NVDA | PSX |
| 2026-04-30 | MSFT | KLAC | CCI | AZO | AMT | MA | V | MU | WDC | NFLX | GILD | META | SPG | NVDA | NEM |
| 2026-05-29 | ADBE | BKNG | MSFT | PLTR | CCI | MA | CRM | GILD | SPGI | PAYC | KLAC | NVDA | META | NOW | AMT |
| 2026-06-26 | WDC | BKNG | AZO | KLAC | MU | MA | AMT | CCI | AVGO | SPG | NVDA | ALL | AON | TRV | AXP |
Scoring script (python)
FORMULA_NAME = "Recovery Quality Contrarian 52W Hybrid (Arbitrated Relay, v1148)"
LOGIC_VARIANT_COUNT = 4
NOTES = """mode=explore; family=recovery-quality-contrarian-52w-hybrid
This hybrid combines four distinct sleeves rather than averaging parents mechanically: a panic-repair sleeve for deep 52-week washouts that are proving they can rebound, a skeptical transition sleeve for messy tapes where quality must validate recovery before price strength is trusted, a trend-graduation sleeve where repaired names can outrank pure momentum only after crossing a quality-and-stability gate, and a defensive compounder sleeve for risk-off conditions. The explicit arbitration mechanism is stock-level: deep drawdown only helps when near-term repair is real, clean trend only wins when the name is not excessively extended versus recovery evidence, and weak-quality contrarian bounces are capped so low-quality dead-cat rallies do not dominate.
Deliberate metric coverage this run: actively use momentum (return_1m_pct, return_3m_pct, return_6m_pct, momentum_12_1_pct), trend/recovery (from_200d_ma_pct, from_52w_high_pct), volatility (realized_vol_3m), liquidity (avg_daily_volume_3m, avg_daily_dollar_volume_3m, trading_days_3m), income (dividend_yield_ttm_pct), valuation (forward_pe, peg), growth (operating_income_growth_pct, free_cash_flow_growth_pct, forward_eps), quality (operating_margin_pct, free_cash_flow_margin_pct), and size (market_cap). Deliberate weight-0 metrics this run: return_12m_pct, dividend_ttm, pe, eps_growth_pct, revenue_growth_pct, shares_outstanding, close, adj_close, high_52w, ma_200d, eps_ttm, revenue_ttm, operating_income_ttm, free_cash_flow_ttm."""
# Deliberate weight-0 metrics this run:
# - Momentum/return: return_12m_pct
# - Income: dividend_ttm
# - Valuation: pe
# - Growth: eps_growth_pct, revenue_growth_pct
# - Raw levels / duplicate size-price information: shares_outstanding, close, adj_close,
# high_52w, ma_200d, eps_ttm, revenue_ttm, operating_income_ttm, free_cash_flow_ttm
def score_universe(stocks, regime, ctx):
def clamp(x, lo, hi):
if x < lo:
return lo
if x > hi:
return hi
return x
def as_number(x):
if isinstance(x, bool):
return 1.0 if x else 0.0
if isinstance(x, (int, float)):
return float(x)
return None
def metric_value(stock, name):
return as_number(stock.get(name))
def regime_value(name, default):
v = None
if isinstance(regime, dict):
v = as_number(regime.get(name))
if v is None and isinstance(ctx, dict):
v = as_number(ctx.get(name))
if v is None:
return default
return v
def percentile_maps(metric_names):
maps = {}
for name in metric_names:
vals = []
for stock in stocks:
v = metric_value(stock, name)
if v is not None:
vals.append(v)
vals.sort()
n = len(vals)
if n == 0:
maps[name] = None
continue
ranks = {}
i = 0
while i < n:
j = i + 1
while j < n and vals[j] == vals[i]:
j += 1
rank = ((i + j - 1) * 0.5) / (n - 1) if n > 1 else 0.5
ranks[vals[i]] = rank
i = j
maps[name] = ranks
return maps
def pct(stock, name, invert=False):
v = metric_value(stock, name)
if v is None:
return None
ranks = rank_maps.get(name)
if ranks is None:
return None
p = ranks.get(v)
if p is None:
return None
return 1.0 - p if invert else p
def blend(stock, parts):
total = 0.0
wsum = 0.0
for metric_name, weight, invert in parts:
p = pct(stock, metric_name, invert)
if p is None:
continue
total += weight * p
wsum += weight
if wsum <= 0.0:
return 0.0
return total / wsum
def liquidity_gate(stock):
adv = pct(stock, "avg_daily_dollar_volume_3m", False)
av = pct(stock, "avg_daily_volume_3m", False)
td = pct(stock, "trading_days_3m", False)
total = 0.0
wsum = 0.0
if adv is not None:
total += 0.5 * adv
wsum += 0.5
if av is not None:
total += 0.3 * av
wsum += 0.3
if td is not None:
total += 0.2 * td
wsum += 0.2
if wsum <= 0.0:
return 0.5
return total / wsum
def recovery_core(stock):
return blend(stock, [
("from_52w_high_pct", 0.36, True),
("from_200d_ma_pct", 0.24, True),
("return_1m_pct", 0.16, False),
("return_3m_pct", 0.14, False),
("realized_vol_3m", 0.10, True),
])
def transition_core(stock):
return blend(stock, [
("from_52w_high_pct", 0.24, True),
("from_200d_ma_pct", 0.14, True),
("return_1m_pct", 0.16, False),
("return_3m_pct", 0.16, False),
("operating_margin_pct", 0.10, False),
("free_cash_flow_margin_pct", 0.10, False),
("operating_income_growth_pct", 0.10, False),
])
def momentum_core(stock):
return blend(stock, [
("momentum_12_1_pct", 0.30, False),
("return_6m_pct", 0.22, False),
("return_3m_pct", 0.14, False),
("return_1m_pct", 0.08, False),
("from_200d_ma_pct", 0.10, False),
("realized_vol_3m", 0.08, True),
("forward_pe", 0.08, True),
])
def quality_core(stock):
return blend(stock, [
("operating_margin_pct", 0.28, False),
("free_cash_flow_margin_pct", 0.24, False),
("forward_eps", 0.14, False),
("free_cash_flow_growth_pct", 0.16, False),
("operating_income_growth_pct", 0.10, False),
("peg", 0.08, True),
])
def defensive_core(stock):
return blend(stock, [
("realized_vol_3m", 0.28, True),
("operating_margin_pct", 0.20, False),
("free_cash_flow_margin_pct", 0.18, False),
("dividend_yield_ttm_pct", 0.10, False),
("forward_pe", 0.10, True),
("peg", 0.06, True),
("return_3m_pct", 0.08, False),
])
metric_names = [
"return_1m_pct",
"return_3m_pct",
"return_6m_pct",
"momentum_12_1_pct",
"from_200d_ma_pct",
"from_52w_high_pct",
"realized_vol_3m",
"avg_daily_volume_3m",
"avg_daily_dollar_volume_3m",
"trading_days_3m",
"dividend_yield_ttm_pct",
"forward_pe",
"peg",
"operating_income_growth_pct",
"free_cash_flow_growth_pct",
"forward_eps",
"operating_margin_pct",
"free_cash_flow_margin_pct",
"market_cap",
]
rank_maps = percentile_maps(metric_names)
market_trend = regime_value("market_trend", regime_value("trend", 0.0))
risk_on = regime_value("risk_on", 0.5)
drawdown = regime_value("drawdown", regime_value("market_drawdown", 0.0))
vol_regime = regime_value("volatility", regime_value("market_volatility", 0.5))
if drawdown <= -0.10 or (risk_on < 0.42 and vol_regime > 0.58):
branch = 0 # defensive compounder
elif market_trend > 0.18 and risk_on > 0.55 and vol_regime < 0.62:
branch = 1 # trend graduation
elif market_trend < -0.08 or (vol_regime > 0.70 and risk_on < 0.52):
branch = 2 # panic repair
else:
branch = 3 # skeptical transition
scores = {}
for stock in stocks:
symbol = stock.get("symbol")
if not symbol:
continue
liq = liquidity_gate(stock)
rec = recovery_core(stock)
trans = transition_core(stock)
mom = momentum_core(stock)
qual = quality_core(stock)
defense = defensive_core(stock)
deep_drawdown = pct(stock, "from_52w_high_pct", True)
if deep_drawdown is None:
deep_drawdown = 0.5
short_repair = pct(stock, "return_1m_pct", False)
if short_repair is None:
short_repair = 0.5
medium_repair = pct(stock, "return_3m_pct", False)
if medium_repair is None:
medium_repair = 0.5
six_m = pct(stock, "return_6m_pct", False)
if six_m is None:
six_m = 0.5
below_200 = pct(stock, "from_200d_ma_pct", True)
if below_200 is None:
below_200 = 0.5
low_vol = pct(stock, "realized_vol_3m", True)
if low_vol is None:
low_vol = 0.5
cheapish = pct(stock, "forward_pe", True)
if cheapish is None:
cheapish = 0.5
size = pct(stock, "market_cap", False)
if size is None:
size = 0.5
repair_valid = 0.0
if short_repair > 0.55:
repair_valid += 0.5
if medium_repair > 0.52:
repair_valid += 0.3
if qual > 0.52:
repair_valid += 0.2
trend_clean = 0.0
if mom > 0.58:
trend_clean += 0.45
if low_vol > 0.50:
trend_clean += 0.20
if qual > 0.50:
trend_clean += 0.20
if liq > 0.45:
trend_clean += 0.15
conflict_gap = mom - rec
conflict_penalty = 0.0
if conflict_gap > 0.22 and deep_drawdown > 0.72 and short_repair < 0.45:
conflict_penalty += 0.10
if conflict_gap < -0.22 and qual < 0.42:
conflict_penalty += 0.10
if liq < 0.22:
conflict_penalty += 0.18
if branch == 0:
base = 0.42 * defense + 0.22 * qual + 0.14 * mom + 0.12 * rec + 0.06 * cheapish + 0.04 * size
if deep_drawdown > 0.78 and repair_valid < 0.55:
base -= 0.10
if low_vol > 0.70 and qual > 0.60:
base += 0.05
elif branch == 1:
repaired_leader_bonus = 0.0
if deep_drawdown > 0.60 and repair_valid > 0.68 and trend_clean > 0.58:
repaired_leader_bonus = 0.08
if deep_drawdown < 0.35 and below_200 < 0.35:
repaired_leader_bonus -= 0.03
base = 0.38 * mom + 0.24 * qual + 0.18 * trans + 0.10 * rec + 0.05 * low_vol + 0.05 * cheapish + repaired_leader_bonus
if short_repair < 0.35 and medium_repair < 0.45 and deep_drawdown > 0.70:
base -= 0.10
elif branch == 2:
bounce_cap = 1.0
if qual < 0.40:
bounce_cap = 0.88
if liq < 0.30:
bounce_cap = 0.82 if bounce_cap > 0.82 else bounce_cap
base = (0.38 * rec + 0.24 * qual + 0.14 * trans + 0.08 * defense + 0.08 * cheapish + 0.08 * low_vol) * bounce_cap
if deep_drawdown > 0.80 and repair_valid > 0.70:
base += 0.07
if short_repair < 0.30:
base -= 0.08
else:
recovery_vs_trend = rec - mom
bridge_bonus = 0.0
if recovery_vs_trend > 0.08 and qual > 0.56:
bridge_bonus += 0.05
if recovery_vs_trend < -0.08 and cheapish < 0.35 and qual < 0.50:
bridge_bonus -= 0.04
base = 0.30 * trans + 0.26 * qual + 0.18 * rec + 0.14 * mom + 0.06 * cheapish + 0.06 * defense + bridge_bonus
if deep_drawdown > 0.76 and repair_valid < 0.50:
base -= 0.08
score = base - conflict_penalty
score += 0.05 * liq
# Small penalty for excessively large, already-crowded names in contrarian sleeves.
if branch in (2, 3) and size > 0.85 and deep_drawdown < 0.45:
score -= 0.03
scores[symbol] = score
return scores