Price to Sales Ratio Backtest

The Price-to-Sales (P/S) ratio is a commonly mentioned valuation ratio. It is similar to the P/E ratio but uses revenues instead of earnings. The advantages of using sales in this valuation ratio are two fold. First, it somewhat controls for earnings manipulation, since it is harder to manipulate sales numbers. Second, because the Price/Sales ratio does not rely on earnings, you can use this ratio to compare the valuation of companies that are not currently profitable. The price to sales ratio is calculated as follows:

Price-to-Sales Ratio = Market capitalization / Sales for past 12 months

Let’s take a look at a backtest of this ratio to see how it works. I used the data and backtesting tool provided by Portfolio123. The Portfolio123 backtesting eliminates the problem of survivorship bias by using point-in-time and retaining data on stocks that have gone to zero. This backtest uses the same filtered universe of stocks as my recent P/FCF Ratio Backtest. I’ve designed the filtering criteria for this backtest specifically for individual investors and with a focus on enhancing data quality. The filters include the following criteria:

  1. No OTC stocks. Stocks not traded on the New York Stock Exchange, NASDAQ, or American Stock Exchange markets are excluded. The quality of fundamental stock data for OTC can be somewhat lower and less timely that that for stocks traded on major exchanges.
  2. No ADRs. Fundamental data for foreign American Depositary Receipt can include errors due to currency exchange, different accounting standards, and share count.
  3. Exclude the Financial Sector. The concept of sales revenue does not really work well for banks and other similar financial sector companies.
  4. Liquidity test. The average daily total amount traded over the past 60 trading days must be larger than $100,000.  This amount was selected so that a $1 million dollar portfolio could hold 100 positions and that each new $10,000 position would not exceed 10 percent of a day’s trading volume. The liquidity test also ensures that the backtest has reliable market price information for any of the stocks that are being tested.
  5. Market Cap > $50 million. Nano cap stocks are excluded to help improve data quality. This filter also ensures that positions in a modest sized portfolio never exceed one percent of shares outstanding or the available float for a company.
  6. Price > $1. True penny stocks are excluded due to various information issues and manipulation of these stocks.
  7. P/S ratio > 0. This filter insures we are looking at stocks that actually have valid data on the Price/Sales ratio.

After these filters are applied, we are left with approximately 2,600 to 3,600 stocks. These stocks are then ranked by the criteria being tested; in this case, we are testing the Price/Sales ratio. The lowest 20 percent of stocks ranked by the P/S ratio are placed in the first quintile and the next 20 percent in the second quintile and so forth until we have five portfolios of stocks. The portfolios are rebalanced every 12-months and compounded annually to more realistically replicate what an individual investor might be expected to do to avoid higher short-term capital gains tax and trading costs. The following 5 charts display the quintile returns for the Price/Sales ratio in red and the S&P 500 Equal Weight Index in blue.  The first quintile includes the companies that had the lowest P/S ratios and the 5th quintile includes the companies that had the highest P/S ratios.

Price/Sales Ratio Quintile Returns – 2000 – 2013

Price to Sales Ratio 1st Quintile
Price to Sales Ratio Backtest 1st Quintile


Price to Sales Ratio 2nd Quintile
Price to Sales Ratio Backtest 2nd Quintile


Price to Sales Ratio 3rd Quintile
Price to Sales Ratio Backtest 3rd Quintile


Price to Sales Ratio 4th Quintile
Price to Sales Ratio Backtest 4th Quintile


Price to Sales Ratio 5th Quintile
Price to Sales Ratio Backtest 5th Quintile


Price to Sales Ratio Universe
Price to Sales Ratio Backtest Universe


Summary of Results for the Price/Sales Ratio Backtest

Backtest Results for the Price/Sales Ratio
14-year Backtest Results for the Price/Sales Ratio
Chart of the average annual excess returns from 2000 to 2014 for the Price-to-Sales Ratio
Average annual excess returns from 2000 to 2014 for the Price-to-Sales Ratio

This backtest of the Price/Sales ratio reveals that the first quintile outperforms the S&P 500 Equal Weight Index benchmark. The second through fifth quintiles have lower average annual excess returns than each of the previous quintiles and the overall trend in excess returns is a linear decrease as the P/S ratio increases.  These results are as you would expect.

The first two quintiles of the P/S ratio backtest underperforms the first two quintiles of the P/FCF ratio. Interestingly, the 5th quintile, the stocks with the highest Price/Sales ratio has the most negative average excess returns of any of the valuation ratios that we previously examined. The best use for the Price/Sales ratio might be to spot overvalued companies that should be avoided.

What are your thoughts on the Price/Sales ratio?


10 thoughts on “Price to Sales Ratio Backtest

  • June 9, 2014 at 10:35 pm


    There is an error in the charts. The 5th quintile chart seems like it contains ~3000 stocks which is not a quintile but the entire stock ‘universe’. That may explain why it beat the S&P 500 Equal weight index on the chart when the 5th quintile actually posted a negative return.

    BTW, you can chart all 5 quintiles on a single chart in one run using the ‘Ranking System Backtester’. Jyst change the chart output type to ‘performance graph’ and set the number of ‘buckets’ to 5.

  • June 11, 2014 at 9:50 am

    Hi Chippers,

    Thank you for the feedback. However, if you look at the table above again, the 5th quintile only contains 604 stocks on average. The universe contains 3,015 stocks. Sorry if that was confusing.

    I appreciate the suggestion of charting all 5 quintiles on a single chart. I’ll try to work that into future backtests.

  • July 3, 2014 at 7:26 pm

    Hi George,

    Thank you for posting this P/S backtest. Would the results be statistically different if more realistic investor assumptions were made? As an example, let’s say I have $10,000 to invest and I would like to diversify my portfolio using this strategy. I would be unable to purchase 600 stocks, but I may be able to purchase 30 or so without transaction costs eroding returns. Would selecting the top 30 stocks based on this criteria materially alter the results. Or let’s randomize it and say pick 30 from the top quin-tile – would the alpha still be maintained? Perhaps reporting the median security return would eliminate any skew within the selected investment universe.

    Thanks again,

  • September 25, 2018 at 9:26 am

    Hi George, so we have a decile of 600 stocks (aprox) and a return of 16,29%.

    In the FCF backtesting we have a decile of 300 (aprox) and a return of 18,43%.

    Just to have a fair comparison, it could be nice to compare each strategies regarding the best 30 stocks.

    Could you do that for us?

    I have tested both strategies in other screener (10 years) and PS ratio outperformed the P FCF ratio.


  • December 26, 2020 at 9:22 am


    Do you use particular programming language for your backtest? Is the data publicly available?

  • January 5, 2021 at 10:22 pm

    I use Portfolio123 for the data and Google Sheets to put together the results.

  • March 16, 2021 at 8:00 am

    Hello! Nice results. I did a pretty close backrest using the and the results were to scaring(high) to be good.
    I limited the p/s to 3 and the net margin (to avoid company with low p/s because the results are going down) and traded on month based buying the the lowest 10 p/s.
    I wish I could have access to portfolio123 again and compare the results. For now I’m trying to do the same backtest in QuantConnect to compare the results.

  • March 16, 2021 at 10:03 am

    Hi Rony. I’d love to learn how to do proper backtest in QuantConnect. If you get this p/s backtest set up there, please share it with me. Thanks!

  • March 17, 2021 at 1:39 pm

    Sure! I already did a backtest but I’m not sure about the quality of the results (I saw some problems). I’m taking classes about QuantConnect’s tools to improve it and as soon as I finish it I will send you all the results.

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.