Piotroski F-Score

The F-Score was designed by Joseph Piotroski, a professor in accounting at Stanford University, and is used to identify companies for which the prospects are improving. It's the sum of 9 binary scores based on profitability, funding and operational efficiency. It looks at simple things such as: 'has the company made more profit compared to last year?' (+1 point) but also: 'is the company cooking the books by adjusting accruals?' (0 points). By using 9 points he was able to get enough signals to determine whether the company is really improving or not.

The f-score is the sum of 9 binary scores in 3 categories:


  1. ROA - Return on Assets: Net income before extraordinary items divided by total assets at the beginning of the year. 1 if positive, 0 if negative.
  2. CFO - Cash Flow Return on Assets: Net cash flow from operating activities (operating cash flow) divided by total assets at the beginning of the year. 1 if positive, 0 if negative.
  3. ΔROA - Change in Return on Assets: Compare return on assets to last year. 1 if it's higher, 0 if it's lower.
  4. ACCRUAL - Quality of earnings (accrual): Compare cash flow return on assets to return on assets. 1 if CFO > ROA, 0 if CFO < ROA.


  1. ΔLEVER - Change in gearing or leverage: Compare the gearing (long-term debt divided by average total assets) to the gearing last year. 1 if gearing is lower, 0 if it's higher.
  2. ΔLIQUID - Change in working capital: Compare the current ratio (current assets divided by current liabilities) to the current ratio last year. A value higher than 1 indicates an increasing ability to pay off short term debt.
  3. EQ_OFFER - Change in outstanding shares: The number of shares outstanding compared to last year. 0 if the number increased, otherwise 1.


  1. Δ_MARGIN - Change in Gross Margin: Current gross margin compared to last year. 1 if higher, 0 if lower
  2. ΔTURN - Change in asset turnover: Compare asset turnover (total sales divided by total assets at the beginning of the year) to last year's asset turnover ratio. 1 if higher, 0 if lower.

To calculate this year's number we use the last trailing 12 month (TTM) number available. For last year we use the same number 1 year ago.

Piotroski used his F-Score to filter out the 'dogs with poor prospects' from the lowest price-to-book companies. This template screen available in our screener is discussed in more details here.

The Piotroski F-Score is available in the screener and we also provide a bullet graph and a comprehensive report in the scorecard user guide. This includes a detailed report where you can see all underlying values and how the Piotroski F-Score and the 9 signals evolved during the last 10 reporting periods. Read more about this in the scorecard manual.