There are players that work their way up the ranks and then just sit there. Another game I play you have to keep defending yourself against challengers. You get one turn every 12 hours. If you bbn play twice before the other person plays (they didn’t log in at all for one day) they automatically lose. Another option is after so many days of inactivity, your account decreases.
Top players get raided (attacked) constantly and if they don’t revenge those raids (or attack/raid other players), their rank will drop. The differences of cups between the top 10-15 players are minor, you can actually see it change if you check the leaderboard every few minutes.
You can also see that once in a while one of the top players “disappears” from the top players list. That happens when they don’t play for a few days (for example if they’re on vacation).
Raids are a pain and a matter of luck (you can have an awesome team but if you get a bad board you lose). But the ranking criteria is good and doesn’t need fixing IMO.