Piotroski F-Score: The 9-Point Checklist Value Investors Use
A 9-point accounting scorecard separates cheap-and-strong stocks from cheap-and-collapsing value traps. Here is how it works in 2026.

Key Takeaways
- The F-Score is a 0-to-9 checklist scoring profitability, leverage, and efficiency from a company's last two annual reports.
- A score of 8 or 9 historically signals a fundamentally improving cheap stock; 0 to 2 signals a deteriorating one.
- It works best as a second filter after a value screen — applied to the broad market without a price screen, predictive power drops sharply.
- Names like Coca-Cola (KO), Johnson & Johnson (JNJ), Costco (COST), and Walmart (WMT) tend to score 7+ during stable years; stress shows up in single-quarter score collapses.
In a 20-year academic study, a portfolio of high-Piotroski-score stocks beat the market by roughly ~13.4 percentage points per year. The metric was built by an accounting professor in 2000 — and it remains one of the most reliable filters for separating cheap-and-strong companies from cheap-and-collapsing value traps.
What Is the Piotroski F-Score?
The answer is a fundamental-strength filter for already-cheap stocks. Joseph Piotroski, then an accounting professor at the University of Chicago, published the score in 2000 with a single insight: among low-price-to-book stocks, the ones with strong accounting fundamentals dramatically outperformed those with deteriorating ones.
He turned that insight into a binary 9-question test. Each question is answered yes (1 point) or no (0 points), and the final score ranges from 0 to 9. Stocks scoring 8 or 9 are the "winners" basket; stocks scoring 0 to 2 are the "losers" basket Piotroski recommended avoiding or shorting.
The genius of the score is that it does not require subjective judgment — every input comes directly from the income statement, balance sheet, and cash flow statement. Plug in the numbers, count the points, get a single signal.
If you have used the P/E ratio as a value screen, think of the F-Score as the natural follow-up — P/E tells you something is cheap; the F-Score tells you whether cheap is justified by deteriorating fundamentals (a trap) or unjustified by improving ones (an opportunity).
How to Calculate the 9 Components
The checklist breaks into three categories. Each runs against the prior year's numbers, so calculating it requires the last two annual reports — usually 10-K filings or equivalent.
Profitability (4 points)
- Positive net income? (1 point if yes)
- Positive operating cash flow? (1 point if yes)
- Cash flow from operations greater than net income (high-quality earnings)?
- Return on assets higher than the prior year?
Leverage and Liquidity (3 points)
- Long-term debt-to-total-assets lower than the prior year?
- Current ratio higher than the prior year?
- Did the company avoid issuing new shares (no dilution)?
Operating Efficiency (2 points)
- Gross margin higher than the prior year?
- Asset turnover (revenue / assets) higher than the prior year?
Add the answers up and you get a number between 0 and 9. The questions are deliberately simple because complexity is not the friend of value investing — Piotroski's whole point was that nine cleanly-defined inputs outperform any black-box model.
For a primer on what each component is doing economically, our DuPont analysis explainer shows how ROE decomposes into the same drivers the F-Score is testing.
Why Does This Approach Beat the Market?
The answer is that fundamental momentum is under-priced in cheap stocks. Most low-P/B stocks are cheap because something is genuinely wrong; the market correctly avoids them. But within that bucket, there is a quiet sub-set of companies whose fundamentals are turning around — and the market is slow to notice.
The F-Score is essentially a cheap-and-improving filter. It catches companies where:
- Net income flipped from negative to positive
- Cash flow improved while debt came down
- Margins are widening, not compressing
- Management is not diluting shareholders
That combination — cheap valuation plus improving operating quality plus deleveraging plus no dilution — is exactly the profile that re-rates higher when the market eventually catches up. The 20-year backtest from 1976 to 1996 showed this happening repeatedly across every cycle Piotroski tested.
| Score | Interpretation | Historical Annual Excess Return |
|---|---|---|
| 9 | Best — fully improving | ~+13% to +15% |
| 7-8 | Strong | ~+5% to +8% |
| 4-6 | Mixed | ~0% (market returns) |
| 2-3 | Weak | ~-3% to -6% |
| 0-1 | Worst — deteriorating | ~-7% to -10% |
A more recent equities-lab backtest from 2004 to 2024 confirmed the pattern: portfolios of perfect-9 stocks compounded at roughly ~13% versus around ~9.9% for the S&P 500 over the same period.
When Should You Apply the F-Score?
Apply it after a value screen, never instead of one. Piotroski explicitly designed the score for stocks already filtered to the cheapest 20% of the market by price-to-book or price-to-earnings.
Applied to the entire market with no price screen, the F-Score's predictive power drops sharply because the cheap-stock universe is where the inefficiency lives. Expensive stocks with high F-Scores tend to be priced for perfection already; their multiples leave little room for the fundamental improvement story to surprise upside.
The standard workflow runs in two passes. First, screen for stocks in the bottom quintile of price-to-book or with P/E below the S&P 500 median. Second, calculate the F-Score on the survivors and keep only those scoring 7 or higher.
A reliable signal is when the F-Score has improved by 2 or more points year over year — that combination of "cheap and rapidly improving" is the most asymmetric setup the academic literature has documented.
Real Examples From the 2026 Market
Stocks that consistently score 7 or higher in stable economic years tend to share characteristics: durable revenue, expanding margins, conservative balance sheets, and no buyback-funded share-issuance games.
| Stock | Profile | Recent F-Score Range |
|---|---|---|
| Coca-Cola (KO) | Consumer staple compounder | 7-8 |
| Johnson & Johnson (JNJ) | Healthcare large cap | 7-9 |
| Costco (COST) | Retail compounder | 8-9 |
| Walmart (WMT) | Defensive retail | 7-8 |
| Procter & Gamble (PG) | Consumer staple | 7-8 |
| Mastercard (MA) | Payment network | 8-9 |
These names rarely show up on a deep-value screen — their P/Es are typically above market median. So the F-Score by itself is not enough to recommend them as buys. But it tells you the underlying business engines are healthy.
The more useful application is on names like Ford (F), General Motors (GM), or AT&T (T) — historically cheap stocks where the question is whether the cheapness is justified. A trailing F-Score above 7 on a P/B-cheap industrial is the textbook setup. The same pattern applies to Bank of America (BAC) and JPMorgan (JPM) when bank P/Bs compress in recessions — high F-Scores during a P/B drawdown have historically led to strong rebounds.
Common Mistakes That Destroy the Edge
The first mistake is using the F-Score on a single point in time without comparing to the prior year. Five of the nine questions are change-based (ROA up? margin up? leverage down?), so a snapshot is meaningless without history.
The second mistake is applying it to financial companies and pre-profit growth stocks. Banks like JPM or BAC need adjustments because their balance sheets are structured differently — debt is the raw material. Pre-profit tech makes the profitability components meaningless.
The third mistake is treating the F-Score as a buy-the-stock signal in isolation. It is a fundamental-strength filter, not a valuation tool. A high F-Score on a stock trading at ~50x earnings tells you the business is improving, but does not tell you it is cheap. Pair it with P/E, P/B, or EV/EBITDA work to complete the picture.
The fourth mistake is ignoring sector context. A 7 on an industrial during an upcycle and a 7 on a defensive during a recession mean different things — the same number, very different signals. Use sector medians as the comparison anchor, not the broad market.
When NOT to Use the Piotroski F-Score
Three scenarios. First, financial sector. Banks and insurers have balance sheets where the standard F-Score components do not translate cleanly. Use sector-specific quality scores instead.
Second, early-stage growth companies. The score requires positive cash flow and net income for full marks; pre-profit names will mechanically score 0 to 3 even if the business is healthy. Stick with the Magic Formula or Quality Compounder framework for high-growth names.
Third, macro-driven cyclicals at the top of the cycle. Energy and mining names can post a perfect 9 right before commodity prices roll over and crush profitability. The score tells you what already happened; it does not forecast the cycle. Combine it with cycle-stage analysis for these.
Pro tip from quant practitioners: the score works best on small-cap value, where analyst coverage is thin and the market is slowest to reprice fundamental improvements. Among large caps, the F-Score is more of a confirmation tool than a discovery tool.
Ready to analyze these stocks yourself? Search any ticker on MainRatios to see valuations from 6 legendary investors - free.
Master fundamental analysis
Free guides to P/E, DCF, free cash flow, margin analysis and more.
Learn fundamentalsFrequently Asked Questions
Yes. Backtests through 2024 show the high-score basket continues to outperform low-score baskets, with the strongest effect among small-cap value stocks. Large-cap effects are smaller but still positive.


