Methodology

How the score works, and where it fails.

You should doubt any number that promises better returns. Here is how we built ours, how we tested it and what it cannot do.

What is the MonkScore?

One number from 0 to 100 for each company. It compares the company with its peers in the same industry and region, using the numbers in its financial reports.

A high score means the company is strong on five things at the same time. It does not mean the stock will go up.

What does it look at?

Five questions. Each answer compares the company with its peers.

  1. 1

    Growth

    Is it growing faster than its peers, and can that growth last?

    Revenue growth over several years, and the growth its own profits can fund.

  2. 2

    Profitability

    Does it earn more on what it owns than its peers?

    Profit and free cash flow against assets and capital. One weak measure pulls it down.

  3. 3

    Quality

    Does it reinvest wisely?

    How much profit it keeps, what new capital earns, and operating profit that shows up as cash.

  4. 4

    Market Conviction

    Does the market value it above its peers?

    A high price cannot rescue weak numbers.

  5. 5

    Safety

    Does it show the warning signs that often come before a big loss?

    Value traps, fading growth, profits not backed by cash, and reliance on new outside money. A high Safety score means we see none of them. It does not mean there is no risk.

A weak pillar pulls the whole score down. A company cannot score high by being great at one thing and poor at another.

Each pillar comes from published research, including Novy-Marx, Fama and French, Piotroski and Sloan.

Can a backtest be trusted?

Often not. A backtest can cheat without anyone meaning to. Here are the usual ways, and what we do about each.

Using data from the future

Each score uses only the financial reports that were public on that date, as first reported, never later corrections.

Forgetting the companies that failed

The test covers every US company above our size floor at every quarter-end from 1999 to 2025: 365,193 company-quarters from 12,105 companies. It keeps the 7,914 whose shares later stopped trading, whether they were taken over, delisted or went bankrupt.

Tuning the rules until the past looks good

See Built on ten years. Tested on twenty-seven. Every change to the model gets a new version number and is listed in our public changelog.

Guessing when data is missing

If we cannot measure a company, we show no score. In an average quarter, 661 of the 3,381 companies above our size floor have none. Many are young listings or companies already in trouble, and we never hold them.

Our first test used data that left out many companies that later failed. We knew this and said so. When we got the full data, we ran the test again. The numbers got smaller, and we published them anyway, because honest numbers matter more to us than good ones.

Built on ten years. Tested on twenty-seven.

We designed the MonkScore on 2015–2024 data. Its five pillars, its ratios and the way it combines them were set on those years, and they have not changed since. Later versions fixed bugs, cleaned data and made the rules consistent. None of them refitted the model to the past. We then ran the finished model on every year from 1999 to 2026, including the years before 2015 that played no part in its design. The final test is the future: every quarter since October 2026, we seal our list before the market opens and publish the result, good or bad.

Over 1999 to 2014, years that played no part in its design, the backtest's 90+ stocks returned 2.1 points a year more than the average stock and 6.5 more than the S&P 500.

Did it work in the past?

Yes. Higher scores did better, and the 90+ stocks did best.

Yearly return by score group, 1999 to 2026
6.0%
8.2%
8.7%
9.5%
10.2%
10.3%
10.2%
10.9%
11.5%
12.0%
0–10
10–20
20–30
30–40
40–50
50–60
60–70
70–80
80–90
90–100

Every quarter, all scored companies above our size floor were sorted into ten groups by score and held in equal amounts until the next quarter. Failed companies count at their final price. Before costs.

12.0% a year
Every stock scored 90 or more, held in equal amounts and reviewed each quarter, from 1999 to 2026. Before costs.
8.5% a year
The average stock, held the same way: every company above our size floor, in equal amounts.
8.2% a year
The S&P 500 index, dividends reinvested.
69 of 69
Rolling ten-year periods of the backtest in which the 90+ stocks returned more than the average stock.

Figures are before trading costs. At 0.20% a trade, 12.0% becomes 11.5%.

One middle group did slightly worse than the one below it. The middle groups are too close to rank, so we do not claim a perfect order.

When did it fail?

Often enough that you should know. A good long record still has years that hurt.

  • In the worst fall of the record, the 90+ stocks lost 43%; the average stock lost 49% and the S&P 500 46% over the same months.
  • In 2008 they lost 36%, and in 2022 22%. The score protects against weak companies, not against a falling market.
  • From January 2022 to March 2026, the 90+ stocks gained 25%, well ahead of the 17% of the average stock: the score kept its lead. The S&P 500 gained 46%, carried by its largest companies. From 2022 to 2025, it beat its own equal-weighted version by 5.2 points a year.
  • The score prefers companies the market already values highly. A long rally in cheap stocks works against it.

How sure can we be?

Sure enough to put it on the record. The past results pass the strict tests, and our public record is now testing them live.

Could it be luck?

In the backtest, stocks that scored 90 or more returned 12.0% a year, against 8.5% for the average stock. To check for luck, researchers use a test called the t‑statistic, and most accept a value above 2. Because we tested many versions of the model, we set ourselves a stricter bar: 3, the level research asks of anyone who tests many ideas. After adjusting for risk, the score reached 4.1.

Higher score, higher return

Return rises with the score. The lowest score group returned 6.0% a year and the 90+ group 12.0%, with almost every group in between in order. This matters because a model that only got lucky usually works at the very top and nowhere else. A score that orders the whole market measures something real.

Fewer disasters, more tenfold gains

In the backtest, over ten years, 4.4% of the stocks rated 90+ lost 90% or more of their value, about half the rate for all US stocks (9.5%). At the same time, 2.7% rose tenfold or more, against 1.7% for all US stocks. The score cut the big losses without cutting the big gains.

Beyond known ideas

The score uses ideas that research already knows, such as profitability and quality. After removing six standard academic factors, +1.9 points a year remain before trading costs. The score adds something those factors do not explain.

Large companies too

The lead holds among the largest US companies: 10.8% a year for the 90+ stocks against 8.3% for the largest fifth held in equal amounts. Our performance claims are for US stocks only.

The past shows the method works on 27 years of US data. Only the future can prove it. That is why we publish a sealed, public record every quarter.

What can it not do?

  • It cannot tell you when to be in or out of the market.
  • It says little about the next month. Its evidence is over years.
  • It describes groups of stocks. A single high-scoring stock can still fall.
  • It is not advice for your situation.

What do you keep private?

You can see how the method works. You cannot rebuild it from this page.

We share

  • The five pillars and what each one measures
  • The research each pillar comes from
  • How we combine them
  • The full results, with their limits

We keep

  • The exact ratios
  • The weights
  • How the Safety warning signs are built

How can I check you from now on?

Every quarter, we lock our list of 90+ stocks before the market opens and publish its fingerprint. When the quarter ends, we publish the list and its result, good or bad.

When we find a mistake, we correct this page and say what changed.

See the track record →