Rankings of models submitted to the Common Task Framework
Test period: 1990–2023 · all models are evaluated on the full hindcast sample
| Rank | Model Name | Author | Language | Files | Sharpe Ratio | Annual Return | Volatility | Max Drawdown |
|---|---|---|---|---|---|---|---|---|
|
1
|
Markowitz-ML with a Clustered Barra Risk Model Submitted Oct 8, 2026 · Scored Oct 9, 2026 | Xiaoxuan Shang | python | 43.95% | 10.00% | -7.63% | ||
|
2
|
DARE: Disagreement-Adaptive Risk-Aware Ensemble Submitted Oct 8, 2026 · Scored Oct 9, 2026 | python | 41.76% | 10.00% | -6.89% | |||
|
3
|
Ensemble Markowitz Submitted Oct 7, 2026 · Scored Oct 9, 2026 | Julie Chen Olivia Zhu | python | 41.35% | 10.00% | -3.51% | ||
|
4
|
MAXSER-PR (+ LightGBM) Submitted Sep 22, 2026 · Scored Sep 24, 2026 | Ruizhao Huang | python | 41.10% | 10.00% | -10.87% | ||
|
5
|
Peer-Relative Clustering LightGBM+Barra Submitted Oct 8, 2026 · Scored Oct 9, 2026 | python | 41.09% | 10.00% | -6.04% | |||
|
6
|
CRE: GBM + ridge, factor and sample-covariance books Submitted Oct 6, 2026 · Scored Oct 7, 2026 | Cnn Wnn | python | 40.00% | 10.00% | -10.91% | ||
|
7
|
XGB+MLP + two risk models (beta neutral) First submitted Sep 17, 2026 · Resubmitted Sep 27, 2026 · Scored Sep 28, 2026 | Abhinav Keshri | python | 39.83% | 10.00% | -13.90% | ||
|
8
|
LightGBM with penalised VCV (MV - GMV) raw features Submitted Sep 6, 2026 · Scored Sep 8, 2026 | Paul Geertsema | python | 39.72% | 10.00% | -13.10% | ||
|
9
|
Disagreement-Adaptive Risk-Aware Ensemble Submitted Oct 7, 2026 · Scored Oct 7, 2026 | Cindy Wang | python | 39.60% | 10.00% | -10.88% | ||
|
10
|
Two-View GBM + Factor MVO Submitted Oct 7, 2026 · Scored Oct 8, 2026 | R | 39.55% | 10.00% | -4.71% | |||
|
11
|
Aurelia_Markowitz-ML_Model Submitted Oct 5, 2026 · Scored Oct 8, 2026 | Yanzhu Gong | python | 39.14% | 10.00% | -7.83% | ||
|
12
|
Boosted Stock Rankings in a Two-Book Mean-Variance Portfolio Submitted Oct 8, 2026 · Scored Oct 9, 2026 | R | 38.61% | 10.00% | -6.92% | |||
|
13
|
Boosted Trees with Two Risk Models Submitted Oct 7, 2026 · Scored Oct 9, 2026 | python | 37.36% | 10.00% | -12.16% | |||
|
14
|
XGB+two risk models (beta neutral) Submitted Sep 17, 2026 · Scored Sep 23, 2026 | Abhinav Keshri | python | 37.09% | 10.00% | -17.23% | ||
|
15
|
LightGBM with penalised VCV (MV - GMV) Submitted Aug 30, 2026 · Scored Sep 6, 2026 | Paul Geertsema | python | 36.36% | 10.00% | -11.16% | ||
|
16
|
Factor Forecasting and Regularized Portfolio Allocation Submitted Oct 8, 2026 · Scored Oct 9, 2026 | Alfredo Vara Suarez | python | 35.86% | 10.00% | -18.24% | ||
|
17
|
Placebo-Audited LightGBM with Size-Block Covariance Submitted Oct 5, 2026 · Scored Oct 6, 2026 | python | 35.81% | 10.00% | -8.43% | |||
|
18
|
Ridge-LightGBM Ensemble with Covariance Shrinkage Submitted Oct 7, 2026 · Scored Oct 7, 2026 | Zoey zzz | python | 35.57% | 10.00% | -9.49% | ||
|
19
|
Coupled Factor Portfolio First submitted Aug 10, 2026 · Resubmitted Aug 19, 2026 · Scored Aug 22, 2026 | Hema Srikar Ankem | python | 33.66% | 10.00% | -8.16% | ||
|
20
|
Nonlinear IPCA with Precision Weighting Submitted Jul 19, 2026 · Scored Jul 20, 2026 | Szymon Kubiak | python | 33.06% | 10.00% | -11.96% | ||
|
21
|
XGB + two risk models Submitted Sep 16, 2026 · Scored Sep 23, 2026 | Abhinav Keshri | python | 33.00% | 10.00% | -15.87% | ||
|
22
|
Time Series Low Rank Portfolio Submitted Sep 7, 2026 · Scored Sep 8, 2026 | Hema Srikar Ankem | python | 33.00% | 10.00% | -8.53% | ||
|
23
|
Systematic Orthogonal - PLS - MVO Submitted Sep 20, 2026 · Scored Sep 21, 2026 | python | 31.32% | 10.00% | -12.86% | |||
|
24
|
Risk-Adjusted Ensemble Alpha Model Submitted Oct 6, 2026 · Scored Oct 8, 2026 | R | 31.19% | 10.00% | -8.29% | |||
|
25
|
Grassman Dimension Reduction Factor Portfolio Submitted Sep 3, 2026 · Scored Sep 7, 2026 | Alexandre Banh & Hema Srikar Ankem | python | 30.40% | 10.00% | -6.94% | ||
|
26
|
Volatility-Targeted Shrinkage MLP Submitted Jul 31, 2026 · Scored Jul 31, 2026 | Hema Srikar Ankem | python | 29.15% | 10.00% | -10.02% | ||
|
27
|
Stacked Return Forecast with Forecast-Aligned Factor Risk Model Submitted Oct 7, 2026 · Scored Oct 9, 2026 | python | 28.75% | 10.00% | -24.04% | |||
|
28
|
3-Signal Blend + Factor-Risk Mean-Variance Optimization Submitted Oct 7, 2026 · Scored Oct 8, 2026 | R | 28.67% | 10.00% | -6.79% | |||
|
29
|
Implementation of the Nonlinear Portfolio Transformer Submitted Apr 3, 2026 · Scored Apr 4, 2026 | Gareth Campbell | python | 27.88% | 10.00% | -18.74% | ||
|
30
|
XGBoost Rank + PCA-20 Shrunk Markowitz Submitted Oct 6, 2026 · Scored Oct 7, 2026 | python | 27.84% | 10.00% | -10.56% | |||
|
31
|
Awake stock portfolios Submitted Oct 7, 2026 · Scored Oct 7, 2026 | Bo Li | R | 27.75% | 10.00% | -14.66% | ||
|
32
|
XGBoost–Ledoit-Wolf Constrained MVP Submitted Feb 19, 2026 · Scored Feb 21, 2026 | RR | python | 27.14% | 10.00% | -12.54% | ||
|
33
|
Beta Neutral Cross-Sectional MLP Submitted Jul 26, 2026 · Scored Jul 30, 2026 | Hema Srikar Ankem | python | 26.04% | 10.00% | -15.91% | ||
|
34
|
Benchmark: Markowitz-ML Benchmark | — | R | 25.21% | 10.00% | -16.63% | ||
|
35
|
Decay-Aware CCAR Submitted Oct 8, 2026 · Scored Oct 9, 2026 | python | 25.06% | 10.00% | -20.88% | |||
|
36
|
Portfolio-ML with random features Submitted Oct 7, 2026 · Scored Oct 8, 2026 | Kai Brusseleers | R | 25.04% | 10.00% | -12.08% | ||
|
37
|
EPO v1 Submitted Aug 22, 2026 · Scored Aug 25, 2026 | srikar & dev | python | 24.55% | 10.00% | -10.75% | ||
|
38
|
Multi-Scale LightGBM Ensemble Submitted Sep 5, 2026 · Scored Sep 5, 2026 | Jo Jo | python | 24.43% | 10.00% | -9.33% | ||
|
39
|
Ridge-XGBoost Barra Long-Short Submitted Oct 8, 2026 · Scored Oct 9, 2026 | python | 23.74% | 10.00% | -20.02% | |||
|
40
|
Cross-Sectional Rank Boosting + Factor-Risk MVO Submitted Jul 14, 2026 · Scored Jul 15, 2026 | Abhinav Keshri | python | 23.53% | 10.00% | -14.21% | ||
|
41
|
Markowitz ML Model Submitted Oct 8, 2026 · Scored Oct 9, 2026 | python | 23.07% | 10.00% | -16.33% | |||
|
42
|
Residual LightGBM-Ridge Risk-Aware Portfolio Submitted Oct 6, 2026 · Scored Oct 7, 2026 | 020 ovo | python | 21.91% | 10.00% | -15.28% | ||
|
43
|
LightGBM + Investment Families Submitted Apr 22, 2026 · Scored Apr 28, 2026 | Darren Li | python | 21.85% | 10.00% | -19.40% | ||
|
44
|
MAXSER Submitted Jan 13, 2026 · Scored Jan 13, 2026 | Yingying Li | R | 20.26% | 10.00% | -13.23% | ||
|
45
|
Stacked EN-XGB and Factor-Risk Mean-Variance Submitted Oct 7, 2026 · Scored Oct 8, 2026 | Dinica Hooda | R | 20.17% | 10.00% | -30.30% | ||
|
46
|
Benchmark: Instrumented PCA factor portfolio Benchmark | — | python | 19.48% | 10.00% | -9.92% | ||
|
47
|
Walk-Forward Factor Selection with Meta-Selection Submitted Sep 24, 2026 · Scored Sep 25, 2026 | sam Morrissey | python | 17.72% | 10.00% | -12.62% | ||
|
48
|
WF-MetaSelect Submitted Jul 30, 2026 · Scored Jul 31, 2026 | Luke McLaughlin | python | 17.19% | 10.00% | -18.56% | ||
|
49
|
Maximised Sharpe ratio Submitted Sep 13, 2026 · Scored Sep 14, 2026 | cora burns | python | 17.16% | 10.00% | -18.57% | ||
|
50
|
Ridge-ElasticNet Mean-Variance Submitted Oct 7, 2026 · Scored Oct 7, 2026 | Yohei Ueki | python | 16.49% | 10.00% | -24.76% | ||
|
51
|
Walk-Forward Factor Selection with Meta-Selection Submitted Sep 30, 2026 · Scored Oct 1, 2026 | Caolán Martin | python | 16.32% | 10.00% | -19.56% | ||
|
52
|
Walk-Forward Factor Selection with Trailing Meta-Selection Submitted Jun 28, 2026 · Scored Jun 30, 2026 | Gaurav Chhabra | python | 16.07% | 10.00% | -17.28% | ||
|
53
|
ClusterSharpe Selection + MeanVar Weighting + Linear LS Submitted Mar 10, 2026 · Scored Mar 11, 2026 | Gareth Campbell | python | 15.01% | 10.00% | -20.71% | ||
|
54
|
Benchmark: Kozak-Nagel-Santosh rank-weighted factors portfolio Benchmark | — | R | 14.20% | 10.00% | -8.12% | ||
|
55
|
Bull/Bear Naive Submitted Feb 20, 2026 · Scored Feb 24, 2026 | Kavita Kar | python | 13.76% | 10.00% | -23.86% | ||
|
56
|
Annual Expanding-Window Ridge Submitted Oct 8, 2026 · Scored Oct 9, 2026 | Matthew Kanzler | R | 12.61% | 10.00% | -31.38% | ||
|
57
|
Cross-Sectional Return Ensemble (CSRE) Submitted Feb 21, 2026 · Scored Feb 23, 2026 | Anna Siamionava | python | 12.59% | 10.00% | -29.00% | ||
|
58
|
Rolling Factor Selection with RankSharpe Weighting Submitted Mar 9, 2026 · Scored Mar 10, 2026 | Gareth Campbell | python | 11.89% | 10.00% | -15.19% | ||
|
59
|
Grid-Optimized Group Lasso (GOGL) Submitted Feb 19, 2026 · Scored Feb 20, 2026 | mbn | python | 11.03% | 10.00% | -29.37% | ||
|
60
|
Adaptive Ensemble with Dynamic Risk Management Submitted Feb 22, 2026 · Scored Feb 25, 2026 | Angikar Ghosal | python | 10.46% | 10.00% | -28.06% | ||
|
61
|
MVRLE Submitted Feb 19, 2026 · Scored Feb 20, 2026 | MVO | R | 10.14% | 10.00% | -30.10% | ||
|
62
|
Benchmark: Minimum Variance Benchmark | — | R | 9.47% | 10.00% | -25.72% | ||
|
63
|
Benchmark: Factor-ML Benchmark | — | R | 8.90% | 10.00% | -21.03% | ||
|
64
|
Dynamically Regularized MVP (test subset) Submitted Feb 5, 2026 · Scored Feb 6, 2026 | Mads Hebsgaard | python | 8.70% | 10.00% | -31.48% | ||
|
65
|
Parsimonious Imputed Expanding Lasso Submitted Feb 16, 2026 · Scored Feb 17, 2026 | Lukas Jaeger | python | 8.69% | 10.00% | -28.63% | ||
|
66
|
Cross-Sectional Ridge–Forest Ensemble First submitted Feb 19, 2026 · Resubmitted Feb 21, 2026 · Scored Feb 23, 2026 | Hassan Mir | R | 8.65% | 10.00% | -27.76% | ||
|
67
|
Ridge & XGB Submitted Jan 9, 2026 · Scored Jan 9, 2026 | Thanh Tuan Le | python | 8.57% | 10.00% | -34.69% | ||
|
68
|
Elastic Net with Inverse-Variance Weights Submitted Feb 19, 2026 · Scored Feb 19, 2026 | Jakob Jorsal Rasmussen | python | 7.59% | 10.00% | -28.66% | ||
|
69
|
Dynamically Regularized MVP Submitted Jan 31, 2026 · Scored Jan 31, 2026 | Mads Hebsgaard | python | 7.30% | 10.00% | -38.72% | ||
|
70
|
Elastic Net (pooled) Submitted Nov 27, 2025 · Scored Nov 27, 2025 | Rob Capellini | python | 6.69% | 10.00% | -31.17% | ||
|
71
|
Neural Net First submitted Nov 18, 2025 · Resubmitted Nov 18, 2025 · Scored Nov 18, 2025 | Rob Capellini | python | 6.47% | 10.00% | -30.92% | ||
|
72
|
Elastic Net (stockwise) Submitted Nov 16, 2025 · Scored Nov 16, 2025 | Rob Capellini | python | 6.44% | 10.00% | -32.14% | ||
|
73
|
Ridge Tilt Portfolio Submitted Feb 16, 2026 · Scored Feb 17, 2026 | TM | python | 5.89% | 10.00% | -34.08% | ||
|
74
|
Inverse Volatility Weighting Submitted Mar 12, 2026 · Scored Mar 17, 2026 | Yash Dave | python | 5.76% | 10.00% | -35.06% | ||
|
75
|
Agnostic Fundamental Analysis OLS Model Submitted Oct 5, 2026 · Scored Oct 6, 2026 | R | 5.46% | 10.00% | -30.50% | |||
|
76
|
ensemble model Submitted Jan 9, 2026 · Scored Jan 9, 2026 | Lu Li | python | 5.45% | 10.00% | -19.15% | ||
|
77
|
Market Submitted Mar 6, 2026 · Scored Mar 7, 2026 | GC TC | python | 5.44% | 10.00% | -37.42% | ||
|
78
|
Elasticnet XGBoost First submitted Feb 11, 2026 · Resubmitted Feb 17, 2026 · Scored Feb 18, 2026 | DU | python | 5.00% | 10.00% | -44.83% | ||
|
79
|
Benchmark: Equal-weight portfolio Benchmark | — | python | 4.91% | 10.00% | -33.74% | ||
|
80
|
Ridge Regression Submitted Feb 19, 2026 · Scored Feb 20, 2026 | PB | R | 1.48% | 10.00% | -36.80% |
| Rank | Model | Submitted By | Language | Sharpe Ratio |
|---|---|---|---|---|
| Residual Books (LightGBM) | Felix Gehling | PYTHON | ||
| Residual Books (LightGBM & Spectral RMT) | Annie Yeung | PYTHON |
* Scores shown are preliminary and subject to change pending review completion.
Failed A failed status does not necessarily indicate a problem with your model — it may be due to an issue with the data pipeline. If there is a problem specific to your submission, a member of the CTF administration team will contact you directly.
Stalled No recent status updates. No action is needed from you. Stopped Stopped by the CTF team. Processing Status is being updated.
| Model Name | Author | Language | Status | Progress | Submitted |
|---|---|---|---|---|---|
| NIE: Multi-Scale Residual Books for Equity Return | Python | Scoring |
Waiting for the full run on our computing cluster |
1 day ago | |
| Characteristic Correlation Stabilized (CCS) SDF | Mo Pourmohammadi | Python | Scoring |
Waiting for the full run on our computing cluster |
3 days ago |
| Stock Picking Resized by Market Regime Risk | Python | Submitted |
|
4 days ago | |
| Two Signals, One Risk Model | Python | Scoring |
Waiting for the full run on our computing cluster |
5 days ago | |
| Boosted Trees, Clustered Risk (GBM + Ridge, two risk models) | Ruoxi Zhao | Python | Scoring |
Waiting for the full run on our computing cluster |
1 week ago |