How to Screen High-Quality Value Stocks

Geek Bing

Geek Bing

Nov 2, 2025

#Value Investing #Piotroski #F-Score #Financial Metrics
How to Screen High-Quality Value Stocks

Disclaimer: This article is for research and educational purposes only and does not constitute investment advice. Past performance does not guarantee future results.

Value investing sounds simple. Just buy cheap.

But in practice, you’ll quickly realize that finding cheap companies is easy. Filtering out the bad ones is the hard part. When you fall into a value trap, that feeling of “I bought it so cheap, how can it keep dropping?” is like trying to catch a falling knife.

This is exactly the problem the classic paper by Piotroski (2000) set out to solve. Within the large pool of value stocks (high BM / low PB), can we use information already contained in financial statements to separate future winners from losers?

This article will first explain the classic Piotroski F-Score as concisely as possible.

Then I’ll introduce the upgraded (enhanced) F-Score implemented in Chat2Report. It transforms the single-year 0/1 scoring into a long-term consistency score and incorporates additional dimensions such as ROIC/CROIC, interest coverage, cost of debt, Beta, and buybacks, making the screening process more practical for real-world investing.

how-to-screen-value-stocks-with-f-score.png

The Classic Piotroski F-Score — A Mine Detector Within Value Stocks

Piotroski’s original idea was deliberately simple and disciplined:

  1. First, identify cheap companies (high BM).
  2. Then run 9 financial signals as a health check (each scored 0 or 1), producing an F-Score ranging from 0 to 9.
  3. High scores are more likely to represent recovering value stocks; low scores are more likely to be deteriorating value traps.

The paper clearly points out that returns among high BM value stocks are highly dispersed. Cheapness is not the destination, it is only the starting point.

The Original 9 Indicators (Each Scored 0 or 1)

The guiding principle behind the original version was not optimization, but simplicity, interpretability, and implementability. The signals are grouped into three major categories, and each item earns 1 point if the condition is satisfied.

Profitability (4 signals)

  • ROA (Return on Assets) > 0
  • CFO (Operating Cash Flow) > 0
  • ΔROA (Current ROA − Prior ROA) > 0
  • Accrual: CFO > ROA (i.e., operating cash flow / assets > net income / assets, implying higher earnings quality)

Leverage / Liquidity / Financing (3 signals)

  • Decrease in leverage (ΔLEVERAGE < 0, long-term debt to assets declines)
  • Improvement in current ratio (ΔCURRENT > 0, current assets / current liabilities increases)
  • No equity issuance (EQ_OFFER = 0, no new shares issued during the year)

Operating Efficiency (2 signals)

  • Improvement in gross margin (ΔMARGIN > 0)
  • Improvement in asset turnover (ΔTURN > 0, sales / assets increases)

Why Does It Work Within Value Stocks?

One key insight from Piotroski’s conclusion is that for high BM firms, often distressed or neglected companies, historical financial statements are among the most reliable and readily available sources of information.

By selecting financially stronger firms within the high BM universe, the return distribution can be shifted to the right. In other words, you increase the probability of positive returns and reduce downside risk, while also improving average returns. The paper documents an annual return improvement of approximately 7.5% per year.

A Practical Issue: The Original F-Score Looks at Only One Year and Is Too Binary

I really like the logic behind the original F-Score. However, in practice, three issues frequently arise:

  1. Single-year focus: Year-over-year changes can be heavily influenced by cyclicality, one-off events, or accounting adjustments.
  2. Binary scoring: A company either gets 1 or 0. Missing the threshold by a small margin looks identical to missing it by a wide margin.
  3. Bias toward turnarounds: It is excellent at identifying improving distressed firms, but less effective at explaining long-term, high-quality compounders because it emphasizes improvement rather than sustained excellence.

So I adopted a different approach.

Not “Is this year good?”

But “How often has it been good over the past 10 years?”

This helps filter out lucky one-off years and allows companies with long-term consistency to stand out.

The Enhanced F-Score: From Financial Health Check to Long-Term Consistency Scoring

The enhanced version still maintains the intuitive 0 to 9 total score framework but replaces the indicators with a more practical combination of quality, growth, and financial resilience metrics.

how-to-screen-value-stocks-with-f-score.png

