The Piotroski F-Score
Nine yes-or-no questions about a company's books, worth one point each. It isn't a valuation — it never tells you what a stock is worth. It answers a different, quieter question that saves value investors from their most common mistake: this stock is cheap, but is it cheap because it's good, or cheap because it's dying?
01Where it comes from
In 2000, University of Chicago accounting professor Joseph Piotroski published a paper with an uncomfortable observation: buying cheap stocks — low price-to-book — works on average, but the bucket is littered with wrecks. For every bargain there's a “value trap”: a stock that's cheap because the business is genuinely falling apart. He wanted a dead-simple way to tell them apart using nothing but the financial statements.
His answer was the F-Score: nine binary tests of financial health, each worth a point, for a total from 0 to 9. In his sample, separating the cheap stocks by score worked remarkably well — the strongest scorers went on to beat the weakest by roughly 7.5 percentage points a year. Same cheap bucket; the score sorted the survivors from the traps.
02The nine tests
There's no equation here — it's a scorecard. Each test asks “is this true?” and a yes earns a point. They fall into three groups:
- Positive net income. The company actually made money this year.
- Positive operating cash flow. And the profit shows up as real cash.
- Return on assets improved versus last year.
- Cash flow exceeds net income — earnings backed by cash, not accounting accruals.
- Lower long-term debt than last year — deleveraging, not borrowing to survive.
- Higher current ratio — improving short-term solvency.
- No new shares issued — not diluting owners to raise cash.
- Higher gross margin — more profit per dollar of sales.
- Higher asset turnover — the asset base is working harder.
8–9 is a strong, improving company; 0–2 is a business deteriorating on nearly every front. Most stocks land in the middle.
Read the nine again and you'll notice most ask “better than last year?” — not “good?” The F-Score measures direction, not altitude. Hold that thought.
03A healthy score
Linamar — our value stock from the earlier modules — computed from its latest filings:
Seven of nine. Profitable, cash-generative, not leaning on debt or dilution. Recall it also screened cheap on the Graham Number (−36%) — and that combination, cheap and a high F-Score, is exactly the pairing Piotroski designed the tool to find. Cheapness says “worth a look”; the F-Score says “and it isn't falling apart.” (The live page breaks out which of the nine it passed.)
04What the score won't tell you
Here's the trap the F-Score can walk you into if you read it as a quality grade. Meet Canopy Growth — the cannabis company — scored on the same nine tests:
Four out of nine — a middling score you might read as “meh, mediocre.” But this is a company with over $11 billion in accumulated losses and an Altman Z of −13. How does a business like that score a 4? Because most of the nine tests reward improvement, not health— and a company cutting costs and shrinking losses can rack up “better than last year” points while still burning cash. The score isn't wrong; it's answering “is this improving?”, not “is this good?”
Three rules for the F-Score
- Direction, not altitude.A rising score off a terrible base is still a terrible business. Always read it next to absolute profitability and solvency (that's what the Altman Z and the warning-signs panel are for).
- It's a filter, not a buy signal. Piotroski built it to sort already-cheap stocks. A high F-Score on an expensive stock tells you nothing about price — pair it with a valuation like the Graham Number or a DCF.
- Weak on financials, and backward-looking.Some tests (gross margin, asset turnover) barely apply to banks, and every test looks only at the last two years — it can't see a cliff that hasn't hit the statements yet.
Used the way Piotroski intended — as the second question after “is it cheap?” — the F-Score is one of the most reliable, easy-to-compute quality checks ever devised. Used as a standalone grade, it will hand a value trap a passing mark. This is why the app always shows it beside a valuation and a solvency read, never alone.
See all nine checks on any stock
The research page breaks the F-Score into its nine individual tests — green for each one a company passes — right next to its valuation and its Altman Z, so you see health, price, and solvency in one glance.