{
 "window": {
  "start": "2018-04-02",
  "end": "2026-10-28",
  "early_start": "2017-08-01"
 },
 "settings": {
  "universe_size": 1000,
  "min_stocks": 5,
  "cost_per_side": 0.001
 },
 "coverage": {
  "stocks_per_sector": {
   "2017-08-01": {
    "Basic Materials": 59,
    "Communication Services": 38,
    "Consumer Cyclical": 159,
    "Consumer Defensive": 55,
    "Energy": 73,
    "Financial Services": 136,
    "Healthcare": 106,
    "Industrials": 123,
    "Real Estate": 79,
    "Technology": 139,
    "Utilities": 33
   },
   "2018-04-02": {
    "Basic Materials": 56,
    "Communication Services": 37,
    "Consumer Cyclical": 152,
    "Consumer Defensive": 53,
    "Energy": 66,
    "Financial Services": 141,
    "Healthcare": 115,
    "Industrials": 123,
    "Real Estate": 73,
    "Technology": 147,
    "Utilities": 37
   },
   "2026-10-28": {
    "Basic Materials": 62,
    "Communication Services": 28,
    "Consumer Cyclical": 114,
    "Consumer Defensive": 47,
    "Energy": 57,
    "Financial Services": 128,
    "Healthcare": 125,
    "Industrials": 150,
    "Real Estate": 47,
    "Technology": 206,
    "Utilities": 36
   }
  },
  "signal_coverage": {
   "revenue_filers_per_quarter": {
    "2015-US-Q1": 4,
    "2015-US-Q2": 169,
    "2015-US-Q3": 373,
    "2015-US-Q4": 581,
    "2016-US-Q1": 3634,
    "2016-US-Q2": 3870,
    "2016-US-Q3": 3902,
    "2016-US-Q4": 3926
   },
   "revenue_ttm": {
    "at_early_start": 50,
    "first_800": "2018-03-29"
   },
   "revenue_q": {
    "at_early_start": 978,
    "first_800": "2017-08-01"
   },
   "fcf_yield": {
    "at_early_start": 939,
    "first_800": "2017-08-01"
   },
   "eps_ttm": {
    "at_early_start": 38,
    "first_800": "2018-12-31"
   },
   "operating_margin_change": {
    "at_early_start": 50,
    "first_800": "2018-03-29"
   }
  }
 },
 "screen": {
  "revenue_ttm/top2": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 1.019957,
   "qqq_sharpe": 0.900216,
   "cagr": 0.212785,
   "volatility": 0.211625,
   "mdd": -0.304693,
   "halves": [
    {
     "start": "2018-04-03",
     "end": "2022-07-14",
     "sharpe": 0.800004,
     "qqq_sharpe": 0.700999,
     "cagr": 0.174782,
     "volatility": 0.236681,
     "mdd": -0.304693
    },
    {
     "start": "2022-07-14",
     "end": "2026-10-28",
     "sharpe": 1.322696,
     "qqq_sharpe": 1.148253,
     "cagr": 0.251915,
     "volatility": 0.183244,
     "mdd": -0.207496
    }
   ],
   "beats_qqq": true,
   "turnover": 1.6479
  },
  "revenue_ttm/top3": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.854264,
   "qqq_sharpe": 0.900216,
   "cagr": 0.163052,
   "volatility": 0.200959,
   "mdd": -0.345966,
   "halves": [
    {
     "start": "2018-04-03",
     "end": "2022-07-14",
     "sharpe": 0.642456,
     "qqq_sharpe": 0.700999,
     "cagr": 0.129673,
     "volatility": 0.232048,
     "mdd": -0.345966
    },
    {
     "start": "2022-07-14",
     "end": "2026-10-28",
     "sharpe": 1.18361,
     "qqq_sharpe": 1.148253,
     "cagr": 0.197327,
     "volatility": 0.164146,
     "mdd": -0.185696
    }
   ],
   "beats_qqq": false,
   "turnover": 1.2556
  },
  "fcf_yield/top2": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.816544,
   "qqq_sharpe": 0.900216,
   "cagr": 0.168113,
   "volatility": 0.220656,
   "mdd": -0.381478,
   "halves": [
    {
     "start": "2018-04-03",
     "end": "2022-07-14",
     "sharpe": 0.661819,
     "qqq_sharpe": 0.700999,
     "cagr": 0.14782,
     "volatility": 0.259424,
     "mdd": -0.381478
    },
    {
     "start": "2022-07-14",
     "end": "2026-10-28",
     "sharpe": 1.087372,
     "qqq_sharpe": 1.148253,
     "cagr": 0.188712,
     "volatility": 0.173507,
     "mdd": -0.16302
    }
   ],
   "beats_qqq": false,
   "turnover": 1.6479
  },
  "fcf_yield/top3": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.735556,
   "qqq_sharpe": 0.900216,
   "cagr": 0.140191,
   "volatility": 0.208574,
   "mdd": -0.431369,
   "halves": [
    {
     "start": "2018-04-03",
     "end": "2022-07-14",
     "sharpe": 0.537511,
     "qqq_sharpe": 0.700999,
     "cagr": 0.10827,
     "volatility": 0.250147,
     "mdd": -0.431369
    },
    {
     "start": "2022-07-14",
     "end": "2026-10-28",
     "sharpe": 1.10247,
     "qqq_sharpe": 1.148253,
     "cagr": 0.172947,
     "volatility": 0.156373,
     "mdd": -0.14929
    }
   ],
   "beats_qqq": false,
   "turnover": 1.491
  },
  "momentum_12_1/top2": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.950271,
   "qqq_sharpe": 0.900216,
   "cagr": 0.188051,
   "volatility": 0.203659,
   "mdd": -0.342482,
   "halves": [
    {
     "start": "2018-04-03",
     "end": "2022-07-14",
     "sharpe": 0.760666,
     "qqq_sharpe": 0.700999,
     "cagr": 0.164669,
     "volatility": 0.237857,
     "mdd": -0.342482
    },
    {
     "start": "2022-07-14",
     "end": "2026-10-28",
     "sharpe": 1.268699,
     "qqq_sharpe": 1.148253,
     "cagr": 0.21184,
     "volatility": 0.162485,
     "mdd": -0.143809
    }
   ],
   "beats_qqq": true,
   "turnover": 4.0021
  },
  "momentum_12_1/top3": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.894151,
   "qqq_sharpe": 0.900216,
   "cagr": 0.163616,
   "volatility": 0.190211,
   "mdd": -0.363948,
   "halves": [
    {
     "start": "2018-04-03",
     "end": "2022-07-14",
     "sharpe": 0.607967,
     "qqq_sharpe": 0.700999,
     "cagr": 0.118356,
     "volatility": 0.226623,
     "mdd": -0.363948
    },
    {
     "start": "2022-07-14",
     "end": "2026-10-28",
     "sharpe": 1.396283,
     "qqq_sharpe": 1.148253,
     "cagr": 0.210584,
     "volatility": 0.14496,
     "mdd": -0.157415
    }
   ],
   "beats_qqq": false,
   "turnover": 3.2566
  },
  "above_200d/top2": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.757472,
   "qqq_sharpe": 0.900216,
   "cagr": 0.132169,
   "volatility": 0.187547,
   "mdd": -0.293842,
   "halves": [
    {
     "start": "2018-04-03",
     "end": "2022-07-14",
     "sharpe": 0.780568,
     "qqq_sharpe": 0.700999,
     "cagr": 0.157014,
     "volatility": 0.217325,
     "mdd": -0.293842
    },
    {
     "start": "2022-07-14",
     "end": "2026-10-28",
     "sharpe": 0.752558,
     "qqq_sharpe": 1.148253,
     "cagr": 0.107919,
     "volatility": 0.152097,
     "mdd": -0.165313
    }
   ],
   "beats_qqq": false,
   "turnover": 4.4141
  },
  "above_200d/top3": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.833187,
   "qqq_sharpe": 0.900216,
   "cagr": 0.139181,
   "volatility": 0.175249,
   "mdd": -0.317392,
   "halves": [
    {
     "start": "2018-04-03",
     "end": "2022-07-14",
     "sharpe": 0.782367,
     "qqq_sharpe": 0.700999,
     "cagr": 0.149709,
     "volatility": 0.205516,
     "mdd": -0.317392
    },
    {
     "start": "2022-07-14",
     "end": "2026-10-28",
     "sharpe": 0.946965,
     "qqq_sharpe": 1.148253,
     "cagr": 0.128777,
     "volatility": 0.138578,
     "mdd": -0.157578
    }
   ],
   "beats_qqq": false,
   "turnover": 3.7274
  },
  "etf_momentum_6m/top2": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.671071,
   "qqq_sharpe": 0.900216,
   "cagr": 0.120344,
   "volatility": 0.199476,
   "mdd": -0.295782,
   "halves": [
    {
     "start": "2018-04-03",
     "end": "2022-07-14",
     "sharpe": 0.574177,
     "qqq_sharpe": 0.700999,
     "cagr": 0.109708,
     "volatility": 0.226017,
     "mdd": -0.295782
    },
    {
     "start": "2022-07-14",
     "end": "2026-10-28",
     "sharpe": 0.816835,
     "qqq_sharpe": 1.148253,
     "cagr": 0.131055,
     "volatility": 0.168889,
     "mdd": -0.232
    }
   ],
   "beats_qqq": false,
   "turnover": 4.9438
  },
  "etf_momentum_6m/top3": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.695356,
   "qqq_sharpe": 0.900216,
   "cagr": 0.117069,
   "volatility": 0.184017,
   "mdd": -0.298457,
   "halves": [
    {
     "start": "2018-04-03",
     "end": "2022-07-14",
     "sharpe": 0.590448,
     "qqq_sharpe": 0.700999,
     "cagr": 0.107506,
     "volatility": 0.210832,
     "mdd": -0.298457
    },
    {
     "start": "2022-07-14",
     "end": "2026-10-28",
     "sharpe": 0.861119,
     "qqq_sharpe": 1.148253,
     "cagr": 0.12669,
     "volatility": 0.15263,
     "mdd": -0.205223
    }
   ],
   "beats_qqq": false,
   "turnover": 3.7274
  },
  "operating_margin_change/top2": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.641278,
   "qqq_sharpe": 0.900216,
   "cagr": 0.118916,
   "volatility": 0.210172,
   "mdd": -0.400695,
   "halves": [
    {
     "start": "2018-04-03",
     "end": "2022-07-14",
     "sharpe": 0.320407,
     "qqq_sharpe": 0.700999,
     "cagr": 0.049173,
     "volatility": 0.241004,
     "mdd": -0.400695
    },
    {
     "start": "2022-07-14",
     "end": "2026-10-28",
     "sharpe": 1.105926,
     "qqq_sharpe": 1.148253,
     "cagr": 0.193099,
     "volatility": 0.173964,
     "mdd": -0.173298
    }
   ],
   "beats_qqq": false,
   "turnover": 2.1776
  },
  "operating_margin_change/top3": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.717272,
   "qqq_sharpe": 0.900216,
   "cagr": 0.128543,
   "volatility": 0.195834,
   "mdd": -0.353277,
   "halves": [
    {
     "start": "2018-04-03",
     "end": "2022-07-14",
     "sharpe": 0.27134,
     "qqq_sharpe": 0.700999,
     "cagr": 0.036188,
     "volatility": 0.224773,
     "mdd": -0.353277
    },
    {
     "start": "2022-07-14",
     "end": "2026-10-28",
     "sharpe": 1.360487,
     "qqq_sharpe": 1.148253,
     "cagr": 0.228861,
     "volatility": 0.161719,
     "mdd": -0.175632
    }
   ],
   "beats_qqq": false,
   "turnover": 1.7264
  },
  "above_50d/top2": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.429328,
   "qqq_sharpe": 0.900216,
   "cagr": 0.063449,
   "volatility": 0.182536,
   "mdd": -0.303009,
   "halves": [
    {
     "start": "2018-04-03",
     "end": "2022-07-14",
     "sharpe": 0.263587,
     "qqq_sharpe": 0.700999,
     "cagr": 0.033882,
     "volatility": 0.212515,
     "mdd": -0.303009
    },
    {
     "start": "2022-07-14",
     "end": "2026-10-28",
     "sharpe": 0.687163,
     "qqq_sharpe": 1.148253,
     "cagr": 0.093784,
     "volatility": 0.146604,
     "mdd": -0.147201
    }
   ],
   "beats_qqq": false,
   "turnover": 8.0042
  },
  "above_50d/top3": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.465063,
   "qqq_sharpe": 0.900216,
   "cagr": 0.06867,
   "volatility": 0.176911,
   "mdd": -0.318228,
   "halves": [
    {
     "start": "2018-04-03",
     "end": "2022-07-14",
     "sharpe": 0.333551,
     "qqq_sharpe": 0.700999,
     "cagr": 0.048285,
     "volatility": 0.204416,
     "mdd": -0.318228
    },
    {
     "start": "2022-07-14",
     "end": "2026-10-28",
     "sharpe": 0.667837,
     "qqq_sharpe": 1.148253,
     "cagr": 0.089398,
     "volatility": 0.144316,
     "mdd": -0.152349
    }
   ],
   "beats_qqq": false,
   "turnover": 7.4549
  },
  "near_52w_high/top2": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.611685,
   "qqq_sharpe": 0.900216,
   "cagr": 0.099008,
   "volatility": 0.181934,
   "mdd": -0.373485,
   "halves": [
    {
     "start": "2018-04-03",
     "end": "2022-07-14",
     "sharpe": 0.593696,
     "qqq_sharpe": 0.700999,
     "cagr": 0.108514,
     "volatility": 0.211723,
     "mdd": -0.373485
    },
    {
     "start": "2022-07-14",
     "end": "2026-10-28",
     "sharpe": 0.662254,
     "qqq_sharpe": 1.148253,
     "cagr": 0.089607,
     "volatility": 0.146259,
     "mdd": -0.239716
    }
   ],
   "beats_qqq": false,
   "turnover": 4.2375
  },
  "near_52w_high/top3": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.713415,
   "qqq_sharpe": 0.900216,
   "cagr": 0.112663,
   "volatility": 0.170421,
   "mdd": -0.340589,
   "halves": [
    {
     "start": "2018-04-03",
     "end": "2022-07-14",
     "sharpe": 0.647557,
     "qqq_sharpe": 0.700999,
     "cagr": 0.115297,
     "volatility": 0.199506,
     "mdd": -0.340589
    },
    {
     "start": "2022-07-14",
     "end": "2026-10-28",
     "sharpe": 0.842431,
     "qqq_sharpe": 1.148253,
     "cagr": 0.110041,
     "volatility": 0.135278,
     "mdd": -0.140915
    }
   ],
   "beats_qqq": false,
   "turnover": 3.2174
  },
  "eps_ttm/top2": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.403443,
   "qqq_sharpe": 0.900216,
   "cagr": 0.062997,
   "volatility": 0.202843,
   "mdd": -0.350544,
   "halves": [
    {
     "start": "2018-04-03",
     "end": "2022-07-14",
     "sharpe": 0.062024,
     "qqq_sharpe": 0.700999,
     "cagr": -0.012214,
     "volatility": 0.230001,
     "mdd": -0.350544
    },
    {
     "start": "2022-07-14",
     "end": "2026-10-28",
     "sharpe": 0.872,
     "qqq_sharpe": 1.148253,
     "cagr": 0.143721,
     "volatility": 0.171409,
     "mdd": -0.208537
    }
   ],
   "beats_qqq": false,
   "turnover": 2.0599
  },
  "eps_ttm/top3": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.565398,
   "qqq_sharpe": 0.900216,
   "cagr": 0.094868,
   "volatility": 0.194064,
   "mdd": -0.372734,
   "halves": [
    {
     "start": "2018-04-03",
     "end": "2022-07-14",
     "sharpe": 0.085337,
     "qqq_sharpe": 0.700999,
     "cagr": -0.006203,
     "volatility": 0.224948,
     "mdd": -0.372734
    },
    {
     "start": "2022-07-14",
     "end": "2026-10-28",
     "sharpe": 1.275262,
     "qqq_sharpe": 1.148253,
     "cagr": 0.20592,
     "volatility": 0.157093,
     "mdd": -0.197183
    }
   ],
   "beats_qqq": false,
   "turnover": 2.1972
  },
  "gross_margin_change/top2": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.692023,
   "qqq_sharpe": 0.900216,
   "cagr": 0.126561,
   "volatility": 0.202185,
   "mdd": -0.333115,
   "halves": [
    {
     "start": "2018-04-03",
     "end": "2022-07-14",
     "sharpe": 0.336432,
     "qqq_sharpe": 0.700999,
     "cagr": 0.052791,
     "volatility": 0.23578,
     "mdd": -0.333115
    },
    {
     "start": "2022-07-14",
     "end": "2026-10-28",
     "sharpe": 1.240032,
     "qqq_sharpe": 1.148253,
     "cagr": 0.205293,
     "volatility": 0.161742,
     "mdd": -0.165399
    }
   ],
   "beats_qqq": false,
   "turnover": 1.8245
  },
  "gross_margin_change/top3": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.753116,
   "qqq_sharpe": 0.900216,
   "cagr": 0.133961,
   "volatility": 0.191868,
   "mdd": -0.352873,
   "halves": [
    {
     "start": "2018-04-03",
     "end": "2022-07-14",
     "sharpe": 0.500386,
     "qqq_sharpe": 0.700999,
     "cagr": 0.092474,
     "volatility": 0.23006,
     "mdd": -0.352873
    },
    {
     "start": "2022-07-14",
     "end": "2026-10-28",
     "sharpe": 1.2084,
     "qqq_sharpe": 1.148253,
     "cagr": 0.176911,
     "volatility": 0.143914,
     "mdd": -0.1652
    }
   ],
   "beats_qqq": false,
   "turnover": 1.5694
  }
 },
 "rank_ic": {
  "revenue_ttm": {
   "mean": 0.023213,
   "t": 0.6475,
   "hit_rate": 0.514563,
   "months": 103,
   "next_month_excess_by_rank": {
    "1": 0.010864,
    "2": 0.002402,
    "3": -0.003886,
    "4": -0.003559,
    "5": -0.003278,
    "6": 0.003693,
    "7": -0.004024,
    "8": -0.003118,
    "9": -6.3e-05,
    "10": -0.00326,
    "11": 0.004355
   }
  },
  "fcf_yield": {
   "mean": 0.016211,
   "t": 0.489,
   "hit_rate": 0.553398,
   "months": 103,
   "next_month_excess_by_rank": {
    "1": 0.004876,
    "2": 0.004125,
    "3": -0.003733,
    "4": -0.000363,
    "5": 0.001432,
    "6": -0.006609,
    "7": -0.002141,
    "8": 0.00309,
    "9": 0.002824,
    "10": -0.001343,
    "11": -0.002223
   }
  },
  "momentum_12_1": {
   "mean": 0.045307,
   "t": 1.2617,
   "hit_rate": 0.495146,
   "months": 103,
   "next_month_excess_by_rank": {
    "1": 0.010149,
    "2": 0.000578,
    "3": -0.001536,
    "4": -0.004582,
    "5": 0.001854,
    "6": 0.003832,
    "7": -0.001767,
    "8": 0.001188,
    "9": -0.004752,
    "10": 0.001149,
    "11": -0.006296
   }
  },
  "above_200d": {
   "mean": 0.02596,
   "t": 0.7199,
   "hit_rate": 0.533981,
   "months": 103,
   "next_month_excess_by_rank": {
    "1": 0.003742,
    "2": -0.000998,
    "3": 0.002056,
    "4": 0.005892,
    "5": -0.004951,
    "6": -0.000973,
    "7": 0.001876,
    "8": -4.7e-05,
    "9": -0.000899,
    "10": 0.004913,
    "11": -0.01093
   }
  },
  "etf_momentum_6m": {
   "mean": 0.006,
   "t": 0.1516,
   "hit_rate": 0.53,
   "months": 100,
   "next_month_excess_by_rank": {
    "1": 0.005639,
    "2": -0.003013,
    "3": -0.001231,
    "4": 0.004078,
    "5": 0.000542,
    "6": 5.5e-05,
    "7": -0.004002,
    "8": -0.000433,
    "9": 0.000286,
    "10": -0.000436,
    "11": -0.001631
   }
  },
  "operating_margin_change": {
   "mean": -0.023301,
   "t": -0.6474,
   "hit_rate": 0.456311,
   "months": 103,
   "next_month_excess_by_rank": {
    "1": 6.2e-05,
    "2": -9.6e-05,
    "3": 0.001637,
    "4": -0.002961,
    "5": 0.000383,
    "6": -0.001043,
    "7": -0.000638,
    "8": 0.000465,
    "9": -0.003438,
    "10": 0.003057,
    "11": 0.002649
   }
  },
  "above_50d": {
   "mean": -0.020813,
   "t": -0.6008,
   "hit_rate": 0.475728,
   "months": 103,
   "next_month_excess_by_rank": {
    "1": -0.005115,
    "2": -0.002997,
    "3": -0.003572,
    "4": 0.007619,
    "5": 0.002305,
    "6": 0.001517,
    "7": -0.000958,
    "8": 0.002636,
    "9": -0.003308,
    "10": 0.000259,
    "11": 0.001662
   }
  },
  "near_52w_high": {
   "mean": -0.007326,
   "t": -0.2037,
   "hit_rate": 0.495146,
   "months": 103,
   "next_month_excess_by_rank": {
    "1": -0.00198,
    "2": 0.000285,
    "3": 0.000111,
    "4": -0.000695,
    "5": -0.000407,
    "6": 0.000344,
    "7": -0.003156,
    "8": 0.001266,
    "9": -0.001417,
    "10": 0.006673,
    "11": -0.001055
   }
  },
  "eps_ttm": {
   "mean": -0.043042,
   "t": -1.3188,
   "hit_rate": 0.427184,
   "months": 103,
   "next_month_excess_by_rank": {
    "1": -0.004534,
    "2": -0.005337,
    "3": 0.004687,
    "4": -0.000427,
    "5": -0.003751,
    "6": 0.003558,
    "7": -0.004502,
    "8": -0.001085,
    "9": 0.003662,
    "10": 0.000924,
    "11": 0.007009
   }
  },
  "gross_margin_change": {
   "mean": -0.006649,
   "t": -0.1967,
   "hit_rate": 0.495146,
   "months": 103,
   "next_month_excess_by_rank": {
    "1": -0.000945,
    "2": 0.001781,
    "3": 0.002107,
    "4": 0.00103,
    "5": -0.006111,
    "6": -0.001224,
    "7": 0.003898,
    "8": 0.00069,
    "9": -0.000195,
    "10": 0.002504,
    "11": -0.003642
   }
  }
 },
 "buy_and_hold": {
  "QQQ": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.900216,
   "qqq_sharpe": 0.900216,
   "cagr": 0.203105,
   "volatility": 0.237196,
   "mdd": -0.351225
  },
  "SPY": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.846877,
   "qqq_sharpe": 0.900216,
   "cagr": 0.152346,
   "volatility": 0.188964,
   "mdd": -0.336999
  },
  "XLK": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.953659,
   "qqq_sharpe": 0.900216,
   "cagr": 0.242191,
   "volatility": 0.264748,
   "mdd": -0.335684
  },
  "XLF": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.56412,
   "qqq_sharpe": 0.900216,
   "cagr": 0.108101,
   "volatility": 0.228981,
   "mdd": -0.428329
  },
  "XLV": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.722895,
   "qqq_sharpe": 0.900216,
   "cagr": 0.116479,
   "volatility": 0.173638,
   "mdd": -0.283854
  },
  "XLY": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.574875,
   "qqq_sharpe": 0.900216,
   "cagr": 0.113261,
   "volatility": 0.235434,
   "mdd": -0.396701
  },
  "XLP": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.633789,
   "qqq_sharpe": 0.900216,
   "cagr": 0.090372,
   "volatility": 0.156049,
   "mdd": -0.244986
  },
  "XLE": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.557991,
   "qqq_sharpe": 0.900216,
   "cagr": 0.132971,
   "volatility": 0.312515,
   "mdd": -0.668124
  },
  "XLI": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.641812,
   "qqq_sharpe": 0.900216,
   "cagr": 0.119342,
   "volatility": 0.210736,
   "mdd": -0.423137
  },
  "XLB": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.528452,
   "qqq_sharpe": 0.900216,
   "cagr": 0.095081,
   "volatility": 0.216824,
   "mdd": -0.371053
  },
  "XLU": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.558573,
   "qqq_sharpe": 0.900216,
   "cagr": 0.096442,
   "volatility": 0.20158,
   "mdd": -0.360187
  },
  "XLRE": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.435591,
   "qqq_sharpe": 0.900216,
   "cagr": 0.072643,
   "volatility": 0.214558,
   "mdd": -0.387984
  },
  "XLC": {
   "start": "2018-06-19",
   "end": "2026-10-28",
   "sharpe": 0.548634,
   "qqq_sharpe": 0.857681,
   "cagr": 0.101253,
   "volatility": 0.220837,
   "mdd": -0.466525
  }
 },
 "equal_weight_sectors": {
  "start": "2018-04-03",
  "end": "2026-10-28",
  "sharpe": 0.763688,
  "qqq_sharpe": 0.900216,
  "cagr": 0.126203,
  "volatility": 0.176475,
  "mdd": -0.361495
 },
 "yearly": {
  "revenue_ttm_top2": {
   "2018": -0.072028,
   "2019": 0.245498,
   "2020": 0.351275,
   "2021": 0.315249,
   "2022": 0.162976,
   "2023": 0.308096,
   "2024": 0.296013,
   "2025": 0.241201,
   "2026": 0.039182
  },
  "revenue_ttm_top3": {
   "2018": -0.092495,
   "2019": 0.284078,
   "2020": 0.174306,
   "2021": 0.345,
   "2022": 0.04483,
   "2023": 0.290898,
   "2024": 0.179599,
   "2025": 0.166446,
   "2026": 0.068238
  },
  "momentum_12_1_top2": {
   "2018": -0.016336,
   "2019": 0.278049,
   "2020": 0.156452,
   "2021": 0.235142,
   "2022": 0.242126,
   "2023": 0.090869,
   "2024": 0.188589,
   "2025": 0.179399,
   "2026": 0.283591
  },
  "revenue_ttm_top2_ex_xlk": {
   "2018": -0.137198,
   "2019": 0.195839,
   "2020": 0.058058,
   "2021": 0.3138,
   "2022": 0.179629,
   "2023": 0.166919,
   "2024": 0.227193,
   "2025": 0.120894,
   "2026": -0.058852
  },
  "revenue_ttm_top1": {
   "2018": -0.130112,
   "2019": 0.114087,
   "2020": 0.267393,
   "2021": 0.297338,
   "2022": 0.641922,
   "2023": 0.156792,
   "2024": 0.305469,
   "2025": 0.314205,
   "2026": 0.33137
  },
  "revenue_q_top1": {
   "2018": -0.130112,
   "2019": 0.329582,
   "2020": 0.3229,
   "2021": 0.453982,
   "2022": 0.641922,
   "2023": 0.176616,
   "2024": 0.28614,
   "2025": 0.418286,
   "2026": 0.359492
  },
  "equal_weight_sectors": {
   "2018": -0.036278,
   "2019": 0.282407,
   "2020": 0.105178,
   "2021": 0.299682,
   "2022": -0.106801,
   "2023": 0.170606,
   "2024": 0.164287,
   "2025": 0.132935,
   "2026": 0.130986
  },
  "QQQ": {
   "2018": -0.012325,
   "2019": 0.389598,
   "2020": 0.486188,
   "2021": 0.274203,
   "2022": -0.325786,
   "2023": 0.548527,
   "2024": 0.255764,
   "2025": 0.207657,
   "2026": 0.185155
  },
  "SPY": {
   "2018": -0.027172,
   "2019": 0.312218,
   "2020": 0.183732,
   "2021": 0.287441,
   "2022": -0.181717,
   "2023": 0.261895,
   "2024": 0.248851,
   "2025": 0.177151,
   "2026": 0.141409
  },
  "XLK": {
   "2018": -0.027738,
   "2019": 0.498721,
   "2020": 0.435994,
   "2021": 0.347507,
   "2022": -0.277337,
   "2023": 0.560163,
   "2024": 0.216326,
   "2025": 0.245957,
   "2026": 0.33137
  },
  "XLF": {
   "2018": -0.115162,
   "2019": 0.31874,
   "2020": -0.016754,
   "2021": 0.3482,
   "2022": -0.105992,
   "2023": 0.120238,
   "2024": 0.305469,
   "2025": 0.148852,
   "2026": 0.037285
  },
  "XLV": {
   "2018": 0.084301,
   "2019": 0.204447,
   "2020": 0.133407,
   "2021": 0.260356,
   "2022": -0.020858,
   "2023": 0.020619,
   "2024": 0.024679,
   "2025": 0.144963,
   "2026": 0.175298
  },
  "XLY": {
   "2018": 0.002978,
   "2019": 0.283802,
   "2020": 0.296322,
   "2021": 0.27933,
   "2022": -0.362744,
   "2023": 0.396452,
   "2024": 0.26505,
   "2025": 0.073503,
   "2026": -0.028204
  },
  "XLP": {
   "2018": -0.000274,
   "2019": 0.274251,
   "2020": 0.101478,
   "2021": 0.171963,
   "2022": -0.008339,
   "2023": -0.008263,
   "2024": 0.121898,
   "2025": 0.015166,
   "2026": 0.139509
  },
  "XLE": {
   "2018": -0.130112,
   "2019": 0.117161,
   "2020": -0.325153,
   "2021": 0.533143,
   "2022": 0.641922,
   "2023": -0.006557,
   "2024": 0.055201,
   "2025": 0.078813,
   "2026": 0.561285
  },
  "XLI": {
   "2018": -0.113616,
   "2019": 0.290916,
   "2020": 0.109608,
   "2021": 0.210859,
   "2022": -0.055805,
   "2023": 0.181257,
   "2024": 0.173056,
   "2025": 0.193285,
   "2026": 0.094794
  },
  "XLB": {
   "2018": -0.091438,
   "2019": 0.241294,
   "2020": 0.205392,
   "2021": 0.274436,
   "2022": -0.123193,
   "2023": 0.124549,
   "2024": 0.001427,
   "2025": 0.099228,
   "2026": 0.15816
  },
  "XLU": {
   "2018": 0.079638,
   "2019": 0.259137,
   "2020": 0.005705,
   "2021": 0.176939,
   "2022": 0.014171,
   "2023": -0.071553,
   "2024": 0.23279,
   "2025": 0.159892,
   "2026": 0.016029
  },
  "XLRE": {
   "2018": 0.037681,
   "2019": 0.286903,
   "2020": -0.021126,
   "2021": 0.460839,
   "2022": -0.262476,
   "2023": 0.123729,
   "2024": 0.050735,
   "2025": 0.025965,
   "2026": 0.069013
  },
  "XLC": {
   "2018": -0.168704,
   "2019": 0.310485,
   "2020": 0.269057,
   "2021": 0.159622,
   "2022": -0.376276,
   "2023": 0.528127,
   "2024": 0.346967,
   "2025": 0.230685,
   "2026": -0.115948
  }
 },
 "validation": {
  "revenue_ttm": {
   "signal": "revenue_ttm",
   "top": 2,
   "full": {
    "start": "2018-04-03",
    "end": "2026-10-28",
    "sharpe": 1.019957,
    "qqq_sharpe": 0.900216,
    "cagr": 0.212785,
    "volatility": 0.211625,
    "mdd": -0.304693
   },
   "halves": [
    {
     "start": "2018-04-03",
     "end": "2022-07-14",
     "sharpe": 0.800004,
     "qqq_sharpe": 0.700999,
     "cagr": 0.174782,
     "volatility": 0.236681,
     "mdd": -0.304693
    },
    {
     "start": "2022-07-14",
     "end": "2026-10-28",
     "sharpe": 1.322696,
     "qqq_sharpe": 1.148253,
     "cagr": 0.251915,
     "volatility": 0.183244,
     "mdd": -0.207496
    }
   ],
   "grid": [
    {
     "top": 1,
     "signal": "revenue_q",
     "start": "2018-04-03",
     "end": "2026-10-28",
     "sharpe": 1.203813,
     "qqq_sharpe": 0.900216,
     "cagr": 0.318024,
     "volatility": 0.257572,
     "mdd": -0.311566,
     "beats_qqq": true,
     "months_held": {
      "XLK": 36,
      "XLF": 20,
      "XLV": 2,
      "XLY": 2,
      "XLP": 0,
      "XLE": 33,
      "XLI": 0,
      "XLB": 0,
      "XLU": 3,
      "XLRE": 0,
      "XLC": 7
     }
    },
    {
     "top": 2,
     "signal": "revenue_q",
     "start": "2018-04-03",
     "end": "2026-10-28",
     "sharpe": 1.078659,
     "qqq_sharpe": 0.900216,
     "cagr": 0.224397,
     "volatility": 0.208322,
     "mdd": -0.297256,
     "beats_qqq": true,
     "months_held": {
      "XLK": 70,
      "XLF": 26,
      "XLV": 8,
      "XLY": 5,
      "XLP": 4,
      "XLE": 36,
      "XLI": 0,
      "XLB": 10,
      "XLU": 15,
      "XLRE": 0,
      "XLC": 32
     }
    },
    {
     "top": 3,
     "signal": "revenue_q",
     "start": "2018-04-03",
     "end": "2026-10-28",
     "sharpe": 0.798774,
     "qqq_sharpe": 0.900216,
     "cagr": 0.149467,
     "volatility": 0.1999,
     "mdd": -0.341265,
     "beats_qqq": false,
     "months_held": {
      "XLK": 98,
      "XLF": 35,
      "XLV": 28,
      "XLY": 7,
      "XLP": 10,
      "XLE": 41,
      "XLI": 5,
      "XLB": 17,
      "XLU": 21,
      "XLRE": 3,
      "XLC": 44
     }
    },
    {
     "top": 1,
     "signal": "revenue_2q",
     "start": "2018-04-03",
     "end": "2026-10-28",
     "sharpe": 1.152247,
     "qqq_sharpe": 0.900216,
     "cagr": 0.301139,
     "volatility": 0.257965,
     "mdd": -0.311566,
     "beats_qqq": true,
     "months_held": {
      "XLK": 34,
      "XLF": 20,
      "XLV": 5,
      "XLY": 1,
      "XLP": 0,
      "XLE": 35,
      "XLI": 0,
      "XLB": 0,
      "XLU": 0,
      "XLRE": 0,
      "XLC": 8
     }
    },
    {
     "top": 2,
     "signal": "revenue_2q",
     "start": "2018-04-03",
     "end": "2026-10-28",
     "sharpe": 1.080508,
     "qqq_sharpe": 0.900216,
     "cagr": 0.22656,
     "volatility": 0.209905,
     "mdd": -0.297256,
     "beats_qqq": true,
     "months_held": {
      "XLK": 69,
      "XLF": 25,
      "XLV": 12,
      "XLY": 7,
      "XLP": 6,
      "XLE": 42,
      "XLI": 0,
      "XLB": 4,
      "XLU": 8,
      "XLRE": 0,
      "XLC": 33
     }
    },
    {
     "top": 3,
     "signal": "revenue_2q",
     "start": "2018-04-03",
     "end": "2026-10-28",
     "sharpe": 0.889245,
     "qqq_sharpe": 0.900216,
     "cagr": 0.171529,
     "volatility": 0.201323,
     "mdd": -0.341265,
     "beats_qqq": false,
     "months_held": {
      "XLK": 96,
      "XLF": 34,
      "XLV": 27,
      "XLY": 9,
      "XLP": 9,
      "XLE": 45,
      "XLI": 3,
      "XLB": 19,
      "XLU": 18,
      "XLRE": 2,
      "XLC": 47
     }
    },
    {
     "top": 1,
     "signal": "revenue_ttm",
     "start": "2018-04-03",
     "end": "2026-10-28",
     "sharpe": 1.04968,
     "qqq_sharpe": 0.900216,
     "cagr": 0.253099,
     "volatility": 0.243927,
     "mdd": -0.378552,
     "beats_qqq": true,
     "months_held": {
      "XLK": 27,
      "XLF": 21,
      "XLV": 5,
      "XLY": 0,
      "XLP": 0,
      "XLE": 38,
      "XLI": 0,
      "XLB": 0,
      "XLU": 0,
      "XLRE": 0,
      "XLC": 12
     }
    },
    {
     "top": 2,
     "signal": "revenue_ttm",
     "start": "2018-04-03",
     "end": "2026-10-28",
     "sharpe": 1.019957,
     "qqq_sharpe": 0.900216,
     "cagr": 0.212785,
     "volatility": 0.211625,
     "mdd": -0.304693,
     "beats_qqq": true,
     "months_held": {
      "XLK": 65,
      "XLF": 26,
      "XLV": 12,
      "XLY": 2,
      "XLP": 0,
      "XLE": 41,
      "XLI": 0,
      "XLB": 11,
      "XLU": 6,
      "XLRE": 0,
      "XLC": 43
     }
    },
    {
     "top": 3,
     "signal": "revenue_ttm",
     "start": "2018-04-03",
     "end": "2026-10-28",
     "sharpe": 0.854264,
     "qqq_sharpe": 0.900216,
     "cagr": 0.163052,
     "volatility": 0.200959,
     "mdd": -0.345966,
     "beats_qqq": false,
     "months_held": {
      "XLK": 90,
      "XLF": 35,
      "XLV": 39,
      "XLY": 8,
      "XLP": 4,
      "XLE": 42,
      "XLI": 2,
      "XLB": 16,
      "XLU": 12,
      "XLRE": 6,
      "XLC": 55
     }
    }
   ],
   "grid_wins": 6,
   "cost_0.1pct": {
    "start": "2018-04-03",
    "end": "2026-10-28",
    "sharpe": 1.00349,
    "qqq_sharpe": 0.900216,
    "cagr": 0.208585,
    "volatility": 0.211633,
    "mdd": -0.304696
   },
   "passes": false
  },
  "momentum_12_1": {
   "signal": "momentum_12_1",
   "top": 2,
   "full": {
    "start": "2018-04-03",
    "end": "2026-10-28",
    "sharpe": 0.950271,
    "qqq_sharpe": 0.900216,
    "cagr": 0.188051,
    "volatility": 0.203659,
    "mdd": -0.342482
   },
   "halves": [
    {
     "start": "2018-04-03",
     "end": "2022-07-14",
     "sharpe": 0.760666,
     "qqq_sharpe": 0.700999,
     "cagr": 0.164669,
     "volatility": 0.237857,
     "mdd": -0.342482
    },
    {
     "start": "2022-07-14",
     "end": "2026-10-28",
     "sharpe": 1.268699,
     "qqq_sharpe": 1.148253,
     "cagr": 0.21184,
     "volatility": 0.162485,
     "mdd": -0.143809
    }
   ],
   "grid": [
    {
     "top": 1,
     "signal": "momentum_9_1",
     "start": "2018-04-03",
     "end": "2026-10-28",
     "sharpe": 0.818021,
     "qqq_sharpe": 0.900216,
     "cagr": 0.185443,
     "volatility": 0.24529,
     "mdd": -0.382507,
     "beats_qqq": false,
     "months_held": {
      "XLK": 15,
      "XLF": 10,
      "XLV": 6,
      "XLY": 5,
      "XLP": 0,
      "XLE": 29,
      "XLI": 4,
      "XLB": 8,
      "XLU": 18,
      "XLRE": 2,
      "XLC": 6
     }
    },
    {
     "top": 2,
     "signal": "momentum_9_1",
     "start": "2018-04-03",
     "end": "2026-10-28",
     "sharpe": 0.88224,
     "qqq_sharpe": 0.900216,
     "cagr": 0.173331,
     "volatility": 0.20564,
     "mdd": -0.34604,
     "beats_qqq": false,
     "months_held": {
      "XLK": 37,
      "XLF": 25,
      "XLV": 9,
      "XLY": 10,
      "XLP": 4,
      "XLE": 36,
      "XLI": 14,
      "XLB": 17,
      "XLU": 29,
      "XLRE": 11,
      "XLC": 14
     }
    },
    {
     "top": 3,
     "signal": "momentum_9_1",
     "start": "2018-04-03",
     "end": "2026-10-28",
     "sharpe": 0.872773,
     "qqq_sharpe": 0.900216,
     "cagr": 0.157731,
     "volatility": 0.188639,
     "mdd": -0.322315,
     "beats_qqq": false,
     "months_held": {
      "XLK": 48,
      "XLF": 30,
      "XLV": 19,
      "XLY": 17,
      "XLP": 15,
      "XLE": 41,
      "XLI": 29,
      "XLB": 31,
      "XLU": 35,
      "XLRE": 20,
      "XLC": 24
     }
    },
    {
     "top": 1,
     "signal": "momentum_12_1",
     "start": "2018-04-03",
     "end": "2026-10-28",
     "sharpe": 0.997992,
     "qqq_sharpe": 0.900216,
     "cagr": 0.235021,
     "volatility": 0.241287,
     "mdd": -0.311566,
     "beats_qqq": true,
     "months_held": {
      "XLK": 22,
      "XLF": 10,
      "XLV": 7,
      "XLY": 4,
      "XLP": 0,
      "XLE": 26,
      "XLI": 6,
      "XLB": 4,
      "XLU": 16,
      "XLRE": 0,
      "XLC": 8
     }
    },
    {
     "top": 2,
     "signal": "momentum_12_1",
     "start": "2018-04-03",
     "end": "2026-10-28",
     "sharpe": 0.950271,
     "qqq_sharpe": 0.900216,
     "cagr": 0.188051,
     "volatility": 0.203659,
     "mdd": -0.342482,
     "beats_qqq": true,
     "months_held": {
      "XLK": 37,
      "XLF": 20,
      "XLV": 16,
      "XLY": 9,
      "XLP": 3,
      "XLE": 34,
      "XLI": 19,
      "XLB": 14,
      "XLU": 27,
      "XLRE": 9,
      "XLC": 18
     }
    },
    {
     "top": 3,
     "signal": "momentum_12_1",
     "start": "2018-04-03",
     "end": "2026-10-28",
     "sharpe": 0.894151,
     "qqq_sharpe": 0.900216,
     "cagr": 0.163616,
     "volatility": 0.190211,
     "mdd": -0.363948,
     "beats_qqq": false,
     "months_held": {
      "XLK": 49,
      "XLF": 28,
      "XLV": 24,
      "XLY": 18,
      "XLP": 15,
      "XLE": 42,
      "XLI": 29,
      "XLB": 26,
      "XLU": 36,
      "XLRE": 17,
      "XLC": 25
     }
    },
    {
     "top": 1,
     "signal": "momentum_15_1",
     "start": "2018-04-03",
     "end": "2026-10-28",
     "sharpe": 0.723354,
     "qqq_sharpe": 0.900216,
     "cagr": 0.162285,
     "volatility": 0.252631,
     "mdd": -0.311566,
     "beats_qqq": false,
     "months_held": {
      "XLK": 31,
      "XLF": 10,
      "XLV": 6,
      "XLY": 4,
      "XLP": 1,
      "XLE": 27,
      "XLI": 3,
      "XLB": 3,
      "XLU": 9,
      "XLRE": 1,
      "XLC": 8
     }
    },
    {
     "top": 2,
     "signal": "momentum_15_1",
     "start": "2018-04-03",
     "end": "2026-10-28",
     "sharpe": 0.610494,
     "qqq_sharpe": 0.900216,
     "cagr": 0.109443,
     "volatility": 0.205081,
     "mdd": -0.360591,
     "beats_qqq": false,
     "months_held": {
      "XLK": 39,
      "XLF": 22,
      "XLV": 21,
      "XLY": 8,
      "XLP": 7,
      "XLE": 31,
      "XLI": 20,
      "XLB": 10,
      "XLU": 21,
      "XLRE": 8,
      "XLC": 19
     }
    },
    {
     "top": 3,
     "signal": "momentum_15_1",
     "start": "2018-04-03",
     "end": "2026-10-28",
     "sharpe": 0.725016,
     "qqq_sharpe": 0.900216,
     "cagr": 0.127645,
     "volatility": 0.191445,
     "mdd": -0.368333,
     "beats_qqq": false,
     "months_held": {
      "XLK": 55,
      "XLF": 27,
      "XLV": 27,
      "XLY": 15,
      "XLP": 15,
      "XLE": 38,
      "XLI": 38,
      "XLB": 21,
      "XLU": 32,
      "XLRE": 15,
      "XLC": 26
     }
    }
   ],
   "grid_wins": 2,
   "cost_0.1pct": {
    "start": "2018-04-03",
    "end": "2026-10-28",
    "sharpe": 0.910117,
    "qqq_sharpe": 0.900216,
    "cagr": 0.178504,
    "volatility": 0.203784,
    "mdd": -0.343281
   },
   "passes": false
  }
 },
 "xlk_check": {
  "before_2022": {
   "start": "2018-04-03",
   "end": "2021-12-31",
   "sharpe": 0.944635,
   "qqq_sharpe": 1.16588,
   "cagr": 0.211911,
   "volatility": 0.231895,
   "mdd": -0.304693
  },
  "year_2022": {
   "start": "2021-12-31",
   "end": "2022-12-30",
   "sharpe": 0.695959,
   "qqq_sharpe": -1.069889,
   "cagr": 0.163579,
   "volatility": 0.270306,
   "mdd": -0.231061
  },
  "months": 103,
  "months_with_xlk": 65,
  "months_held": {
   "XLK": 65,
   "XLF": 26,
   "XLV": 12,
   "XLY": 2,
   "XLP": 0,
   "XLE": 41,
   "XLI": 0,
   "XLB": 11,
   "XLU": 6,
   "XLRE": 0,
   "XLC": 43
  },
  "xlk_buy_hold": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.953659,
   "qqq_sharpe": 0.900216,
   "cagr": 0.242191,
   "volatility": 0.264748,
   "mdd": -0.335684
  },
  "ex_xlk": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.649819,
   "qqq_sharpe": 0.900216,
   "cagr": 0.115726,
   "volatility": 0.19974,
   "mdd": -0.378116
  },
  "ex_xlk_halves": [
   {
    "start": "2018-04-03",
    "end": "2022-07-14",
    "sharpe": 0.449754,
    "qqq_sharpe": 0.700999,
    "cagr": 0.080192,
    "volatility": 0.231613,
    "mdd": -0.378116
   },
   {
    "start": "2022-07-14",
    "end": "2026-10-28",
    "sharpe": 0.96095,
    "qqq_sharpe": 1.148253,
    "cagr": 0.152335,
    "volatility": 0.161762,
    "mdd": -0.165399
   }
  ],
  "equal_weight_ex_xlk": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.706835,
   "qqq_sharpe": 0.900216,
   "cagr": 0.113492,
   "volatility": 0.173947,
   "mdd": -0.367027
  },
  "xlk_half_equal_weight_rest": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.91694,
   "qqq_sharpe": 0.900216,
   "cagr": 0.180832,
   "volatility": 0.204594,
   "mdd": -0.338989
  },
  "xlk_half_best_other": {
   "start": "2018-04-03",
   "end": "2026-10-28",
   "sharpe": 0.983281,
   "qqq_sharpe": 0.900216,
   "cagr": 0.207986,
   "volatility": 0.216549,
   "mdd": -0.304693
  },
  "holdings": {
   "2018-04-02": [
    "XLK",
    "XLE"
   ],
   "2018-04-30": [
    "XLK",
    "XLE"
   ],
   "2018-05-31": [
    "XLK",
    "XLE"
   ],
   "2018-06-29": [
    "XLE",
    "XLC"
   ],
   "2018-07-31": [
    "XLK",
    "XLE"
   ],
   "2018-08-31": [
    "XLV",
    "XLE"
   ],
   "2018-09-28": [
    "XLE",
    "XLC"
   ],
   "2018-10-31": [
    "XLE",
    "XLC"
   ],
   "2018-11-30": [
    "XLE",
    "XLC"
   ],
   "2018-12-31": [
    "XLE",
    "XLC"
   ],
   "2019-01-31": [
    "XLE",
    "XLC"
   ],
   "2019-02-28": [
    "XLK",
    "XLE"
   ],
   "2019-03-29": [
    "XLK",
    "XLE"
   ],
   "2019-04-30": [
    "XLE",
    "XLC"
   ],
   "2019-05-31": [
    "XLE",
    "XLC"
   ],
   "2019-06-28": [
    "XLE",
    "XLC"
   ],
   "2019-07-31": [
    "XLE",
    "XLC"
   ],
   "2019-08-30": [
    "XLE",
    "XLC"
   ],
   "2019-09-30": [
    "XLE",
    "XLC"
   ],
   "2019-10-31": [
    "XLK",
    "XLC"
   ],
   "2019-11-29": [
    "XLK",
    "XLC"
   ],
   "2019-12-31": [
    "XLK",
    "XLC"
   ],
   "2020-01-31": [
    "XLK",
    "XLC"
   ],
   "2020-02-28": [
    "XLK",
    "XLC"
   ],
   "2020-03-31": [
    "XLK",
    "XLC"
   ],
   "2020-04-30": [
    "XLK",
    "XLC"
   ],
   "2020-05-29": [
    "XLK",
    "XLC"
   ],
   "2020-06-30": [
    "XLK",
    "XLC"
   ],
   "2020-07-31": [
    "XLK",
    "XLC"
   ],
   "2020-08-31": [
    "XLK",
    "XLC"
   ],
   "2020-09-30": [
    "XLK",
    "XLC"
   ],
   "2020-10-30": [
    "XLK",
    "XLC"
   ],
   "2020-11-30": [
    "XLK",
    "XLC"
   ],
   "2020-12-31": [
    "XLK",
    "XLC"
   ],
   "2021-01-29": [
    "XLK",
    "XLC"
   ],
   "2021-02-26": [
    "XLK",
    "XLV"
   ],
   "2021-03-31": [
    "XLK",
    "XLV"
   ],
   "2021-04-30": [
    "XLK",
    "XLV"
   ],
   "2021-05-28": [
    "XLK",
    "XLV"
   ],
   "2021-06-30": [
    "XLK",
    "XLV"
   ],
   "2021-07-30": [
    "XLK",
    "XLV"
   ],
   "2021-08-31": [
    "XLK",
    "XLV"
   ],
   "2021-09-30": [
    "XLK",
    "XLV"
   ],
   "2021-10-29": [
    "XLV",
    "XLY"
   ],
   "2021-11-30": [
    "XLE",
    "XLB"
   ],
   "2021-12-31": [
    "XLE",
    "XLB"
   ],
   "2022-01-31": [
    "XLE",
    "XLB"
   ],
   "2022-02-28": [
    "XLE",
    "XLB"
   ],
   "2022-03-31": [
    "XLY",
    "XLE"
   ],
   "2022-04-29": [
    "XLE",
    "XLB"
   ],
   "2022-05-31": [
    "XLE",
    "XLB"
   ],
   "2022-06-30": [
    "XLE",
    "XLB"
   ],
   "2022-07-29": [
    "XLE",
    "XLB"
   ],
   "2022-08-31": [
    "XLE",
    "XLB"
   ],
   "2022-09-30": [
    "XLE",
    "XLB"
   ],
   "2022-10-31": [
    "XLE",
    "XLB"
   ],
   "2022-11-30": [
    "XLK",
    "XLE"
   ],
   "2022-12-30": [
    "XLK",
    "XLE"
   ],
   "2023-01-31": [
    "XLK",
    "XLE"
   ],
   "2023-02-28": [
    "XLE",
    "XLU"
   ],
   "2023-03-31": [
    "XLE",
    "XLU"
   ],
   "2023-04-28": [
    "XLK",
    "XLE"
   ],
   "2023-05-31": [
    "XLE",
    "XLU"
   ],
   "2023-06-30": [
    "XLE",
    "XLU"
   ],
   "2023-07-31": [
    "XLK",
    "XLE"
   ],
   "2023-08-31": [
    "XLK",
    "XLF"
   ],
   "2023-09-29": [
    "XLK",
    "XLF"
   ],
   "2023-10-31": [
    "XLK",
    "XLF"
   ],
   "2023-11-30": [
    "XLK",
    "XLF"
   ],
   "2023-12-29": [
    "XLK",
    "XLF"
   ],
   "2024-01-31": [
    "XLK",
    "XLF"
   ],
   "2024-02-29": [
    "XLK",
    "XLF"
   ],
   "2024-03-28": [
    "XLK",
    "XLF"
   ],
   "2024-04-30": [
    "XLK",
    "XLF"
   ],
   "2024-05-31": [
    "XLF",
    "XLC"
   ],
   "2024-06-28": [
    "XLF",
    "XLC"
   ],
   "2024-07-31": [
    "XLF",
    "XLC"
   ],
   "2024-08-30": [
    "XLF",
    "XLC"
   ],
   "2024-09-30": [
    "XLF",
    "XLC"
   ],
   "2024-10-31": [
    "XLF",
    "XLC"
   ],
   "2024-11-29": [
    "XLF",
    "XLC"
   ],
   "2024-12-31": [
    "XLF",
    "XLC"
   ],
   "2025-01-31": [
    "XLK",
    "XLF"
   ],
   "2025-02-28": [
    "XLK",
    "XLF"
   ],
   "2025-03-31": [
    "XLK",
    "XLF"
   ],
   "2025-04-30": [
    "XLK",
    "XLF"
   ],
   "2025-05-30": [
    "XLK",
    "XLF"
   ],
   "2025-06-30": [
    "XLK",
    "XLF"
   ],
   "2025-07-31": [
    "XLK",
    "XLF"
   ],
   "2025-08-29": [
    "XLK",
    "XLF"
   ],
   "2025-09-30": [
    "XLK",
    "XLF"
   ],
   "2025-10-31": [
    "XLK",
    "XLC"
   ],
   "2025-11-28": [
    "XLK",
    "XLC"
   ],
   "2025-12-31": [
    "XLK",
    "XLV"
   ],
   "2026-01-30": [
    "XLK",
    "XLV"
   ],
   "2026-02-27": [
    "XLK",
    "XLC"
   ],
   "2026-03-31": [
    "XLK",
    "XLU"
   ],
   "2026-04-30": [
    "XLK",
    "XLU"
   ],
   "2026-05-29": [
    "XLK",
    "XLC"
   ],
   "2026-06-30": [
    "XLK",
    "XLC"
   ],
   "2026-07-31": [
    "XLK",
    "XLC"
   ],
   "2026-08-31": [
    "XLK",
    "XLE"
   ],
   "2026-09-30": [
    "XLK",
    "XLC"
   ]
  },
  "top1": {
   "revenue_q": {
    "sharpe": 1.203813,
    "ex_xle": 0.863579,
    "ex_xlk": 1.013339,
    "yearly": {
     "2018": -0.130112,
     "2019": 0.329582,
     "2020": 0.3229,
     "2021": 0.453982,
     "2022": 0.641922,
     "2023": 0.176616,
     "2024": 0.28614,
     "2025": 0.418286,
     "2026": 0.359492
    }
   },
   "revenue_ttm": {
    "sharpe": 1.04968,
    "ex_xle": 1.043325,
    "ex_xlk": 0.761315,
    "yearly": {
     "2018": -0.130112,
     "2019": 0.114087,
     "2020": 0.267393,
     "2021": 0.297338,
     "2022": 0.641922,
     "2023": 0.156792,
     "2024": 0.305469,
     "2025": 0.314205,
     "2026": 0.33137
    }
   }
  }
 },
 "early_start": {
  "screen": {
   "revenue_ttm/top2": {
    "start": "2017-08-02",
    "end": "2026-10-28",
    "sharpe": 1.021514,
    "qqq_sharpe": 0.898491,
    "cagr": 0.209558,
    "volatility": 0.208031,
    "mdd": -0.304693,
    "halves": [
     {
      "start": "2017-08-02",
      "end": "2022-03-14",
      "sharpe": 1.023594,
      "qqq_sharpe": 0.870668,
      "cagr": 0.222616,
      "volatility": 0.220585,
      "mdd": -0.304693
     },
     {
      "start": "2022-03-14",
      "end": "2026-10-28",
      "sharpe": 1.022912,
      "qqq_sharpe": 0.927901,
      "cagr": 0.19667,
      "volatility": 0.194761,
      "mdd": -0.231061
     }
    ],
    "beats_qqq": true,
    "turnover": 1.6915
   },
   "revenue_ttm/top3": {
    "start": "2017-08-02",
    "end": "2026-10-28",
    "sharpe": 0.858041,
    "qqq_sharpe": 0.898491,
    "cagr": 0.161297,
    "volatility": 0.197609,
    "mdd": -0.345966,
    "halves": [
     {
      "start": "2017-08-02",
      "end": "2022-03-14",
      "sharpe": 0.827759,
      "qqq_sharpe": 0.870668,
      "cagr": 0.168509,
      "volatility": 0.217066,
      "mdd": -0.345966
     },
     {
      "start": "2022-03-14",
      "end": "2026-10-28",
      "sharpe": 0.905327,
      "qqq_sharpe": 0.927901,
      "cagr": 0.154147,
      "volatility": 0.176107,
      "mdd": -0.197294
     }
    ],
    "beats_qqq": false,
    "turnover": 1.3459
   },
   "fcf_yield/top2": {
    "start": "2017-08-02",
    "end": "2026-10-28",
    "sharpe": 0.784845,
    "qqq_sharpe": 0.898491,
    "cagr": 0.15642,
    "volatility": 0.215308,
    "mdd": -0.381478,
    "halves": [
     {
      "start": "2017-08-02",
      "end": "2022-03-14",
      "sharpe": 0.767118,
      "qqq_sharpe": 0.870668,
      "cagr": 0.169433,
      "volatility": 0.242939,
      "mdd": -0.381478
     },
     {
      "start": "2022-03-14",
      "end": "2026-10-28",
      "sharpe": 0.825431,
      "qqq_sharpe": 0.927901,
      "cagr": 0.143582,
      "volatility": 0.183666,
      "mdd": -0.192977
     }
    ],
    "beats_qqq": false,
    "turnover": 1.6915
   },
   "fcf_yield/top3": {
    "start": "2017-08-02",
    "end": "2026-10-28",
    "sharpe": 0.725675,
    "qqq_sharpe": 0.898491,
    "cagr": 0.134907,
    "volatility": 0.203666,
    "mdd": -0.431369,
    "halves": [
     {
      "start": "2017-08-02",
      "end": "2022-03-14",
      "sharpe": 0.692833,
      "qqq_sharpe": 0.870668,
      "cagr": 0.143353,
      "volatility": 0.233379,
      "mdd": -0.431369
     },
     {
      "start": "2022-03-14",
      "end": "2026-10-28",
      "sharpe": 0.792749,
      "qqq_sharpe": 0.927901,
      "cagr": 0.126543,
      "volatility": 0.168904,
      "mdd": -0.189301
     }
    ],
    "beats_qqq": false,
    "turnover": 1.4914
   },
   "momentum_12_1/top2": {
    "start": "2017-08-02",
    "end": "2026-10-28",
    "sharpe": 0.947025,
    "qqq_sharpe": 0.898491,
    "cagr": 0.184366,
    "volatility": 0.200463,
    "mdd": -0.342482,
    "halves": [
     {
      "start": "2017-08-02",
      "end": "2022-03-14",
      "sharpe": 0.903991,
      "qqq_sharpe": 0.870668,
      "cagr": 0.193465,
      "volatility": 0.223745,
      "mdd": -0.342482
     },
     {
      "start": "2022-03-14",
      "end": "2026-10-28",
      "sharpe": 1.018556,
      "qqq_sharpe": 0.927901,
      "cagr": 0.175357,
      "volatility": 0.174192,
      "mdd": -0.169692
     }
    ],
    "beats_qqq": true,
    "turnover": 3.9832
   },
   "momentum_12_1/top3": {
    "start": "2017-08-02",
    "end": "2026-10-28",
    "sharpe": 0.872153,
    "qqq_sharpe": 0.898491,
    "cagr": 0.156391,
    "volatility": 0.187284,
    "mdd": -0.363948,
    "halves": [
     {
      "start": "2017-08-02",
      "end": "2022-03-14",
      "sharpe": 0.723435,
      "qqq_sharpe": 0.870668,
      "cagr": 0.140872,
      "volatility": 0.214465,
      "mdd": -0.363948
     },
     {
      "start": "2022-03-14",
      "end": "2026-10-28",
      "sharpe": 1.10297,
      "qqq_sharpe": 0.927901,
      "cagr": 0.172084,
      "volatility": 0.155516,
      "mdd": -0.170681
     }
    ],
    "beats_qqq": false,
    "turnover": 3.2375
   },
   "above_200d/top2": {
    "start": "2017-08-02",
    "end": "2026-10-28",
    "sharpe": 0.695183,
    "qqq_sharpe": 0.898491,
    "cagr": 0.117649,
    "volatility": 0.185174,
    "mdd": -0.293842,
    "halves": [
     {
      "start": "2017-08-02",
      "end": "2022-03-14",
      "sharpe": 0.763419,
      "qqq_sharpe": 0.870668,
      "cagr": 0.145009,
      "volatility": 0.205387,
      "mdd": -0.293842
     },
     {
      "start": "2022-03-14",
      "end": "2026-10-28",
      "sharpe": 0.619324,
      "qqq_sharpe": 0.927901,
      "cagr": 0.091005,
      "volatility": 0.162538,
      "mdd": -0.169692
     }
    ],
    "beats_qqq": false,
    "turnover": 4.4742
   },
   "above_200d/top3": {
    "start": "2017-08-02",
    "end": "2026-10-28",
    "sharpe": 0.801138,
    "qqq_sharpe": 0.898491,
    "cagr": 0.131368,
    "volatility": 0.173291,
    "mdd": -0.317392,
    "halves": [
     {
      "start": "2017-08-02",
      "end": "2022-03-14",
      "sharpe": 0.824674,
      "qqq_sharpe": 0.870668,
      "cagr": 0.153198,
      "volatility": 0.196658,
      "mdd": -0.317392
     },
     {
      "start": "2022-03-14",
      "end": "2026-10-28",
      "sharpe": 0.789291,
      "qqq_sharpe": 0.927901,
      "cagr": 0.110001,
      "volatility": 0.146309,
      "mdd": -0.157578
     }
    ],
    "beats_qqq": false,
    "turnover": 3.7103
   },
   "etf_momentum_6m/top2": {
    "start": "2017-08-02",
    "end": "2026-10-28",
    "sharpe": 0.680626,
    "qqq_sharpe": 0.898491,
    "cagr": 0.120921,
    "volatility": 0.196696,
    "mdd": -0.295782,
    "halves": [
     {
      "start": "2017-08-02",
      "end": "2022-03-14",
      "sharpe": 0.722459,
      "qqq_sharpe": 0.870668,
      "cagr": 0.140325,
      "volatility": 0.213751,
      "mdd": -0.295782
     },
     {
      "start": "2022-03-14",
      "end": "2026-10-28",
      "sharpe": 0.636313,
      "qqq_sharpe": 0.927901,
      "cagr": 0.101892,
      "volatility": 0.178099,
      "mdd": -0.232
     }
    ],
    "beats_qqq": false,
    "turnover": 4.8562
   },
   "etf_momentum_6m/top3": {
    "start": "2017-08-02",
    "end": "2026-10-28",
    "sharpe": 0.687023,
    "qqq_sharpe": 0.898491,
    "cagr": 0.114022,
    "volatility": 0.18172,
    "mdd": -0.298457,
    "halves": [
     {
      "start": "2017-08-02",
      "end": "2022-03-14",
      "sharpe": 0.646404,
      "qqq_sharpe": 0.870668,
      "cagr": 0.116447,
      "volatility": 0.202541,
      "mdd": -0.298457
     },
     {
      "start": "2022-03-14",
      "end": "2026-10-28",
      "sharpe": 0.750413,
      "qqq_sharpe": 0.927901,
      "cagr": 0.111608,
      "volatility": 0.15827,
      "mdd": -0.205223
     }
    ],
    "beats_qqq": false,
    "turnover": 3.6376
   },
   "operating_margin_change/top2": {
    "start": "2017-08-02",
    "end": "2026-10-28",
    "sharpe": 0.643812,
    "qqq_sharpe": 0.898491,
    "cagr": 0.117557,
    "volatility": 0.206259,
    "mdd": -0.400695,
    "halves": [
     {
      "start": "2017-08-02",
      "end": "2022-03-14",
      "sharpe": 0.488283,
      "qqq_sharpe": 0.870668,
      "cagr": 0.08833,
      "volatility": 0.226356,
      "mdd": -0.400695
     },
     {
      "start": "2022-03-14",
      "end": "2026-10-28",
      "sharpe": 0.842394,
      "qqq_sharpe": 0.927901,
      "cagr": 0.147498,
      "volatility": 0.184069,
      "mdd": -0.192977
     }
    ],
    "beats_qqq": false,
    "turnover": 2.1826
   },
   "operating_margin_change/top3": {
    "start": "2017-08-02",
    "end": "2026-10-28",
    "sharpe": 0.71887,
    "qqq_sharpe": 0.898491,
    "cagr": 0.126684,
    "volatility": 0.192182,
    "mdd": -0.353277,
    "halves": [
     {
      "start": "2017-08-02",
      "end": "2022-03-14",
      "sharpe": 0.496659,
      "qqq_sharpe": 0.870668,
      "cagr": 0.085251,
      "volatility": 0.209398,
      "mdd": -0.353277
     },
     {
      "start": "2022-03-14",
      "end": "2026-10-28",
      "sharpe": 0.994111,
      "qqq_sharpe": 0.927901,
      "cagr": 0.169595,
      "volatility": 0.17333,
      "mdd": -0.22222
     }
    ],
    "beats_qqq": false,
    "turnover": 1.6733
   },
   "above_50d/top2": {
    "start": "2017-08-02",
    "end": "2026-10-28",
    "sharpe": 0.35982,
    "qqq_sharpe": 0.898491,
    "cagr": 0.049608,
    "volatility": 0.18018,
    "mdd": -0.307605,
    "halves": [
     {
      "start": "2017-08-02",
      "end": "2022-03-14",
      "sharpe": 0.258814,
      "qqq_sharpe": 0.870668,
      "cagr": 0.032264,
      "volatility": 0.202219,
      "mdd": -0.307605
     },
     {
      "start": "2022-03-14",
      "end": "2026-10-28",
      "sharpe": 0.498486,
      "qqq_sharpe": 0.927901,
      "cagr": 0.067201,
      "volatility": 0.155124,
      "mdd": -0.231559
     }
    ],
    "beats_qqq": false,
    "turnover": 8.0754
   },
   "above_50d/top3": {
    "start": "2017-08-02",
    "end": "2026-10-28",
    "sharpe": 0.400996,
    "qqq_sharpe": 0.898491,
    "cagr": 0.056121,
    "volatility": 0.174781,
    "mdd": -0.34106,
    "halves": [
     {
      "start": "2017-08-02",
      "end": "2022-03-14",
      "sharpe": 0.314032,
      "qqq_sharpe": 0.870668,
      "cagr": 0.042912,
      "volatility": 0.194648,
      "mdd": -0.34106
     },
     {
      "start": "2022-03-14",
      "end": "2026-10-28",
      "sharpe": 0.518584,
      "qqq_sharpe": 0.927901,
      "cagr": 0.069466,
      "volatility": 0.15243,
      "mdd": -0.208467
     }
    ],
    "beats_qqq": false,
    "turnover": 7.4934
   },
   "near_52w_high/top2": {
    "start": "2017-08-02",
    "end": "2026-10-28",
    "sharpe": 0.539687,
    "qqq_sharpe": 0.898491,
    "cagr": 0.084117,
    "volatility": 0.180419,
    "mdd": -0.373485,
    "halves": [
     {
      "start": "2017-08-02",
      "end": "2022-03-14",
      "sharpe": 0.608457,
      "qqq_sharpe": 0.870668,
      "cagr": 0.107996,
      "volatility": 0.202978,
      "mdd": -0.373485
     },
     {
      "start": "2022-03-14",
      "end": "2026-10-28",
      "sharpe": 0.460552,
      "qqq_sharpe": 0.927901,
      "cagr": 0.060807,
      "volatility": 0.154677,
      "mdd": -0.313381
     }
    ],
    "beats_qqq": false,
    "turnover": 4.5288
   },
   "near_52w_high/top3": {
    "start": "2017-08-02",
    "end": "2026-10-28",
    "sharpe": 0.686497,
    "qqq_sharpe": 0.898491,
    "cagr": 0.106639,
    "volatility": 0.168856,
    "mdd": -0.340589,
    "halves": [
     {
      "start": "2017-08-02",
      "end": "2022-03-14",
      "sharpe": 0.676261,
      "qqq_sharpe": 0.870668,
      "cagr": 0.117218,
      "volatility": 0.191397,
      "mdd": -0.340589
     },
     {
      "start": "2022-03-14",
      "end": "2026-10-28",
      "sharpe": 0.716707,
      "qqq_sharpe": 0.927901,
      "cagr": 0.096185,
      "volatility": 0.142881,
      "mdd": -0.157816
     }
    ],
    "beats_qqq": false,
    "turnover": 3.3102
   },
   "eps_ttm/top2": {
    "start": "2017-08-02",
    "end": "2026-10-28",
    "sharpe": 0.49811,
    "qqq_sharpe": 0.898491,
    "cagr": 0.082255,
    "volatility": 0.198911,
    "mdd": -0.350544,
    "halves": [
     {
      "start": "2017-08-02",
      "end": "2022-03-14",
      "sharpe": 0.373592,
      "qqq_sharpe": 0.870668,
      "cagr": 0.0587,
      "volatility": 0.215053,
      "mdd": -0.350544
     },
     {
      "start": "2022-03-14",
      "end": "2026-10-28",
      "sharpe": 0.649401,
      "qqq_sharpe": 0.927901,
      "cagr": 0.106277,
      "volatility": 0.181424,
      "mdd": -0.258597
     }
    ],
    "beats_qqq": false,
    "turnover": 2.2917
   },
   "eps_ttm/top3": {
    "start": "2017-08-02",
    "end": "2026-10-28",
    "sharpe": 0.602656,
    "qqq_sharpe": 0.898491,
    "cagr": 0.101042,
    "volatility": 0.190289,
    "mdd": -0.372734,
    "halves": [
     {
      "start": "2017-08-02",
      "end": "2022-03-14",
      "sharpe": 0.326577,
      "qqq_sharpe": 0.870668,
      "cagr": 0.047463,
      "volatility": 0.2101,
      "mdd": -0.372734
     },
     {
      "start": "2022-03-14",
      "end": "2026-10-28",
      "sharpe": 0.955659,
      "qqq_sharpe": 0.927901,
      "cagr": 0.157225,
      "volatility": 0.168202,
      "mdd": -0.252159
     }
    ],
    "beats_qqq": false,
    "turnover": 2.4008
   },
   "gross_margin_change/top2": {
    "start": "2017-08-02",
    "end": "2026-10-28",
    "sharpe": 0.732188,
    "qqq_sharpe": 0.898491,
    "cagr": 0.132734,
    "volatility": 0.197327,
    "mdd": -0.333115,
    "halves": [
     {
      "start": "2017-08-02",
      "end": "2022-03-14",
      "sharpe": 0.577596,
      "qqq_sharpe": 0.870668,
      "cagr": 0.107603,
      "volatility": 0.218698,
      "mdd": -0.333115
     },
     {
      "start": "2022-03-14",
      "end": "2026-10-28",
      "sharpe": 0.937794,
      "qqq_sharpe": 0.927901,
      "cagr": 0.158374,
      "volatility": 0.17343,
      "mdd": -0.201366
     }
    ],
    "beats_qqq": false,
    "turnover": 2.0734
   },
   "gross_margin_change/top3": {
    "start": "2017-08-02",
    "end": "2026-10-28",
    "sharpe": 0.76681,
    "qqq_sharpe": 0.898491,
    "cagr": 0.134231,
    "volatility": 0.187818,
    "mdd": -0.352873,
    "halves": [
     {
      "start": "2017-08-02",
      "end": "2022-03-14",
      "sharpe": 0.742275,
      "qqq_sharpe": 0.870668,
      "cagr": 0.144936,
      "volatility": 0.213541,
      "mdd": -0.352873
     },
     {
      "start": "2022-03-14",
      "end": "2026-10-28",
      "sharpe": 0.819579,
      "qqq_sharpe": 0.927901,
      "cagr": 0.123651,
      "volatility": 0.15805,
      "mdd": -0.238189
     }
    ],
    "beats_qqq": false,
    "turnover": 1.5642
   }
  },
  "validation": {
   "revenue_ttm": {
    "signal": "revenue_ttm",
    "top": 2,
    "full": {
     "start": "2017-08-02",
     "end": "2026-10-28",
     "sharpe": 1.021514,
     "qqq_sharpe": 0.898491,
     "cagr": 0.209558,
     "volatility": 0.208031,
     "mdd": -0.304693
    },
    "halves": [
     {
      "start": "2017-08-02",
      "end": "2022-03-14",
      "sharpe": 1.023594,
      "qqq_sharpe": 0.870668,
      "cagr": 0.222616,
      "volatility": 0.220585,
      "mdd": -0.304693
     },
     {
      "start": "2022-03-14",
      "end": "2026-10-28",
      "sharpe": 1.022912,
      "qqq_sharpe": 0.927901,
      "cagr": 0.19667,
      "volatility": 0.194761,
      "mdd": -0.231061
     }
    ],
    "grid": [
     {
      "top": 1,
      "signal": "revenue_q",
      "start": "2017-08-02",
      "end": "2026-10-28",
      "sharpe": 1.163321,
      "qqq_sharpe": 0.898491,
      "cagr": 0.298059,
      "volatility": 0.252322,
      "mdd": -0.311566,
      "beats_qqq": true,
      "months_held": {
       "XLK": 36,
       "XLF": 20,
       "XLV": 2,
       "XLY": 2,
       "XLP": 0,
       "XLE": 41,
       "XLI": 0,
       "XLB": 0,
       "XLU": 3,
       "XLRE": 0,
       "XLC": 7
      }
     },
     {
      "top": 2,
      "signal": "revenue_q",
      "start": "2017-08-02",
      "end": "2026-10-28",
      "sharpe": 1.06713,
      "qqq_sharpe": 0.898491,
      "cagr": 0.217744,
      "volatility": 0.204864,
      "mdd": -0.297256,
      "beats_qqq": true,
      "months_held": {
       "XLK": 77,
       "XLF": 26,
       "XLV": 8,
       "XLY": 5,
       "XLP": 4,
       "XLE": 44,
       "XLI": 0,
       "XLB": 11,
       "XLU": 15,
       "XLRE": 0,
       "XLC": 32
      }
     },
     {
      "top": 3,
      "signal": "revenue_q",
      "start": "2017-08-02",
      "end": "2026-10-28",
      "sharpe": 0.809472,
      "qqq_sharpe": 0.898491,
      "cagr": 0.149571,
      "volatility": 0.19665,
      "mdd": -0.341265,
      "beats_qqq": false,
      "months_held": {
       "XLK": 106,
       "XLF": 36,
       "XLV": 28,
       "XLY": 7,
       "XLP": 10,
       "XLE": 49,
       "XLI": 5,
       "XLB": 24,
       "XLU": 21,
       "XLRE": 3,
       "XLC": 44
      }
     },
     {
      "top": 1,
      "signal": "revenue_2q",
      "start": "2017-08-02",
      "end": "2026-10-28",
      "sharpe": 1.114502,
      "qqq_sharpe": 0.898491,
      "cagr": 0.282625,
      "volatility": 0.252692,
      "mdd": -0.311566,
      "beats_qqq": true,
      "months_held": {
       "XLK": 34,
       "XLF": 20,
       "XLV": 5,
       "XLY": 1,
       "XLP": 0,
       "XLE": 43,
       "XLI": 0,
       "XLB": 0,
       "XLU": 0,
       "XLRE": 0,
       "XLC": 8
      }
     },
     {
      "top": 2,
      "signal": "revenue_2q",
      "start": "2017-08-02",
      "end": "2026-10-28",
      "sharpe": 1.067254,
      "qqq_sharpe": 0.898491,
      "cagr": 0.219368,
      "volatility": 0.20638,
      "mdd": -0.297256,
      "beats_qqq": true,
      "months_held": {
       "XLK": 76,
       "XLF": 25,
       "XLV": 12,
       "XLY": 7,
       "XLP": 6,
       "XLE": 50,
       "XLI": 0,
       "XLB": 4,
       "XLU": 8,
       "XLRE": 1,
       "XLC": 33
      }
     },
     {
      "top": 3,
      "signal": "revenue_2q",
      "start": "2017-08-02",
      "end": "2026-10-28",
      "sharpe": 0.890441,
      "qqq_sharpe": 0.898491,
      "cagr": 0.168984,
      "volatility": 0.197915,
      "mdd": -0.341265,
      "beats_qqq": false,
      "months_held": {
       "XLK": 104,
       "XLF": 35,
       "XLV": 27,
       "XLY": 9,
       "XLP": 9,
       "XLE": 53,
       "XLI": 3,
       "XLB": 25,
       "XLU": 18,
       "XLRE": 3,
       "XLC": 47
      }
     },
     {
      "top": 1,
      "signal": "revenue_ttm",
      "start": "2017-08-02",
      "end": "2026-10-28",
      "sharpe": 1.078198,
      "qqq_sharpe": 0.898491,
      "cagr": 0.256833,
      "volatility": 0.239293,
      "mdd": -0.378552,
      "beats_qqq": true,
      "months_held": {
       "XLK": 34,
       "XLF": 21,
       "XLV": 5,
       "XLY": 0,
       "XLP": 0,
       "XLE": 39,
       "XLI": 0,
       "XLB": 0,
       "XLU": 0,
       "XLRE": 0,
       "XLC": 12
      }
     },
     {
      "top": 2,
      "signal": "revenue_ttm",
      "start": "2017-08-02",
      "end": "2026-10-28",
      "sharpe": 1.021514,
      "qqq_sharpe": 0.898491,
      "cagr": 0.209558,
      "volatility": 0.208031,
      "mdd": -0.304693,
      "beats_qqq": true,
      "months_held": {
       "XLK": 73,
       "XLF": 29,
       "XLV": 15,
       "XLY": 2,
       "XLP": 0,
       "XLE": 42,
       "XLI": 1,
       "XLB": 11,
       "XLU": 6,
       "XLRE": 0,
       "XLC": 43
      }
     },
     {
      "top": 3,
      "signal": "revenue_ttm",
      "start": "2017-08-02",
      "end": "2026-10-28",
      "sharpe": 0.858041,
      "qqq_sharpe": 0.898491,
      "cagr": 0.161297,
      "volatility": 0.197609,
      "mdd": -0.345966,
      "beats_qqq": false,
      "months_held": {
       "XLK": 98,
       "XLF": 38,
       "XLV": 42,
       "XLY": 10,
       "XLP": 4,
       "XLE": 43,
       "XLI": 9,
       "XLB": 16,
       "XLU": 12,
       "XLRE": 6,
       "XLC": 55
      }
     }
    ],
    "grid_wins": 6,
    "cost_0.1pct": {
     "start": "2017-08-02",
     "end": "2026-10-28",
     "sharpe": 1.004296,
     "qqq_sharpe": 0.898491,
     "cagr": 0.205268,
     "volatility": 0.208052,
     "mdd": -0.304696
    },
    "passes": false
   },
   "momentum_12_1": {
    "signal": "momentum_12_1",
    "top": 2,
    "full": {
     "start": "2017-08-02",
     "end": "2026-10-28",
     "sharpe": 0.947025,
     "qqq_sharpe": 0.898491,
     "cagr": 0.184366,
     "volatility": 0.200463,
     "mdd": -0.342482
    },
    "halves": [
     {
      "start": "2017-08-02",
      "end": "2022-03-14",
      "sharpe": 0.903991,
      "qqq_sharpe": 0.870668,
      "cagr": 0.193465,
      "volatility": 0.223745,
      "mdd": -0.342482
     },
     {
      "start": "2022-03-14",
      "end": "2026-10-28",
      "sharpe": 1.018556,
      "qqq_sharpe": 0.927901,
      "cagr": 0.175357,
      "volatility": 0.174192,
      "mdd": -0.169692
     }
    ],
    "grid": [
     {
      "top": 1,
      "signal": "momentum_9_1",
      "start": "2017-08-02",
      "end": "2026-10-28",
      "sharpe": 0.809061,
      "qqq_sharpe": 0.898491,
      "cagr": 0.178864,
      "volatility": 0.239446,
      "mdd": -0.382507,
      "beats_qqq": false,
      "months_held": {
       "XLK": 17,
       "XLF": 10,
       "XLV": 10,
       "XLY": 7,
       "XLP": 0,
       "XLE": 29,
       "XLI": 4,
       "XLB": 8,
       "XLU": 18,
       "XLRE": 2,
       "XLC": 6
      }
     },
     {
      "top": 2,
      "signal": "momentum_9_1",
      "start": "2017-08-02",
      "end": "2026-10-28",
      "sharpe": 0.870804,
      "qqq_sharpe": 0.898491,
      "cagr": 0.167259,
      "volatility": 0.20147,
      "mdd": -0.34604,
      "beats_qqq": false,
      "months_held": {
       "XLK": 42,
       "XLF": 27,
       "XLV": 13,
       "XLY": 13,
       "XLP": 4,
       "XLE": 36,
       "XLI": 16,
       "XLB": 17,
       "XLU": 29,
       "XLRE": 11,
       "XLC": 14
      }
     },
     {
      "top": 3,
      "signal": "momentum_9_1",
      "start": "2017-08-02",
      "end": "2026-10-28",
      "sharpe": 0.875116,
      "qqq_sharpe": 0.898491,
      "cagr": 0.155955,
      "volatility": 0.185853,
      "mdd": -0.322315,
      "beats_qqq": false,
      "months_held": {
       "XLK": 55,
       "XLF": 32,
       "XLV": 24,
       "XLY": 21,
       "XLP": 15,
       "XLE": 41,
       "XLI": 32,
       "XLB": 32,
       "XLU": 37,
       "XLRE": 20,
       "XLC": 24
      }
     },
     {
      "top": 1,
      "signal": "momentum_12_1",
      "start": "2017-08-02",
      "end": "2026-10-28",
      "sharpe": 1.014815,
      "qqq_sharpe": 0.898491,
      "cagr": 0.235581,
      "volatility": 0.236758,
      "mdd": -0.311566,
      "beats_qqq": true,
      "months_held": {
       "XLK": 26,
       "XLF": 12,
       "XLV": 8,
       "XLY": 5,
       "XLP": 0,
       "XLE": 26,
       "XLI": 6,
       "XLB": 4,
       "XLU": 16,
       "XLRE": 0,
       "XLC": 8
      }
     },
     {
      "top": 2,
      "signal": "momentum_12_1",
      "start": "2017-08-02",
      "end": "2026-10-28",
      "sharpe": 0.947025,
      "qqq_sharpe": 0.898491,
      "cagr": 0.184366,
      "volatility": 0.200463,
      "mdd": -0.342482,
      "beats_qqq": true,
      "months_held": {
       "XLK": 44,
       "XLF": 25,
       "XLV": 17,
       "XLY": 11,
       "XLP": 3,
       "XLE": 34,
       "XLI": 19,
       "XLB": 15,
       "XLU": 27,
       "XLRE": 9,
       "XLC": 18
      }
     },
     {
      "top": 3,
      "signal": "momentum_12_1",
      "start": "2017-08-02",
      "end": "2026-10-28",
      "sharpe": 0.872153,
      "qqq_sharpe": 0.898491,
      "cagr": 0.156391,
      "volatility": 0.187284,
      "mdd": -0.363948,
      "beats_qqq": false,
      "months_held": {
       "XLK": 56,
       "XLF": 33,
       "XLV": 29,
       "XLY": 19,
       "XLP": 15,
       "XLE": 42,
       "XLI": 33,
       "XLB": 27,
       "XLU": 37,
       "XLRE": 17,
       "XLC": 25
      }
     },
     {
      "top": 1,
      "signal": "momentum_15_1",
      "start": "2017-08-02",
      "end": "2026-10-28",
      "sharpe": 0.745624,
      "qqq_sharpe": 0.898491,
      "cagr": 0.165975,
      "volatility": 0.247828,
      "mdd": -0.311566,
      "beats_qqq": false,
      "months_held": {
       "XLK": 36,
       "XLF": 13,
       "XLV": 6,
       "XLY": 4,
       "XLP": 1,
       "XLE": 27,
       "XLI": 3,
       "XLB": 3,
       "XLU": 9,
       "XLRE": 1,
       "XLC": 8
      }
     },
     {
      "top": 2,
      "signal": "momentum_15_1",
      "start": "2017-08-02",
      "end": "2026-10-28",
      "sharpe": 0.636276,
      "qqq_sharpe": 0.898491,
      "cagr": 0.113743,
      "volatility": 0.201937,
      "mdd": -0.360591,
      "beats_qqq": false,
      "months_held": {
       "XLK": 45,
       "XLF": 29,
       "XLV": 22,
       "XLY": 8,
       "XLP": 7,
       "XLE": 31,
       "XLI": 22,
       "XLB": 10,
       "XLU": 21,
       "XLRE": 8,
       "XLC": 19
      }
     },
     {
      "top": 3,
      "signal": "momentum_15_1",
      "start": "2017-08-02",
      "end": "2026-10-28",
      "sharpe": 0.74448,
      "qqq_sharpe": 0.898491,
      "cagr": 0.130125,
      "volatility": 0.188797,
      "mdd": -0.368333,
      "beats_qqq": false,
      "months_held": {
       "XLK": 63,
       "XLF": 34,
       "XLV": 28,
       "XLY": 16,
       "XLP": 15,
       "XLE": 38,
       "XLI": 45,
       "XLB": 21,
       "XLU": 32,
       "XLRE": 15,
       "XLC": 26
      }
     }
    ],
    "grid_wins": 2,
    "cost_0.1pct": {
     "start": "2017-08-02",
     "end": "2026-10-28",
     "sharpe": 0.906381,
     "qqq_sharpe": 0.898491,
     "cagr": 0.174895,
     "volatility": 0.200597,
     "mdd": -0.343281
    },
    "passes": false
   }
  }
 }
}