Five Categories, Nine Indicators

Growth (3 indicators)

  • Revenue YoY > 0
  • EBITDA YoY > 0
  • EPS YoY > 0

Note: YoY = Year over Year

Profitability (2 indicators)

  • ROIC > 10% (Return on Invested Capital)
  • CROIC > 10% (Free Cash Flow / Invested Capital)

Debt Profile (2 indicators)

  • EBITDA / Interest Expense > 6 (interest coverage ratio)
  • Interest Expense / Total Debt < 5% (cost of debt)

Market Sensitivity (1 indicator)

  • Beta ≤ 1 (volatility not higher than the overall market)

Capital Allocation (1 indicator)

  • Share count reduction (declining weighted average shares outstanding, treated as a buyback signal)

Scoring Method: Not 0/1, but 0.0 to 1.0

The key improvement is not just changing the metrics, but modifying the scoring method.

  • For most indicators:
    Generate an annual 0/1 sequence (1 if the condition is met), then compute the average over a 10-year window.
    For example, if ROIC > 10% is satisfied in 7 out of the past 10 years, the ROIC score is 0.7.
  • Beta is an exception:
    It is scored directly as 0 or 1, without time averaging.

Final formula:

F-Score=ebitda+revenue+eps+beta+ebitda_cover+debt_cost+buyback+roic+croicF\text{-}Score = ebitda + revenue + eps + beta + ebitda\_cover + debt\_cost + buyback + roic + croic

Each component ranges from 0.0 to 1.0

Total score ranges from 0 to 9

How to Use It to Screen Value Stocks

Step 1: Apply a Valuation Filter

Start with valuation screens; otherwise, you’ll end up with excellent but overpriced companies. This step ensures you are buying value stocks, not simply paying for growth expectations.

Common valuation filters (choose one):

  • Low PB / High BM
  • Low EV / EBIT
  • Low EV / FCF
  • Or relative valuation percentile within an industry

Step 2: Use the Enhanced F-Score as a Quality Filter

Treat the F-Score as a quality confirmation layer:

  • High score: Indicates more consistent growth, capital returns, debt discipline, and buyback behavior over the long term.
  • Low score: Suggests frequent breakdowns in financial quality over time, even if the stock looks cheap today.

Practical guidance:

  • ≥ 6.5: Worth adding to a watchlist.
  • ≤ 4.5: Avoid unless there is a strong and well-supported turnaround thesis.

(Thresholds vary by market and industry. Do not treat them as rigid rules.)

Step 3: Add a Layer of Manual Risk Review

Even a high score cannot eliminate risks such as:

  • Accounting fraud or one-off distortions
  • Industry cycle turning points
  • Balance sheet landmines (off-balance-sheet guarantees, lawsuits, major impairments, etc.)

A final layer of basic common-sense review is still necessary.

how-to-screen-value-stocks-with-f-score.png

Limitations: The F-Score Is Not a Silver Bullet

Primarily Suitable for Small and Mid-Cap Companies

The Piotroski paper explicitly shows that excess returns from financial statement analysis are more concentrated among small-cap firms, low-turnover stocks, and companies with limited analyst coverage.

Put simply, the less attention the market pays to a company, the more likely this approach may add value. If you focus on mega-cap stocks constantly monitored by institutions, the alpha from public financial signals tends to shrink. This is a structural limitation: the method works best in smaller, less-followed companies.

Additional Limitations of the Enhanced Version

  • Industry bias: Metrics such as ROIC, interest coverage, and cost of debt may inherently favor certain industries over others.
  • Interest rate regime bias: Using a fixed 5% threshold for cost of debt can be problematic. When rates are very low, 5% is expensive; when rates are high, 5% may be quite attractive.
  • May miss early turnarounds: A 10-year consistency framework penalizes newly improving firms, which were actually the strength of the original F-Score.
  • Beta is not equal to risk: Low Beta does not automatically mean safer; high Beta does not automatically mean worse. It primarily measures volatility.
  • Buybacks are not always value-creating: Repurchasing shares at high valuations can destroy value. Share count changes may also reflect compensation programs or corporate actions.
  • Transaction costs and liquidity: If you implement this strategy in small-cap value stocks, slippage, market impact, and delisting risk must be carefully considered.