If you've ever skimmed an annual report and thought "how do I know this company is actually healthy?" — the Piotroski F-Score is one of the fastest honest answers you can get. It's a 9-point checklist, built by accounting professor Joseph Piotroski in 2000, and it takes maybe 10 minutes to compute by hand once you know where to look.
This post walks you through every one of the 9 checks, explains why each one matters, and then shows a real Apple example so you can see the whole thing working. By the end you'll be able to read an F-Score on any company and know exactly what it's telling you.
TL;DR — what you'll get out of this
- The F-Score is scored 0 to 9. A company passes a test, it gets 1 point. Fails, gets 0. That's it.
- 7–9 = strong, 4–6 = middling, 0–3 = weak. The research paper showed the top bucket beat the bottom bucket by ~7.5% per year.
- The 9 tests split into 3 groups: profitability (4 tests), leverage/liquidity (3 tests), operating efficiency (2 tests).
- It's meant for value stocks — cheap companies where you want to separate "cheap because broken" from "cheap because mispriced". It's less useful on high-growth tech names.
Why Piotroski built it
In the late '90s academics already knew that buying cheap stocks (low price-to-book) beat the market on average. But within that cheap bucket, roughly half the companies were legitimately in trouble — declining business, bleeding cash, drowning in debt. Piotroski's idea was brutally simple: can we use plain accounting signals from the financial statements to separate the healthy cheap companies from the broken cheap companies?
He tested 9 binary signals on 20 years of US data. Companies scoring 8 or 9 on his checklist outperformed companies scoring 0 or 1 by ~7.5% per year on average between 1976 and 1996. The test has been replicated in many markets since, with similar directional results.
The 9 signals, in 3 groups
Group 1: Profitability (4 points)
These ask "is the business making real money right now, and more of it than before?"
1. Positive Net Income (ROA > 0) — Company made a profit this year. Why it matters: losing money is the most basic warning sign. It doesn't disqualify a company (Amazon famously ran negative net income for years while building infrastructure), but combined with the other signals it's informative.
2. Positive Operating Cash Flow — Cash flow from operations is positive. Why it matters: accounting profit can be manipulated. Cash coming in the door is harder to fake. A company with positive net income but negative operating cash flow is a red flag — something's going on with accruals.
3. ROA is Rising vs Last Year — Return on assets this year is higher than last year. Why it matters: momentum in profitability. A one-year snapshot of profit tells you where the company is; the change tells you where it's going.
4. Cash Flow from Operations > Net Income — Operating cash beats accounting profit. Why it matters: this is the "quality of earnings" test. If a company reports $1B in profit but only generates $400M in operating cash, the other $600M is paper — accrual gains that may not materialize. Piotroski wants the cash to be at least as big as the profit.
Group 2: Leverage, Liquidity, Source of Funds (3 points)
These ask "is the balance sheet healthier than last year?"
5. Lower Long-Term Debt Ratio — Long-term debt / total assets is lower than last year. Why it matters: deleveraging is a sign of a management team confident enough in cash flow to pay down debt. The opposite — rising leverage — can mean the company is borrowing to cover shortfalls.
6. Higher Current Ratio — Current assets / current liabilities is higher than last year. Why it matters: improving short-term liquidity. Current ratio below 1 means the company can't cover its next 12 months of bills with its next 12 months of assets. Moving in the right direction is what we want.
7. No New Shares Issued — Shares outstanding didn't increase vs last year. Why it matters: dilution robs existing shareholders. If a company had to issue new shares to raise cash, it's a subtle signal the business couldn't fund itself from operations. The test passes when share count is flat or declining (buybacks).
Group 3: Operating Efficiency (2 points)
These ask "is the company getting more productive per dollar of sales?"
8. Gross Margin Up vs Last Year — Gross margin (revenue minus cost of goods sold, divided by revenue) is higher than last year. Why it matters: pricing power or cost discipline. Expanding gross margins mean the company can charge more per unit or has found cheaper inputs — both good.
9. Asset Turnover Up vs Last Year — Revenue / total assets is higher than last year. Why it matters: the company is generating more revenue from the same asset base. This catches companies that have quietly become more efficient without it showing up as headline growth.
Adding it up
You run all 9 tests, count the passes, and that's your F-Score — a single number from 0 to 9.
| Score | Verdict | Piotroski's interpretation |
|---|---|---|
| 8–9 | Strong | Fundamentals clearly improving on most dimensions |
| 7 | Decent | Solid with minor soft spots |
| 4–6 | Mixed | Some tailwinds, some headwinds |
| 2–3 | Weak | Deteriorating on most axes |
| 0–1 | Distressed | Every light is blinking red |
A few things the score does not tell you: valuation (it's a health check, not a price check), management quality, moat durability, or whether the industry is in secular decline. It's one lens, not the whole picture.
A live Apple example
Let's run this on Apple (AAPL) using the most recent fiscal year vs the year before. Numbers are simplified for clarity.
Profitability group:
- Positive net income? $97B profit. Pass.
- Positive operating cash flow? $110B. Pass.
- ROA rising? Net income / total assets — this moved from ~27% to ~28%. Pass.
- OCF > Net income? $110B > $97B. Pass.
Subtotal: 4/4.
Leverage / liquidity: 5. Long-term debt ratio lower? Apple reduced long-term debt slightly while total assets held. Pass. 6. Current ratio higher? Moved from 0.88 to 0.87 — basically flat, slightly down. Fail. 7. No new shares? Apple bought back a large amount of stock; share count fell. Pass.
Subtotal: 2/3.
Efficiency: 8. Gross margin up? Expanded from ~43% to ~46%, mostly from services mix. Pass. 9. Asset turnover up? Revenue grew slightly faster than assets. Pass.
Subtotal: 2/2.
Total F-Score: 8 out of 9. Verdict: strong across the board, with the only flag being a slightly low current ratio (Apple famously runs thin working capital because it has enormous negotiating power with suppliers — a pattern that makes the current-ratio test less meaningful for mega-cap tech than for, say, a retailer).
This is a great illustration of why you should never use any single score in isolation. A bank would fail test #6 trivially because banks have completely different balance sheet structures. A Piotroski score is most useful when comparing companies within the same industry and when combined with valuation and narrative.
How to actually use it
A few rules of thumb from the academic literature and practitioner use since 2000:
1. Screen, don't decide. F-Score is great for narrowing a list of 500 cheap companies down to 50 that aren't dying. It's a terrible tool for deciding between two great businesses where both score 8.
2. Pair it with valuation. Piotroski's original research specifically combined F-Score with price-to-book (low P/B cheap names). The combination — cheap and improving — was where the outperformance came from. A high-F-Score company at 40× earnings is a different conversation.
3. Industry matters. Asset-light software companies will show weird F-Scores because asset turnover and current ratio don't mean the same thing for them. Compare within sectors.
4. Watch the trend. A company that moved from F-Score 4 last year to F-Score 8 this year is often more interesting than a company that's been steady at 7. The score is a snapshot; the change is a story.
5. Don't confuse with Altman Z-Score. Z-Score predicts bankruptcy probability — it's a distress model. F-Score measures fundamental improvement. They answer different questions and should both be in your toolkit.
Limitations worth knowing
- Financial companies (banks, insurers) break the model. The balance sheet logic doesn't transfer. Skip F-Score for these.
- Cyclical companies at the bottom of their cycle will look terrible on F-Score exactly when they're most attractive. The score is backward-looking by design.
- Real estate and utilities have unique accounting (heavy depreciation, regulated returns) that mess with the ratios. Use with caution.
- Early-stage growth companies often score low not because they're broken but because they're reinvesting. Piotroski was built for mature, profitable firms.
Try it on any company in 30 seconds
Computing this by hand takes 10 minutes per company if you know where to look in a 10-K. Doing it for 50 companies takes 8 hours.
Sentinellis runs all 9 Piotroski checks automatically on any public company, alongside Altman Z-Score, ROIC-vs-WACC spread, and 90+ other fundamental metrics — all with plain-English explanations and inline citations to the source data. Three reports are free, no credit card.
Related reading
- Altman Z-Score — the bankruptcy predictor that pairs well with F-Score (coming soon)
- ROIC vs WACC — how to tell if a company is actually creating value (coming soon)
- How to read a 10-K in 15 minutes — a skim framework for annual reports (coming soon)
This article is for educational purposes only and is not investment advice. Sentinellis doesn't recommend individual stocks.