The Piotroski F-Score distills a company's financial statements into nine pass/fail checks and a single number from 0 to 9. This guide walks through all nine tests, scores a hypothetical firm step by step, and explains where the score is useful and where it breaks down.
The F-Score comes from a 2000 paper by Joseph Piotroski, then an accounting professor at the University of Chicago, titled "Value Investing: The Use of Historical Financial Statement Information to Separate Winners from Losers." His starting observation was practical: portfolios of cheap stocks (those trading at a high book-to-market ratio) earn strong average returns, but that average hides a wide spread. Many high book-to-market names are cheap because they are genuinely deteriorating businesses, while others are sound companies temporarily out of favour. Piotroski wanted a simple, mechanical way to tell the two groups apart using only information already sitting in the financial statements.
His answer was nine binary tests. Each test asks a yes/no question about a company's most recent annual results. A "yes" scores 1 point, a "no" scores 0, and the points sum to a score between 0 and 9. A higher score reflects a firm whose profitability, balance sheet and operating efficiency are improving on the metrics Piotroski selected; a lower score reflects the opposite. The score is descriptive of what the statements show — it is one input among many, not a verdict on the business or a forecast of its stock.
The nine signals fall into three groups: four on profitability, three on leverage and liquidity, and two on operating efficiency. Most compare the latest fiscal year against the prior year, so the score is really a measure of year-over-year direction as much as absolute level.
| Group | # | Signal | Scores 1 point when |
|---|---|---|---|
| Profitability | 1 | Return on assets | ROA is positive this year |
| 2 | Operating cash flow | Cash flow from operations (CFO) is positive | |
| 3 | Change in ROA | ROA is higher than last year | |
| 4 | Accruals / earnings quality | CFO exceeds net income | |
| Leverage & liquidity | 5 | Change in leverage | Long-term debt ratio fell versus last year |
| 6 | Change in current ratio | Current ratio rose versus last year | |
| 7 | Share issuance | No new common shares issued in the year | |
| Operating efficiency | 8 | Change in gross margin | Gross margin rose versus last year |
| 9 | Change in asset turnover | Asset turnover rose versus last year |
The first four signals test whether the company is making money and whether that money is real. Signal 1 asks whether return on assets is positive. Piotroski defined ROA as net income before extraordinary items divided by beginning-of-year total assets — a small detail that matters, since using ending assets or bottom-line net income can nudge the result. Signal 2 asks whether operating cash flow is positive, because a firm can report accounting profit while bleeding cash.
Signal 3 rewards improvement: ROA this year higher than last year. A profitable but decelerating business loses this point, which is why the F-Score captures trend, not just level. Signal 4 is the earnings-quality check and is often the most revealing of the four. It scores 1 when operating cash flow exceeds net income — equivalently, when CFO scaled by assets is greater than ROA. When reported profit runs well ahead of the cash actually collected, the gap is made up of accruals, and heavy accruals have historically been associated with weaker subsequent performance. A firm that fails signal 4 is not doing anything wrong by definition; large accruals often have benign explanations such as a working-capital build ahead of growth. It is simply one signal that earnings and cash are diverging.
The middle group looks at financial flexibility and how the company is funding itself. Signal 5 awards a point when the ratio of long-term debt to total assets falls year over year, on the reasoning that a value firm reducing its reliance on debt is strengthening its position, while one adding leverage may be under pressure. Signal 6 awards a point when the current ratio (current assets over current liabilities) rises, a rough gauge of improving short-term liquidity.
Signal 7 is the source-of-funds check: a point is scored when the firm did not issue new common equity during the year. Piotroski's logic was that a fundamentally sound company usually funds itself internally, so a cheap firm raising fresh equity may be doing so out of necessity, diluting existing owners. This signal is binary and blunt — it does not distinguish a small option-related increase from a large secondary offering — but it flags dilution cheaply.
The final two signals test whether the business is becoming more productive. Signal 8 awards a point when gross margin (gross profit divided by revenue) rises year over year, which can indicate better pricing power, a richer product mix, or lower input costs. Signal 9 awards a point when asset turnover (revenue divided by beginning total assets) rises, indicating the company is generating more sales from the same asset base. Together they decompose improving returns into a margin story and a utilisation story — the same two levers that drive the DuPont breakdown of return on equity.
Consider a hypothetical manufacturer with two years of annual data. All figures are in millions except shares and ratios. Beginning-of-year assets for the current year equal the prior year-end balance of 1,000; for the prior year they equal 900.
| Line item | Prior year | Current year |
|---|---|---|
| Revenue | 800 | 1,000 |
| Gross profit | 320 | 420 |
| Net income | 60 | 90 |
| Operating cash flow | 80 | 120 |
| Total assets (year-end) | 1,000 | 1,100 |
| Long-term debt | 300 | 280 |
| Current assets / current liabilities | 400 / 250 | 500 / 280 |
| Shares outstanding | 100M | 105M |
Now run the nine tests. ROA is 90 / 1,000 = 9.0% this year versus 60 / 900 = 6.7% last year. Long-term debt ratio is 280 / 1,100 = 25.5% versus 300 / 1,000 = 30.0%. The current ratio is 500 / 280 = 1.79 versus 400 / 250 = 1.60. Gross margin is 42% versus 40%. Asset turnover is 1,000 / 1,000 = 1.00 versus 800 / 900 = 0.89.
| # | Test | Result | Point |
|---|---|---|---|
| 1 | ROA positive | 9.0% > 0 | 1 |
| 2 | CFO positive | 120 > 0 | 1 |
| 3 | ROA rising | 9.0% > 6.7% | 1 |
| 4 | CFO > net income | 120 > 90 | 1 |
| 5 | Leverage falling | 25.5% < 30.0% | 1 |
| 6 | Current ratio rising | 1.79 > 1.60 | 1 |
| 7 | No new shares | 105M > 100M (issued) | 0 |
| 8 | Gross margin rising | 42% > 40% | 1 |
| 9 | Asset turnover rising | 1.00 > 0.89 | 1 |
| Total F-Score | 8 / 9 | ||
The firm scores 8 out of 9, losing a single point on signal 7 because it issued 5 million new shares. On Piotroski's scale that lands it firmly in the "fundamentally strong" band. The one failure is informative rather than damning: it simply flags that owners were diluted this year, which a reader might want to understand before drawing conclusions.
Piotroski grouped scores into broad tiers. A score of 8 or 9 marks a company whose statements show broad, consistent improvement; a score of 0 to 2 marks one whose fundamentals are weak or deteriorating across most tests; the middle is mixed. The score was designed to be used as a second filter on stocks that are already cheap — a way to sort a value screen into more-promising and less-promising buckets rather than a stand-alone stock picker.
In his original 1976-1996 sample, Piotroski reported that a strategy of holding high-scoring value stocks while shorting low-scoring ones would have produced a return spread of roughly 23% a year, and that the effect was strongest among small, thinly traded firms with little analyst coverage. That is an academic backtest of historical data, not a promise about any future period or any individual stock; results in later periods and other markets have varied. Investors typically treat the F-Score as one lens among several, alongside valuation, the business context and qualitative judgement.
The F-Score is backward-looking by construction. It reads last year's and the prior year's annual filings, so it says nothing about the future and can lag a fast-changing situation. Because the classic version uses annual data, a firm's score can be stale for much of the year and misses interim quarterly deterioration or recovery.
The most frequent mistakes are mechanical. Using net income including one-off extraordinary items, or ending rather than beginning total assets, produces a different ROA and can flip signals 1, 3 and 9. Applying the score to banks, insurers or REITs is another trap: gross margin, asset turnover and the current ratio are not meaningful for those business models, so several signals become noise. The binary thresholds are deliberately crude — a company that narrowly misses a signal scores the same zero as one that misses by a mile — so two firms with identical F-Scores can be quite different underneath.
The biggest conceptual error is confusing the F-Score with valuation. A high score describes improving fundamentals; it says nothing about whether the stock is cheap. Piotroski always intended it to be applied on top of a value screen, not instead of one. Highly cyclical firms can also swing several points from year to year purely with the cycle, and firms with negative equity or negative denominators can generate misleading ratios that need manual sanity-checking.
Scores of 8 or 9 are generally described as fundamentally strong, and scores of 0 to 2 as weak. The middle range is mixed and usually warrants a closer look at which specific signals passed and failed rather than the headline number alone.
They answer different questions. The Piotroski F-Score measures the breadth of year-over-year fundamental improvement across nine accounting signals. The Altman Z-Score estimates financial distress and bankruptcy risk from a weighted formula of five ratios. A firm can score well on one and poorly on the other.
It can be computed for any non-financial company, but it was designed and tested on high book-to-market value stocks. Its discriminating power was weakest among glamour and richly valued names, so many investors reserve it for the cheaper end of the market.
The classic score is based on annual financial statements, so for most companies it updates once a year when new fiscal-year filings are released. Some practitioners compute trailing or quarterly variants, but those depart from Piotroski's original definition.
Not well. Signals that rely on gross margin, asset turnover and the current ratio do not translate to banks, insurers and other financial firms, whose balance sheets work differently. The score is best suited to industrial, consumer and other operating companies.
A higher score reflects more of the nine tests passing, but it is only a summary of past statements. It does not incorporate price, so a strong-scoring company can still be expensive, and a weak-scoring one can be pricing in known problems. The score is one input, not a conclusion.
Quintarthai computes the Piotroski F-Score as a screener column for US and Canadian equities, calculated deterministically from public filings (SEDAR+/EDGAR) so the same inputs always produce the same score. You can sort and filter the screener by F-Score to combine it with valuation and other fundamentals, and the company deep-dive shows the underlying profitability, leverage and efficiency figures behind each point, letting you see exactly which of the nine signals passed or failed.
INTC on the free Core dashboard at quintarthai.com/app.