How Ranking Works
This article describes the ranking methods in detail
Introduction
Ranks are relative scores, not valuation metrics. They just tell which stocks are better and which are worse, but not by how much. This simplification makes them powerful: you can be invested all the time regardless of what the market is doing. No more stressing out about whether the market is overbought or oversold, or about the economy. Relative ranks help you ride out volatility and keep you invested.
Basically, rank computation is a straightforward task. For each factor (or formula), we sort companies from best to worst (with the user choosing, in each case, whether higher or lower tallies are to be deemed better) and then convert each to a percentile score, a scale of 100 for the best to zero for the worst. When multiple factors are used, we combine them into an overall rank based on user-supplied weights.
This simple method has the added advantage of smoothly handling outliers, for example APPL PE is 3x smaller than MSFT, but the rank only changes by a fixed increment.
PE (lower is better) | Percentile Rank | |
AAPL | 5 | 100 |
MSFT | 15 | 80 |
GOOG | 30 | 60 (tie) |
FB | 30 | 60 (tie) |
AMZN | 120 | 20* |
⚠️The actual range in percentile ranks is never from exactly 0 to 100 and depends on the number of stocks
* AMZN gets a 20 percentile score because both GOOG and FB have the same PE and cover the percentile ranks of 40 and 60.
Re-normalization
When combining multiple weighted percentiles the resulting average range shrinks to a range less than 100 to 0. To address this we do an extra normalization step as shown below:
Earnings Yield (75%) | Sales % Ch PYQ (25%) | Weighted Average | Normalized Rank | |
AAPL | 100 | 20 | 80 (75+5) | 100 |
MSFT | 80 | 40 | 70 (60+10) | 80 |
GOOG | 60 | 60 | 60 (45+15) | 60 |
FB | 40 | 80 | 50 (30+20) | 40 |
AMZN | 20 | 100 | 40 (15+25) | 20 |
The Weighted Average column ranges from 80 to 40 and it’s normalized back to 100 to 0. These normalized weighted averages are the final ranks.
Composite Nodes
The computation becomes a bit more complex if a ranking system contains composite nodes. For example:
📂Overall Rank
📂Value (65%)
Earnings Yield (75%)
Price/Sales (25%)
📂Growth (35%)
Sales % change PYQ (70%)
Sales % change TTM (30%)
To compute the overall rank, we first compute the weighted average of each composite rank (Value and Growth) as in the example above. Then those normalized scores are combined once more and renormalized to arrive at the final Overall Rank.
Handling “NA” Items
NA stands for “Not Available.” In an ideal world, data would be available for every factor for every company.
Unfortunately, that’s not the case in reality. We very often encounter situations where important data items are nonexistent for some companies. These are reported in Portfolio123 as NA. A good example is PE, which is undefined for almost 60% of our nearly 8,000 stock universe (because of negative EPS or EPS at such low levels as to result in PEs in the hundreds of thousands).
When a screening rule encounters an NA item, it is assumed that the company failed the test and hence is omitted from the screen. Ranking systems present more complex challenges since, unlike screens, the factors are not all-or-nothing. All companies are ranked somewhere on a best to worst scale. We therefore need to decide what NA means in terms of best-to-worst.
Rank Method: NA Negative
The traditional Portfolio123 approach puts NA values at the bottom of the sort, in the worst position. But while we do penalize companies for NA items, we do so with a sense of moderation. When it comes to translating NA to a number, we don’t assign it a value of zero or one. Instead, for each factor in the ranking system, we consider all companies with NA as being in a tie, and the number assigned is just below the rank of the worst company that had meaningful data. The extent of the NA penalty varies from item to item. If NA is a rarity for a particular factor, a company that has one will be penalized sharply. If NA is commonplace, the penalty will be mild, but still a penalty.
Let’s examine this by ranking PEs in a hypothetical five-stock universe.
All ranks are on a percentile basis. Because the universe has only five stocks, the possible scores will be 100, 80, 60, 40 and 20.
The lowest (best) PE earns the highest rank, 100. The next best merits a score of 80 and the third best scores 60. Now suppose there are two companies whose PEs are NA. These two are tied, and they’ll get the numeric score that would have been assigned to the fourth company had it had a meaningful PE, which in this case would have been 40.
Ticker | PE Ratio (lower is better) | Rank | Comments |
A | 2 | 100 | Because the universe has only five stocks, the possible scores will be 100, 80, 60, 40 and 20. Rank never reaches 20 because of the NAs which are handled like ties. |
B | 5 | 80 | |
C | 20 | 60 | |
D | NA | 40 | |
E | NA | 40 |
As you see, NA values do count against a company when it comes to computing its rank. This can be important when rankings are computed relative to industries, some of which may be very small.
It can also have a more general impact. Financial companies in particular are prone to being pushed downward in ranking systems that use several factors that don’t exist for them because of the way they report (e.g., turnover). And where financials are still able to pass user models (because they are
sufficiently strong in the non-NA factors), they’re more likely to hover near the borderline and fall out of portfolios more easily when rebalancing takes place.
Rank Method: NA Neutral
Portfolio123 users can, if they wish, modify this situation and choose to have NA play a neutral role in rank computations.
The default status is as described above, with NAs having a negative impact on ranks. But if users opt for the alternative, the neutral approach, all NA values will, when the computation process begins, be put to the side. Percentile rankings from zero to 100 will be computed for all firms that have the necessary data. Then, at the end of the process, all NA companies will be assigned a rank in the middle of the valid ranks, a perfectly neutral score. The rank assigned to NA’s will usually be around 50, except when there are very few ranked stocks (such as in a small universe or industry).
The more NA rank factors a company has, the harder it will be for the firm to appear in any of your rank-driven result sets. That’s because it will be harder for the company to come in near the top and harder for the company to come in near the bottom (as you might see if you are looking to short poorly ranked stocks).
Let’s look at how the example above changes.
Ticker | PE Ratio (lower is better) | Rank | Comments |
A | 2 | 66.66 | Rank increment is 33.3 since there are 3 values: 100/3 = 33.3 |
B | 5 | 33.3 | |
C | NA | 33.3 | NA’s are neutral |
D | NA | 33.3 | |
E | 20 | 0 | Lowest Value is reached |
This approach should not change long-oriented systems since they pick from the top, where you’ll mostly find stocks with valid values. This would be most useful in a long/short system that buys top ranked stocks and shorts lower ranked stocks using the same ranking system. In this example a long/short system of the best/worst stock would go long A and short C, all with valid values. In the first example the long would be A, and the short either D or C (each with NA).
Because composite nodes and ranking systems as a whole are calculated according to the ranks from the underlying nodes, flipping the arrow to point down on a composite node or a ranking system will not change the NA scores. If you're using the default setting, Percentile NAs Negative, all the stocks with NAs will rank at the top if you flip the arrow to point down. But if you use Percentile NAs Neutral, those stocks will remain in the middle.
Did this answer your question?