This is Quant500: we score S&P 500 companies every market day from public SEC data. Free, no account — today's ranking.
Zacks advertises 23.89% a year since 1988. Its own disclaimer explains how.
Nobody needs to be accused of anything. The number in the advertising and the fine print underneath it sit on the same page, and they say different things. All we did was read both, look up their actual funds at the SEC, and check what peer-reviewed research has found using their database. It makes for a short article.
“These returns are not the returns of actual portfolios”
That is their own disclaimer. The portfolios that produce the 23.89% annual figure are hypothetical, equally weighted, rebalanced monthly, and pay zero transaction costs.
01What “zero transaction costs” means when you rebalance every month
This is the line that decides whether a strategy exists or not.
A portfolio rebalanced every month buys and sells constantly. Every trade pays a commission, pays the spread between the bid and the ask, and pushes the price against itself a little. That toll is not an accounting detail: in concentrated, high-turnover portfolios it is the difference between an idea and a business.
We know because we measured it on ourselves, and it stings. The 20-stock multi-factor portfolio we publish returns 16.75% a year gross since March 2011. Charging every trade in the cheapest scenario we know how to model — a €100,000 portfolio at an electronic broker paying €0.30 a trade — the toll takes 160 to 200 basis points a year, and what is left sits between 14.41% and 14.88%.
Between 1.9 and 2.3 points of annual return disappear into execution alone, and that is the best version. With €10,000 at a traditional bank charging €20 a trade, the same strategy stops making money at all: −17.9% a year. Commissions are not a discount on the result; sometimes they are the entire result. A backtest that books that toll at zero is not being optimistic: it is measuring something else.
Our figures come from carteras.json (the file that paints the site) and costes_estimados.json, generated by medir_costes.py, which rebuilds the portfolio across all 186 rebalances and charges every trade with the estimated spread of its company on its day. They are published, with the method written out, on the methodology page, and the full portfolio has its own page.
02Their real funds, against their own benchmark
No hypotheticals here: there are shareholders, fees, and a prospectus filed with the SEC.
Zacks also runs exchange-traded funds with real money. The 2026 Form 485BPOS prospectus publishes what they returned and what they measure themselves against — the Russell 3000, their choice:
| Fund | Return | Its benchmark | Result |
|---|---|---|---|
| ZECP | 8.65% | 10.74% | behind |
| SMIZ | 20.28% | 24.23% | behind |
| GROZ | 16.97% | 11.63% | ahead |
Two of three behind their own yardstick. And the one that wins has only eleven months of history: eleven months does not separate skill from luck anywhere, least of all here.
There are also two Zacks-branded ETFs that no longer exist: they were liquidated. That is not a reproach — closing a fund that does not gather assets is ordinary in this industry — but it is exactly why any track record of surviving funds reads better than what actually happened: the ones that went badly are no longer in the table. We know something about that, and we wrote it up in the second piece in this series.
03What the one top-tier journal that used their data found
Barber, Lehavy, McNichols and Trueman. Journal of Finance, 2001.
That paper used the Zacks database to study whether following analyst recommendations made money. It found a gross edge of more than 4% a year — the signal was there — and once they paid for the turnover required to capture it, the net result was indistinguishable from zero.
That is exactly the ending of section 01, written twenty-five years earlier and peer reviewed. The signal was not fake. The toll ate it.
And there is a gap worth saying out loud: there is no independent academic verification of the Zacks Rank. Not that it exists and is unflattering. It does not exist.
04Why we could not check it ourselves even if we wanted to
And why almost nobody can.
The Zacks Rank is built on analyst estimate revisions: whether consensus for a company is moving up or down, and when. Reproducing it would require storing that consensus with its date, day by day, for decades. We do not have it: all that is within reach is the last four quarters from Yahoo, which get overwritten every night and therefore cannot be used to look backward without cheating.
That limit is written into our own measurement file, in the “what cannot be measured with this data” section, and we did not write it for this article: it was already there.
Buying the deep history is not an option for a retail investor either. The honest path left is to pay for today's consensus and archive it daily: that gives clean point-in-time data from the day you start and zero history going back. Which leaves the 1988 claim where it was: on their word.
The limitation is declared in medicion_pead.json, field no_se_puede_medir_con_estos_datos, written by medir_pead.py. Literally: “Without that, the Zacks Rank is not reproducible.”
05Now the uncomfortable part: what we do
Because pointing at somebody else's fine print only counts if you show your own.
Our 20-stock multi-factor portfolio publishes 16.75% a year gross against 11.89% for the equal-weighted S&P 500 benchmark over the same window. Three things we say on the same page where we say that:
- Costs are stated separately and measured. Between 160 and 200 basis points a year in the cheapest scenario, plus eight more scenarios in case yours is different. We did not pick that number: it comes from reconstructing every trade.
- The edge is observed, not proven. Across 186 rebalances the t-statistic is 1.11, and the Fama-MacBeth information coefficient gives t = 0.72. Fifteen years of data cannot establish that those four points are skill. We say it in those words, on the site.
- When we find a bias in our own favor, we lower the number. On September 1 we lowered all five published curves. The story, with the script, is in the next piece.
None of this says our portfolio is better than theirs. It says ours can be audited: the simulator rebuilds the curve from 2011 using only what was known on each day, the ranking shows all 500 scores for today, and the series download as CSV with no account.
Before drawing conclusions
Nothing above says the Zacks Rank does not work. It says the advertised figure is measured without costs, that their real-money funds are two of three behind their own benchmark, that the one serious study of their data watched the edge evaporate once turnover was paid for, and that nobody outside the firm has been able to verify it.
The useful question is not “are they lying?” It is: what happens to this number once I charge it for the trades? Ask it of anyone showing you a historical return — us first.
—The other two pieces in this series
Next: What the S&P 500 is · today's ranking · all the guides.
One email, and only when something happens
The account is free, and there is one switch in your profile. With it on, you get an alert the day an executive buys shares in their own company on the open market for more than $250,000 — Form 4 transaction code P — with the link to the filing at the SEC. There is no newsletter, no weekly roundup, no site news: if there are no buys, there is no email. One click turns it on, one click turns it off.
This is not investment advice. Quant500 publishes data and its historical reconstruction. No figure on this page is a suggestion to buy or sell, none of it accounts for your personal situation, and none of it promises anything about the future. Past performance, measured well or measured badly, does not predict future performance.
Published September 1, 2026. Every figure names the file it comes from; those files live in the site's repository and every measurement can be rerun with the same scripts.