Coinmarketcap does a pretty good job at separating circulating supply from total supple to arrive at the true/real/effective market capitalization.
They only do it for obvious cases for very small and unpopular projects and mainly rely on what the project developers publicly report not what the
real circulating supply is. For example ETH reports to have 114 million "circulating" supply while in reality the actual value is so much lower than that due to the massive amount of premined coins that are locked away in the pockets of the ETH overlords that is to be used during the 2.0 crap to make them a ton of free money out of thin air when they stake it. Same with XRP and a lot of other "top" altcoins.
So if you ask me, they are doing a pretty poor job at ranking the coins with a broken ranking system that has been abused very easily.