Hello everyone,
I’ve noticed that when ranking companies within the same industry, if there’s only one constituent (i.e., NoConst = 1), the ranking score returns as 0. This is happening right now with ticker SCIA, its Gross Profit-to-Assets metric against the industry ends up with the lowest possible score.
My current workaround is to insert a conditional node (NoConst > 1) and only perform the industry ranking when that’s true (and a sector ranking otherwise).
I’m not sure if this is by design, but in my opinion it would be more intuitive to have the score display as “N/A” whenever there’s only one company in the group.
Thanks for any insight.
Best,
Victor
Thanks for pointing out this problem. I think your conditional node workaround is a good one. But this is a problem with industry ranking in general. Let's say you have fifty different industries in your universe. How will the best stocks in each industry be ranked among themselves? Those fifty stocks will be ranked in order from the industry with the most constituents to the industry with the least.
I might suggest a somewhat different approach to industry ranks. Let's say you're using Gross Profit to Assets. Your node could be GrossProfit%AssetsA - FMedian("GrossProfit%AssetsA",#industry)
, higher better, ranked against the universe. This is quite different than ranking on industry because it's not normalized and extreme values are going to take the highest positions. Which will work better? I don't know. But SCIA will be right in the middle.
Another workaround is to use FRank("GrossProfit%AssetsA",#industry)
instead of an industry node. That will make the fifty winners all have equal ranks, including SCIA, which will rank close to the top.
The reason is that node ranks go from 0 to close to 100 while FRank goes from 100 to close to 0.