In a 12 year machine learning equity backtest, a 35% accurate model beat the S&P 500 on roughly 250 names, by ranking, not picking, and lost its edge with more features.
A 35%-accurate model beat the S&P 500 over twelve years. The model landed at 35% exact-outcome accuracy against a 27% base rate, and the top-20 bucket returned 20.6% a year against a market return of 7.9% over the same window. The win came from how the model ranked stocks; per-name labels were the wrong metric to optimize.
The Brier score, a standard calibration check that scores probability estimates against outcomes on a 0-to-1 scale, was 0.181, and the calibration curve tracked the diagonal across deciles. Cross-validation folds were grouped by ticker so a company never sat on both sides, and index membership was reconstructed as of each vintage, which removes survivorship bias.
The experiment is the work of Antti Rauhala, co-founder of the predictive-database vendor Aito. Rauhala graded roughly 250 S&P 500 members on qualitative 10-K factors (moat, market position, leadership, capital allocation) at three vintages: 2014, 2017, and 2020. The grading was done with an LLM at the time, against a "predictive database" query that returns calibrated probabilities per row. The writeup and the interactive demo are the public record; no independent replication exists.
The author's own limits sit next to those numbers, not at the bottom of the page. The sample is roughly 250 names, the horizon is twelve years, transaction costs are not modeled, the winning sector (semiconductors) is visibly concentrated in the training outcomes, and the LLM-based grader may carry a halo effect for firms that already won during the period. The model in the demo leans on the less-haloed features when both are present, but the halo cannot be fully ruled out from this single experiment. Each of these is named as a known risk in the original post.
The mechanism behind the model is what Aito calls a "predictive database." The vendor describes the category as a database that returns calibrated probabilities per row, with per-feature contribution breakdowns, rather than a model that has to be trained in a separate pipeline. The science page explains it as a naive Bayes-style per-feature log-odds sum: each qualitative factor updates a probability independently, and the calibrated output is the aggregation. The equity experiment is one domain application of that approach, not a separate statistical invention.
After decorrelating sixteen input features, the model's information gain dropped from 0.107 on six decorrelated features to 0.023 on all sixteen. The author reads the drop as weak-signal accumulation: the correlated pairs were already collapsed, so the additional features add independent noise that crosses below the signal floor. The lesson is method-level. In any rank-and-act decision, ordering is the metric that matters, and feature breadth hits a noise floor even after redundancy is removed.
Two falsifiers are worth naming. The first is independent replication with transaction costs and a non-overlapping sector mix; if the 20.6% top-bucket return does not survive those controls, the rank edge disappears. The second is the LLM halo. The grader scores firms on qualitative judgments, and a firm that already won during 2014–2025 may read as higher quality in hindsight. The author runs a per-vintage drift check on the less-haloed features, but the halo cannot be fully ruled out from one experiment.
A general reader can take one rubric from the result. When the decision is which slice to act on, judge by the bucket return; per-call accuracy is the wrong metric to optimize. The blog post carries the full methodology and the disclaimers, and the demo is open to inspection.