Piotroski F-Score Screen
A financial health screen inspired by Joseph Piotroski's F-Score — filtering for improving profitability, leverage, and operating efficiency signals.
What Is the Piotroski F-Score?
Joseph Piotroski, then a professor at the University of Chicago, published "Value Investing: The Use of Historical Financial Statement Information to Separate Winners from Losers" in the Journal of Accounting Research in 2000. His central finding: among low price-to-book stocks, a simple nine-signal scoring system could distinguish the companies that would subsequently outperform from those that would continue to deteriorate — without any qualitative judgment.
The nine signals are grouped into three categories:
Profitability (4 signals):
- ROA is positive
- Operating cash flow is positive
- ROA improved year-over-year
- Accruals (operating cash flow > ROA × assets — a quality-of-earnings signal)
Leverage, liquidity, and source of funds (3 signals):
- Long-term debt ratio decreased year-over-year
- Current ratio improved year-over-year
- No new equity issuance in the past year
Operating efficiency (2 signals):
- Gross margin improved year-over-year
- Asset turnover improved year-over-year
Each signal is binary: 1 if positive, 0 if negative. The F-Score is the sum, ranging from 0 to 9. Piotroski's research found that high-F-Score stocks (8 or 9) outperformed low-F-Score stocks (0 or 1) by approximately 7.5% annually within the low price-to-book universe, from 1976 to 1996.
Subsequent research has generally confirmed the F-Score's effectiveness as a tiebreaker within value screens, though results have been more mixed when applied universally rather than specifically within the low price-to-book universe. Like most quantitative strategies, the alpha has compressed somewhat as the approach has become widely known.
The F-Score is most useful as a negative filter: companies with very low scores (0–2) in a value screen are telling you something is wrong operationally or financially, even if the price looks cheap. The score does not predict growth — it filters for stabilization and improvement in a troubled-looking business.
What this GeminIQ screen approximates: Rather than computing a precise F-Score (which requires year-over-year changes for each signal), this screen applies the most tractable Piotroski conditions as direct metric filters — profitability above zero, positive cash flow, reasonable leverage, and improving efficiency — to surface financially healthy companies that would score well on the F-Score framework.
How to Run This Screen in GeminIQ
Step 1. Open the GeminIQ Screener
Step 2. Add the following filters — each corresponds to a Piotroski signal group:
Profitability signals:
| Filter | Operator | Value |
|---|---|---|
| ROA TTM | ≥ | 5 |
| Operating Profit Margin TTM | ≥ | 5 |
Leverage and liquidity signals:
| Filter | Operator | Value |
|---|---|---|
| Debt Ratio | ≤ | 45 |
| Current Ratio | ≥ | 1.5 |
Efficiency signals:
| Filter | Operator | Value |
|---|---|---|
| Gross Profit Margin TTM | ≥ | 20 |
| Asset Turnover TTM | ≥ | 0.4 |
Step 3. Set Sort By to ROA TTM, direction Descending.
Step 4. For the most faithful Piotroski application, combine this screen with a value filter. Add PB ≤ 2.0 to apply the score specifically within the low price-to-book universe where Piotroski's research documented the strongest results.
GeminIQ Tip: The accrual signal — one of Piotroski's most powerful — measures whether earnings quality is high (cash flow exceeds reported income). Use GeminIQ's Cash Flow view to compare operating cash flow against net income for each candidate. Companies where operating cash flow is consistently well above net income score high on the accrual signal; those where reported income runs far ahead of cash generation are a warning sign the F-Score is designed to flag.
What Aggregator Data Misses for This Screen
The Piotroski F-Score is built on year-over-year changes in balance sheet and income statement ratios. This makes it particularly sensitive to how aggregators handle restatements and reclassifications — because a reclassification that looks like an improvement may not be a genuine operational improvement.
Gross margin comparability. One of Piotroski's signals is an improvement in gross margin. If a company changes its cost classification — moving items from cost of goods sold to operating expenses, or vice versa — this creates an apparent gross margin improvement with no underlying operational change. Aggregators applying normalized templates sometimes smooth out these reclassifications, masking them. GeminIQ preserves the as-filed cost structure, so a reclassification shows up as a discontinuity you can investigate.
Current ratio and lease liabilities. The current portion of operating lease obligations (a component of current liabilities since ASC 842) affects the current ratio. Companies that restructured their lease terms — shortening remaining lease duration, for example — can show an apparent deterioration in the current ratio that is a lease classification artifact rather than a genuine liquidity change. GeminIQ's balance sheet disaggregates current lease liabilities from other current liabilities, allowing a cleaner current ratio analysis.
Asset turnover and acquisition distortion. A large acquisition increases total assets immediately. Asset turnover falls in the acquisition year — a Piotroski-negative signal — even if the acquired business is operationally excellent and will contribute revenue in subsequent periods. This is a known limitation of asset-turnover-based signals for acquisitive companies. Checking the acquisition history directly from GeminIQ's filing timeline lets you flag whether an efficiency signal change reflects a genuine trend or an M&A event.
GeminIQ builds its financial statement database from raw SEC filings, not from third-party financial data APIs.
This screen is educational and does not constitute investment advice. Past performance of any strategy does not guarantee future results.