Piotroski Score is a discrete scoring system that rates a company's financial strength on a scale of 0 to 9 based on nine fundamental criteria spanning profitability, leverage, liquidity, and operating efficiency. Developed by Stanford accounting professor Joseph D. Piotroski in a landmark 2000 paper, the F-Score has become one of the most widely used quantitative tools in value investing — providing a systematic way to separate financially strong companies from weak ones, even when both appear "cheap" by traditional valuation metrics.
This guide covers everything you need to know about the Piotroski Score: what each of the nine criteria measures, how to calculate the score, how to use it for stock screening, its proven track record in academic research, and how to implement it efficiently using MarketXLS in Excel.
What Does the Piotroski Score Indicate?
The Piotroski Score acts as a financial health report card. It answers a simple but powerful question: Is this company getting stronger or weaker?
Traditional value investing focuses on finding cheap stocks — companies with low price-to-book ratios, low PE ratios, or high dividend yields. The problem is that many stocks are cheap for good reasons: deteriorating fundamentals, rising debt, or declining profitability. Buying these "value traps" can be devastating.
Piotroski's insight was that you can improve value investing returns dramatically by adding a quality filter. The F-Score separates genuinely undervalued companies (temporarily out of favor but fundamentally sound) from companies that deserve their low valuations (weak and getting weaker).
Score interpretation:
- 8-9: Excellent financial health — strong buy signal for value investors
- 6-7: Good financial health — solid candidates worth further analysis
- 4-5: Average — mixed signals, requires deeper investigation
- 2-3: Weak — financial deterioration, caution warranted
- 0-1: Very weak — significant financial distress, avoid
The 9 Piotroski Score Criteria Explained
The F-Score evaluates nine binary criteria organized into three categories. Each criterion scores either 1 (pass) or 0 (fail).
Category 1: Profitability (4 Criteria)
Criterion 1: Return on Assets (ROA)
- Score 1 if: Current year ROA > 0
- What it measures: Is the company generating a profit from its assets?
- Why it matters: A company that can't generate positive returns on its assets has fundamental problems regardless of valuation
Criterion 2: Operating Cash Flow (CFO)
- Score 1 if: Current year operating cash flow > 0
- What it measures: Is the company generating real cash from operations?
- Why it matters: Earnings can be manipulated through accounting, but cash flow is harder to fake. Positive CFO means the company can fund its operations
Criterion 3: Change in ROA (ΔROA)
- Score 1 if: Current year ROA > Prior year ROA
- What it measures: Is profitability improving?
- Why it matters: A company with improving profitability is getting stronger, not just surviving
Criterion 4: Cash Flow vs. Earnings (Accruals)
- Score 1 if: Operating cash flow > Net income (ROA)
- What it measures: Is earnings quality high?
- Why it matters: When cash flow exceeds reported earnings, it suggests conservative accounting. When earnings exceed cash flow, the company may be using aggressive accounting to inflate reported results
Category 2: Leverage, Liquidity & Source of Funds (3 Criteria)
Criterion 5: Change in Leverage (Long-Term Debt/Assets)
- Score 1 if: Current leverage ratio < Prior year leverage ratio
- What it measures: Is the company reducing its debt burden?
- Why it matters: Declining leverage improves financial stability and reduces bankruptcy risk
Criterion 6: Change in Current Ratio (Liquidity)
- Score 1 if: Current ratio (current assets / current liabilities) > Prior year
- What it measures: Can the company meet its short-term obligations?
- Why it matters: Improving liquidity means the company has more cushion against short-term financial stress
Criterion 7: Share Dilution
- Score 1 if: No new shares issued in the current year (shares outstanding ≤ prior year)
- What it measures: Is management diluting existing shareholders?
- Why it matters: Companies that issue equity when their stock is cheap are destroying shareholder value. No dilution shows management confidence and financial discipline
Category 3: Operating Efficiency (2 Criteria)
Criterion 8: Change in Gross Margin
- Score 1 if: Current gross margin > Prior year gross margin
- What it measures: Is the company maintaining or growing pricing power?
- Why it matters: Expanding margins indicate competitive strength, pricing power, or improving efficiency
Criterion 9: Change in Asset Turnover
- Score 1 if: Current asset turnover (revenue / total assets) > Prior year
- What it measures: Is the company using its assets more efficiently?
- Why it matters: Higher turnover means the company generates more revenue per dollar of assets — a sign of operational excellence
Calculating the Piotroski Score: Step-by-Step
Manual Calculation
To calculate the F-Score manually, you need two years of financial statement data (current and prior year). Here's the process:
- Gather income statement, balance sheet, and cash flow statement data for both years
- Calculate each of the nine metrics
- Score each as 1 or 0
- Sum all nine scores
Calculating with MarketXLS in Excel
MarketXLS makes Piotroski Score calculation straightforward. The dedicated function handles all nine criteria automatically:
Get the Piotroski F-Score directly:
=PiotroskiFScore("AAPL")
This single function returns the total F-Score (0-9) by automatically pulling the necessary financial data and calculating all nine criteria.
Using Component Functions for Deeper Analysis
For investors who want to see the individual components, MarketXLS provides the underlying financial data:
Profitability metrics:
=Revenue("AAPL") — Total revenue
=hf_revenue("AAPL", 2024, 2) — Historical quarterly revenue
=PERatio("AAPL") — Price-to-earnings ratio
Fundamental data for manual scoring:
=MarketCapitalization("AAPL") — Market cap for size context
=Last("AAPL") — Current stock price
=DividendYield("AAPL") — Dividend yield
=DividendPerShare("AAPL") — Dividend per share
By pulling these components individually, you can build a detailed Piotroski analysis worksheet that shows not just the total score but how close each criterion is to flipping — giving you forward-looking insight into whether the score is likely to improve or deteriorate.
Building a Piotroski Screening Spreadsheet
Here's a practical layout for screening multiple stocks:
| Column | Header | Formula (Row 2) |
|---|---|---|
| A | Ticker | AAPL |
| B | Price | =Last(A2) |
| C | PE Ratio | =PERatio(A2) |
| D | Market Cap | =MarketCapitalization(A2) |
| E | Revenue | =Revenue(A2) |
| F | Div Yield | =DividendYield(A2) |
| G | F-Score | =PiotroskiFScore(A2) |
Enter ticker symbols in column A, and all data populates automatically. Sort by F-Score (column G) to find the highest-scoring companies.
Piotroski Score Track Record: What the Research Shows
Piotroski's Original 2000 Paper
In his seminal paper "Value Investing: The Use of Historical Financial Statement Information to Separate Winners from Losers," Piotroski studied high book-to-market (value) stocks from 1976 to 1996. His findings were remarkable:
- A strategy of buying high F-Score stocks (7-9) and shorting low F-Score stocks (0-2) generated an average annual return of 23%
- High F-Score stocks outperformed low F-Score stocks by an average of 7.5% annually
- The strategy was effective across different market capitalizations and time periods
Subsequent Research
Multiple follow-up studies have confirmed the F-Score's effectiveness:
- International markets: The score has been validated in European, Asian, and emerging markets, though effectiveness varies by region
- Different time periods: Studies extending through the 2000s and 2010s continue to show outperformance for high F-Score value stocks
- Combination with other metrics: Research shows that combining the Piotroski Score with other value indicators (low PE, low price-to-book) produces even stronger results than using any single metric alone
How to Use the Piotroski Score in Practice
As a Value Investing Filter
The most common application is as a quality overlay on a value screen:
- Start with value stocks: Screen for stocks with low PE ratios using
=PERatio("TICKER"), low price-to-book ratios, or high dividend yields - Apply the Piotroski filter: Calculate F-Score using
=PiotroskiFScore("TICKER")and keep only stocks scoring 7+ - Conduct further analysis: Review remaining candidates' competitive position, management quality, and growth prospects
This approach systematically eliminates value traps — stocks that are cheap because they deserve to be.
As a Sell Signal
The Piotroski Score isn't just for buying. Monitor scores on your existing holdings:
- A dropping F-Score (especially falling from 7+ to below 5) may signal deteriorating fundamentals before the market fully prices it in
- Watch for specific criteria flipping — a company that starts issuing shares (Criterion 7) or seeing declining margins (Criterion 8) may be in early-stage trouble
Sector-Specific Considerations
The Piotroski Score works best for capital-intensive businesses where balance sheet metrics like leverage and asset turnover are meaningful. Consider these sector nuances:
| Sector | F-Score Effectiveness | Notes |
|---|---|---|
| Industrials | High | Classic value companies, all 9 criteria relevant |
| Consumer Staples | High | Stable financials make year-over-year comparisons meaningful |
| Financials | Moderate | Different capital structure; leverage criteria need adjustment |
| Technology | Moderate | High growth may score poorly on some criteria despite strength |
| Utilities | Moderate | Regulated returns and high leverage are normal, not warning signs |
| Biotech/Pharma | Low | Pre-revenue companies will always score poorly |
| REITs | Low | Required payouts and leverage structures distort the score |
Limitations of the Piotroski Score
While powerful, the F-Score has important limitations that every investor should understand:
Backward-Looking Nature
The score is based entirely on historical financial statements. By the time annual reports are filed, the data may be 3-6 months old. A company's financial health can change significantly in that time, especially during economic downturns or industry disruptions.
Accounting Manipulation Risk
Because the score relies on accounting data, it's vulnerable to earnings management. Companies can:
- Time revenue recognition to inflate results
- Reclassify expenses to improve margins
- Manipulate working capital timing to boost cash flow
- Use off-balance-sheet arrangements to hide leverage
Growth Company Bias
High-growth companies often score poorly on several criteria:
- They may issue shares to fund growth (Criterion 7 = 0)
- They may increase leverage to invest in expansion (Criterion 5 = 0)
- Their ROA may decline as they invest ahead of revenue (Criterion 3 = 0)
A low F-Score for a growth company doesn't necessarily mean it's financially weak — it may be investing aggressively for the future.
Industry Norms Ignored
The score treats all industries the same, but normal financial structures vary dramatically:
- Banks naturally carry high leverage
- Utilities have regulated returns that limit ROA improvement
- Tech companies often have minimal tangible assets, making asset-based ratios less meaningful
No Valuation Component
The Piotroski Score measures financial quality, not valuation. A company can have a perfect 9 score but still be overvalued. The score should always be used alongside valuation metrics — never as a standalone buy signal.
Advanced Piotroski Analysis Techniques
Trend Analysis: Tracking F-Score Changes
Instead of looking at a single snapshot, track how the F-Score changes over time. Use MarketXLS to pull quarterly financial data:
=hf_revenue("AAPL", 2024, 1) — Q1 2024 revenue
=hf_revenue("AAPL", 2024, 2) — Q2 2024 revenue
=hf_revenue("AAPL", 2024, 3) — Q3 2024 revenue
=hf_revenue("AAPL", 2024, 4) — Q4 2024 revenue
A rising F-Score trend is more bullish than a static high score. A company improving from 4 to 7 may offer better returns than one that's been at 8 for years, because the improving trajectory hasn't been fully priced in yet.
Composite Scoring
Combine the Piotroski Score with other fundamental metrics for a more complete picture:
Value + Quality Screen:
- Low PE ratio:
=PERatio("TICKER")< 15 - High F-Score:
=PiotroskiFScore("TICKER")≥ 7 - Reasonable dividend:
=DividendYield("TICKER")> 1% - Adequate market cap:
=MarketCapitalization("TICKER")> $1B
Momentum + Quality Screen:
- High F-Score:
=PiotroskiFScore("TICKER")≥ 7 - Above 50-day SMA:
=Last("TICKER")>=SimpleMovingAverage("TICKER", 50) - RSI not overbought:
=RSI("TICKER")< 70
Geographic Diversification
Research shows the Piotroski Score works across global markets. Consider applying it to:
- US large-cap value stocks
- International developed market stocks
- Emerging market stocks (where information asymmetry makes fundamental screening even more valuable)
Impact of Economic Cycles on the Piotroski Score
The F-Score's effectiveness varies across economic cycles:
During Expansions
- Most companies score well as revenue grows and profitability improves
- High scores may be less discriminating — even weak companies look good in a rising tide
- Focus on other differentiators alongside the F-Score
During Recessions
- Scores become highly discriminating — companies with strong fundamentals separate from weak ones
- High F-Score stocks tend to decline less than low F-Score stocks
- The best time to use the Piotroski Score for stock picking
During Recoveries
- The most rewarding period for F-Score investors
- Companies that maintained high scores through a recession often outperform dramatically in recovery
- Low-scoring companies that survived may see rapid F-Score improvement, offering turnaround opportunities
Frequently Asked Questions
Is a Piotroski Score of 6 good?
A score of 6 is above average and indicates moderately strong financial health. The company meets six of nine criteria, suggesting more positives than negatives. However, it's worth examining which specific criteria scored 0 — some failures (like declining ROA or increasing leverage) are more concerning than others (like a minor decrease in current ratio). For strict value investing, most practitioners prefer scores of 7 or higher.
Can the Piotroski Score predict stock performance?
Research consistently shows that high F-Score value stocks outperform low F-Score value stocks over 1-2 year holding periods. However, the score is not a timing tool — it doesn't predict short-term price movements. It works best as a selection filter within a broader value investing framework, not as a standalone trading signal. Combine it with valuation metrics and technical analysis for better results.
How often should the Piotroski Score be updated?
Ideally, update the score quarterly when new financial statements are released. Annual updates align with the original methodology but quarterly reviews let you catch deterioration earlier. MarketXLS functions like =PiotroskiFScore("AAPL") automatically use the latest available data, so recalculating is as simple as refreshing your spreadsheet.
Does the Piotroski Score work for growth stocks?
The score was designed for value stocks and works best in that context. Growth companies often score poorly because they issue shares, increase leverage, and sacrifice short-term profitability for long-term growth — all of which reduce the F-Score. A low score on a growth stock doesn't necessarily indicate weakness. For growth investing, consider supplementing with metrics like revenue growth rate, gross margin expansion, and free cash flow trajectory.
Can companies manipulate their Piotroski Score?
Companies can influence individual criteria through accounting choices (timing of revenue recognition, expense classification, working capital management). However, manipulating all nine criteria simultaneously without genuinely improving financial health is extremely difficult. The multi-dimensional nature of the score provides natural protection against manipulation. Cross-referencing with cash flow data (Criterion 4) adds another check, since cash is harder to fabricate than accounting earnings.
How do I screen for high Piotroski Score stocks in Excel?
Use MarketXLS to build a screening spreadsheet. Enter a list of ticker symbols in column A, use =PiotroskiFScore(A2) to calculate the F-Score, and add columns for =PERatio(A2), =Revenue(A2), and =DividendYield(A2) for context. Sort by F-Score to identify the strongest companies.
Summary
The Piotroski Score is a powerful, research-backed tool for identifying financially strong companies among cheap stocks. Its nine criteria cover profitability, leverage, liquidity, and operating efficiency — providing a comprehensive financial health assessment that can dramatically improve value investing returns.
Key takeaways:
- Scores of 7-9 indicate strong financial health and historically outperform
- Scores of 0-3 signal financial weakness and should generally be avoided
- The score works best as a quality filter on top of a value screen, not as a standalone signal
- Combine with valuation metrics like PE ratio and dividend yield for best results
- Track trends — an improving score can be more bullish than a static high score
- Use
=PiotroskiFScore("TICKER")in MarketXLS for instant calculation across any stock
Whether you're screening for undervalued gems or filtering out value traps, the Piotroski Score gives you a systematic, evidence-based framework for better investment decisions.
Ready to start screening? Visit MarketXLS or get MarketXLS for instant F-Score calculations in Excel.
Here is the template you might want to check out: F-score Template.
Use AI driven search for all functions on MarketXLS here:
Download from the link below, a sample spreadsheet created with MarketXLS Spreadsheet builder
Note this spreadsheet will pull latest data if you have MarketXLS installed. If you do not have MarketXLS consider subscribing here
Relevant blogs that you can read to learn more about the topic
SPX Options Historical Data — In-Depth Analysis & Trends The Ultimate Guide to Real-Time Option Data in Excel 0DTE Theta Decay: What Every Trader Should Know