Does the Piotroski F-Score still work?
Updated October 19, 2026
On QuantGPT's test from 1998 to September 2026, the library's Piotroski F-Score run beat the S&P 500 with dividends on neither growth nor Sharpe, which QuantGPT labels NO EDGE. It grew 4.9% a year against 9.4%, gross of trading costs, with a Sharpe ratio of 0.35 against 0.66.
Piotroski found the effect in small, thinly traded value stocks from 1976 to 1996. This test holds liquid US stocks only, with 8 of his 9 signals, re-formed monthly, so it measures a different market than the paper did.
The original claim
Piotroski (2000), Journal of Accounting Research. Within cheap (high B/M) stocks, nine simple accounting signals separate the recovering from the dying.
- Universe: highest book-to-market quintile
- Score 0-9: ROA>0, CFO>0, rising ROA, CFO>ROA, lower leverage, higher current ratio, no equity issue, higher gross margin, higher asset turnover
- Buy F-Score 8-9; F-Score 0-1 is the avoid or short group
1976-1996: high F-Score (8-9) value stocks beat the average high-B/M stock by at least 7.5%/yr; long high minus short low (0-1) earned 23%/yr. Gains concentrate in small, thinly traded names with no analyst coverage.
How QuantGPT's run differs
Holds liquid US stocks with a Piotroski F-Score of at least 7 (the score covers 8 of the 9 signals; the current-ratio signal is not in the data) and price-to-book at most 1.5, the 30 lowest price-to-book, equal weight, long only, re-formed monthly. Price-to-book 1.5 is looser than the top book-to-market fifth, and Piotroski formed once a year and held for a year.
- Universe: liquid US stocks: raw close $5 or more, the top 3,000 by 60-day median dollar volume.
- Benchmark: the S&P 500 with dividends reinvested ($SPXTR), bought and held.
- Cash: a month with fewer than 15 qualifying stocks is held in cash. That was 101 of 344 months, every month before the first book formed at the end of October 2002 among them.
- In short: Liquid stocks only, 8 of the 9 signals, re-formed monthly; the paper found the effect in small, thinly traded firms held a year.
The result
Over this window the criteria beat the benchmark on neither growth nor Sharpe, which QuantGPT labels NO EDGE: a description of what the data did, not a prediction and not a recommendation.
| Strategy | S&P 500 with dividends | |
|---|---|---|
| Growth a year, 1998 to September 2026 | 4.9% | 9.4% |
| Worst fall from a peak | -58.0% | -50.9% |
| Sharpe ratio | 0.35 | 0.66 |
| Volatility a year | 18.3% | 15.4% |
| Share of winning months | 41.0% | 64.5% |
| Growth a year, before 2015 | 3.5% | 6.2% |
| Sharpe ratio, before 2015 | 0.29 | 0.47 |
| Growth a year, from 2015 | 6.9% | 14.2% |
| Sharpe ratio, from 2015 | 0.43 | 0.97 |
| Net of 25 bps a side: growth a year | 3.7% | not modelled (bought and held) |
| Net of 25 bps a side: Sharpe ratio | 0.29 | |
| Net of 25 bps a side: worst fall | -59.6% |
Every year
Losing years for the strategy: 2004 (-0.2%), 2007 (-11.1%), 2008 (-39.6%), 2011 (-5.7%), 2015 (-18.1%), 2018 (-19.6%), 2020 (-3.2%), 2022 (-1.2%).
| Year | Strategy | S&P 500 with dividends |
|---|---|---|
| 1998 February to December; the strategy held cash | 0.0% | 27.2% |
| 1999 cash | 0.0% | 21.0% |
| 2000 cash | 0.0% | -9.1% |
| 2001 cash | 0.0% | -11.9% |
| 2002 the first book formed at the end of October | 6.8% | -22.1% |
| 2003 | 31.6% | 28.7% |
| 2004 | -0.2% | 10.9% |
| 2005 | 5.2% | 4.9% |
| 2006 cash | 0.0% | 15.8% |
| 2007 | -11.1% | 5.5% |
| 2008 | -39.6% | -37.0% |
| 2009 | 33.4% | 26.5% |
| 2010 | 26.3% | 15.1% |
| 2011 | -5.7% | 2.1% |
| 2012 | 15.5% | 16.0% |
| 2013 | 22.0% | 32.4% |
| 2014 | 5.5% | 13.7% |
| 2015 | -18.1% | 1.4% |
| 2016 | 10.9% | 12.0% |
| 2017 | 21.3% | 21.8% |
| 2018 | -19.6% | -4.4% |
| 2019 | 12.8% | 31.5% |
| 2020 | -3.2% | 18.4% |
| 2021 | 22.4% | 28.7% |
| 2022 | -1.2% | -18.1% |
| 2023 | 24.8% | 26.3% |
| 2024 | 6.4% | 25.0% |
| 2025 | 24.5% | 17.9% |
| 2026 January to September | 8.7% | 12.7% |
Run it yourself
Open it in the terminal from the strategy library (RUN IT on its entry), or read the public result page at terminal.quantgpt.co/study/piotroski-2000. Change the start year, the cutoffs, the number of stocks or the cadence and run it again. Or ask your AI, connected over MCP:
Use QuantGPT to backtest the Piotroski F-Score from 2005 with scores of 7 and up, and show the losing years.
Questions
Does the Piotroski F-Score strategy still work?
On QuantGPT's test it did not beat the market. The library's Piotroski run, liquid US stocks with an F-Score of 7 or more (of 8 signals) and price-to-book at most 1.5, the 30 cheapest, re-formed monthly, grew 4.9% a year from 1998 to September 2026, gross of costs, against 9.4% for the S&P 500 with dividends, with a Sharpe of 0.35 against 0.66. It trailed both before 2015 (3.5% against 6.2% a year) and after (6.9% against 14.2%). Over this window the criteria beat the benchmark on neither growth nor Sharpe, which QuantGPT labels NO EDGE. Piotroski found the effect in small, thinly traded value stocks from 1976 to 1996; this test holds liquid stocks only, so it measures a different market.
What are the nine Piotroski signals?
Piotroski (2000) scores a cheap stock 0 to 9, one point for each: positive return on assets, positive operating cash flow, rising return on assets, operating cash flow above return on assets, lower leverage, a higher current ratio, no new equity issued, a higher gross margin and a higher asset turnover. A score of 8 or 9 was the buy group and 0 or 1 the avoid or short group. QuantGPT's f_score factor covers 8 of the 9 (0 to 8): the current-ratio signal is not in its data.
Which academic stock market anomalies still hold up out of sample?
QuantGPT keeps no ranking of them. Each of the 55 runnable entries in its strategy library can be run on the same data, and every run splits its statistics at a cut year (2015 unless you pick another), so the years after the cut read on their own. On that test the Piotroski F-Score trailed the S&P 500 with dividends after 2015: 6.9% a year against 14.2%, gross of costs.
Do famous trading strategies still work?
It depends on the strategy and on the test. A published result covers its authors' years and stocks; a rerun on other years and other stocks is a different test. QuantGPT's library documents 175 strategies from research papers, famous investors and their letters, and 55 of them run in one click on decades of US market history, each against a benchmark, year by year. The Piotroski F-Score is one: on liquid US stocks from 1998 to September 2026 it beat the S&P 500 with dividends on neither growth nor Sharpe, which QuantGPT labels NO EDGE.
Where can I backtest the Piotroski F-Score?
On QuantGPT: from the strategy library with one click (RUN IT on the Piotroski F-Score entry opens it in the terminal), or from Claude or ChatGPT connected over MCP, with a question such as: Use QuantGPT to backtest the Piotroski F-Score from 2005 with scores of 7 and up, and show the losing years. You can change the start year, the score cutoff, the price-to-book cap, the number of stocks and the cadence. QuantGPT is $49 a month and QuantGPT Pro $149, each with a 3-day free trial.
Related
- ComputeMCP server for backtesting
- ExecutionFrom a backtest to your broker
- DataThe research warehouse
- LearnConnect Claude or ChatGPT to stock market data
Backtests show past results, gross of trading costs unless stated. A backtest is not a promise. QuantGPT is research software and nothing here is investment advice. The disclosures and terms govern.