Partially Implemented Add unlimited Elo decay to PS ladders

Status
Not open for further replies.

Siatam

is a Tutoris an official Team Rateris a Member of Senior Staffis a Community Contributoris a Metagame Resource Contributoris a Former Old Generation Tournament Circuit Champion
RoA Leader
(I discussed this with PS admins and we decided PR is the best place to give this post visibility)
The Issue
Some PS ladders have an issue where many of the ranks on their Top 500 leaderboards are occupied by inactive accounts that hit the Elo decay limit. I believe this negatively impacts the ladder experience by forcing players to pass hundreds of dead accounts to get their name on the leaderboard. We can make ladder play more rewarding by pruning the leaderboards to only show accounts that are actively playing on the ladder.

For anyone unaware, PS's Elo decay calculation is explained
here. In practice this system decays accounts down to limit of 1500 Elo (1400 for very active ladders like CG OU and RandBats). These 1500 Elo accounts are most problematic for ladders that have a peak in the 1500-1700's range, which is most old gen OUs and current gen lower tiers. This Elo decay floor is not much of an issue for very active ladders with peaks well above 1500 as well as very inactive ladders with peaks below 1500.
RBY ~400
GSC ~300
ADV 0
DPP ~300
BW ~400
ORAS ~300
SM 0
SS ~300
My Solution
To combat this issue I propose introducing an extra system of Elo decay to take truly inactive accounts down to 1000 Elo. My idea is:
  • After 5 days of 0 games played on a ladder, the account loses 1 Elo. This repeats every 5 days up to 300 days (60 total Elo loss after 300 days)
  • After 300 days of 0 games played, the account now loses 3 Elo every 5 days. Repeat for 300 more days. (Another 180 Elo loss, 240 total after 600 days)
  • After 600 days of 0 games played, the account now loses 5 Elo every 5 days. Repeat for 300 more days. (Another 300 Elo loss, 540 total after 900 days)
The goal here is to be as unintrusive as possible for your typical ladder player. The decay is minimal if you don't play for a few weeks or months and it only starts to get significant if an account hasn't touched a ladder in years.

Extra info/Questions you may ask
  • This would affect all accounts.
  • This would be implemented for all ladders.
  • The decay is ladder specific. Inactivity would be counted on a ladder by ladder basis.
  • The new system of decay would apply retroactively. I.e. an account that has been inactive on a ladder for 900 days will lose 540 Elo in one lump sum. (Retroactive calculation is the default for how PS calculates Elo decay, and it saves us the time of waiting years for this new system to clean up the leaderboards)
  • I made these numbers up because they look nice. PS has a 1000 day limit when calculating Elo decay so I picked some numbers that reach 500 Elo decay in the 1000 day timespan. The specifics can change if anyone has a cleaner solution in mind.
  • Accounts won't decay under 1000 Elo
What I need from you
Your feedback! The PS admins I've spoken to are on board with this idea. It is likely some sort of decay down to 1000 Elo will be implemented unless there is a strong negative response from the community.

Please let us know of any questions, comments, complaints, objections, or feedback you have! Alternative suggestions are also welcome. Thank you!
 
I might very well be the most prolific instance of this problem. At time of writing I have exactly 1499 or 1500 Elo in 32 different formats, and several slightly higher ratings that have not yet decayed (because decay only seems to hit when you're top 500 or whenever you play a game). To me, personally, this change would be very sad.

I find laddering with decay unenjoyable. The feeling that you have to play to not lose progress causes me stress which makes the whole experience worse, regardless of the actual strength of the decay. I understand I'm in the minority on that, but I'm likely not alone. On the other hand, having a goal to strive for makes the game much more enjoyable, and so I set myself the challenge to reach the decay limit in as many formats as possible. In this way I have my own sort of achievement system that allows me to achieve something that is, in a sense, eternal. Those 1500s and 1499s are set, will not decay, and thus function as an achievement.

However, I do understand that this change (or something like it) is necessary, and judging from the immediate response I'm seeing will likely be implemented soon. For example, the current [Gen 7] Battle Factory ladder has only 2 people with a non-1500/1499 Elo, and that's silly. With that in mind I ask for consideration of the addition of something that allows for my way to enjoy the game. Some options:
  • Track highest Elo achieved in each format for each account (possibly only visible to the owner of the account).
  • Track highest rank achieved in each format for each account (possibly only visible to the owner of the account).
  • Instead of decaying further, flag inactive accounts as such and don't show them on the ladder.
 
Flagging inactive accounts is definitely a better solution than uncapping decay for reasons outlined above. Imposing an arbitrary limit at which accounts disappear from the leaderboard until they load another game solves the dead accounts clogging the leaderboards without punishing those who can only ladder intermittently, such as those who only play during the weekends. Considering the fact that you only need to play 1 game to "reactivate" an account in this hypothetical, I think that you can be relatively ambitious and set the number at something in the 30-60 days range.
 
how about instead of the elo cutoff being a fixed 1500 it can fluctuate according to the top n positions. maybe top 500? so the decay check would only apply to accounts that are in the top 500. as soon as you're booted out of there you stop getting decayed? i think this is nice so that people can still keep ratings, especially in old gen ladders that aren't changing as fast as cg. so if someone played say sm in 2019 they could still get back to play in 2024 and keep their 1500 rating without having to start from 1000. it could also be an achievement like what chains of markov said, and i think taking that away is a bit sad
 
Last edited:
  • If you played over 5 games, there is no decay
  • If you played 1-5 games, you lose 1 point for every 100 points above 1500 you are
  • If you played 0 games, you lose 1 point for every 50 points above 1400 you are
I think the current system (as quoted above) is far too strict on a short term basis. Especially for things like ladder tournaments, you should be able to pace as you see fit without needing to play (5+ games) daily to avoid decay. The ideas to tackle inactive accounts long term are good as well.

edit: not sure what siatam was initially proposing, but there should probably be 0 decay outright for your first week of inactivity
 
Last edited:
I support the proposed solutions such as more Elo decay to remove inactive alts on the ladder, and would also like to extend this idea to Glicko decay as well, especially because the GXE metric is derived from the Glicko rating. If one were to resume laddering on an inactive alt, which can be loosely defined as having a Glicko deviation of 100 or more, it could result in an artificially inflated (or deflated) GXE or Glicko that is not truly indicative of a player's skill. Below is one of my alts to illustrate this example:

1717375016109.png

Here I have resumed laddering on one of my inactive alt, as seen from the high deviation, and after winning 11 games on the gen9ru ladder, suddenly my GXE became artificially high at 87.8%. This is because the Glicko remains the same while the deviation increases the longer the alt stays inactive, and the high deviation often results in more volatile changes in your Glicko / GXE. Glicko is primarily used in deriving usage stats and thus the usage stats may not be truly representative of the meta if they are determined by a substantial number of inactive alts.

TLDR: Implement Glicko decay as well.
 
I don’t like this idea as proposed for a couple reasons.
Firstly, this heavily punishes people who decide to take a somewhat extended break or have outstanding circumstances that prevent them from playing for a week or so, such as a health or family emergency. Having to take a week or even two off from circumstances out of your control isn’t super unlikely and sometimes people just want to take a few days off and I don’t think they should be punished for that.

My second concern is with seasonal or event ladders (old BSS or VGC rulesets and the like mainly) that would be absolutely ruined by something like this being implemented. Though they aren’t publicly visible for the most part, having those ratings preserved on a players stat viewer is a nice little snapshot of where they were at the time, these formats being unladderable after they are obsolete already harms them as is.

I personally think a better system would be to cap decay a bit earlier or just do away with it entirely and introduce a new system that will flag accounts as inactive after a period of time without playing a game in whatever format, instead of punishing their rating it could just not list them on the current leaderboard. If something like this happens you could even add a toggle to view the leaderboard with inactive accounts included, to sort of preserve accomplishments of players who may have moved on from said format or the game as a whole.
 
Frankly its weird that OU (active) has accounts decay until they hit 1400, and NU (comparatively inactive) has accounts decay until they hit 1500. Realistically speaking you fix half of this problem and have a more accurate top 100-200 by simply just adjusting the elo decay threshold for lower tiers / old gens to decay until you hit 1400, 1300, or 1350 (pick your poison).

Edit:
I half remember checking the code for this, but ain't your weighting for usage stats based on your probability of actually being over 1630/etc. That is, a dude with 1700+-25 would basically be counted with a weighting of 1, and a dude with 1700+-130 would be weighted significantly lower. (aka check a z-table). Having decay for glicko makes zero sense cause the deviation increasing is the decay. Afaik they don't continually change the displayed GXE on the /rank page just because it would be a bit confusing. Realistically speaking your GXE for an alt you haven't touched in ages should be significantly lower.
 
Last edited:
introducing decay to 1000 in order to prevent ladders from showing inactive people sounds like 1) a pretty serious reaction to something that really isn't a huge problem in the first place 2) a pretty inefficient way to solve said problem

if any of these are feasible to implement, i think they work better on all counts:
- remove decay altogether (what purpose is it realistically serving), but accounts without a gxe don't show up on ladder
- change decay threshold for smaller ladders like the above post's suggestion
- dynamically adjust the decay threshold so that people decay only down to the bottom of current top 500 and no further
 
(I discussed this with PS admins and we decided PR is the best place to give this post visibility)
The Issue
Some PS ladders have an issue where many of the ranks on their Top 500 leaderboards are occupied by inactive accounts that hit the Elo decay limit. I believe this negatively impacts the ladder experience by forcing players to pass hundreds of dead accounts to get their name on the leaderboard. We can make ladder play more rewarding by pruning the leaderboards to only show accounts that are actively playing on the ladder.

My Solution
To combat this issue I propose introducing an extra system of Elo decay to take truly inactive accounts down to 1000 Elo. My idea is:
  • After 5 days of 0 games played on a ladder, the account loses 1 Elo. This repeats every 5 days up to 300 days (60 total Elo loss after 300 days)
  • After 300 days of 0 games played, the account now loses 3 Elo every 5 days. Repeat for 300 more days. (Another 180 Elo loss, 240 total after 600 days)
  • After 600 days of 0 games played, the account now loses 5 Elo every 5 days. Repeat for 300 more days. (Another 300 Elo loss, 540 total after 900 days)
i really dont like this as a solution. surely theres just some way to set any account that doesnt show their gxe for a tier be hidden from the leaderboard rather than removing someone who hasnt played the tier in a hot minute from having elo entirely, its something already tracked on PS anyway and is.... a LOT less intrusive seeming?

could hide this account of pdc's from bw ou leaderboard but leave it on the ones he's been more recently active on as an example, it legitimately is already tracked
1717389407339.png
  • Track highest Elo achieved in each format for each account (possibly only visible to the owner of the account).
  • Track highest rank achieved in each format for each account (possibly only visible to the owner of the account).
  • Instead of decaying further, flag inactive accounts as such and don't show them on the ladder.
I'm also a HUGE fan of the proposals chains of markov had here and think they would actually be a massive improvement to the site as someone who doesnt really have time to ladder 24/7 but does absolutely try to go very high on them when i have the time to
 
Hello there. I've never made one of these posts before, and am not generally a policy person as a whole, so bear with me if this isn't proper enough or doesn't have the most coherent ideas. I'm not good at this but am trying my best.

I play 1v1 a lot. Laddering is one of the best parts of 1v1 and is what keeps the tier alive in the long run. However, the ladder is far less active than it used to be. The ladder that I used to know as one that would sometimes go into the 1800s now barely goes into the 1600s, if that. At the time of me drafting this post, there are 35 users that have an Elo of over 1500. After that, all accounts until the end of the ladder rankings have either 1500 or 1499 Elo.

1v1 is not the only victim of this as, at the time or writing this, which is roughly 11:30 PM GMT on August 27th, 2024, Ubers hits the 1500 threshold at rank 493, UU hits it at 261, RU hits it at rank 68, NU hits it at rank 63, PU hits it at 60, LC hits it at 39, and Monotype hits it at 365.

I like seeing my name on the ladder. It sort of gives me this sense of achievement. I've been playing 1v1 for years at this point, and some of the best moments I've had over the years have been through trying to outrank one of my friends on ladder and other small friendly competition shenanigans of the sort. For new players especially, having that opportunity to see your name on the rankings for one of the Pokemon Showdown ladders really gives them something to look forward to and something to aim towards. However, with how a lot of ladder rankings are just being clogged up by accounts that have decayed to 1500 or 1499, this becomes much harder to do.

I'm not the biggest fan of the concept of unlimited decay. I've seen people say that they like the concept of not having to start at 1000 Elo if they want to ladder on an alt, as the ability to avoid low ladder is sometimes a bit of a time save for tournament players who are trying to test their teams on ladder a little bit. For example, I have multiple alts sitting around 1300 on the 1v1 Ladder, and that allows me to somewhat avoid the people who are just bringing a single Pokemon to the game, although I still do sometimes get matched into them with those accounts. Having the ability to hop back onto an account after a bit over a year of not playing on that alt would be nice. However, with lower decay amounts like what have been prescribed, I can see this working out alright.

I want to provide a couple ideas that I've had (or that I've seen in 1v1's discord or stuff when we talked about this earlier in the day) that avoid the concept of unlimited decay to restart the discussion on this topic.


1. Let Tier Leaders (or some other representative of a tier) decide what rating their ladder decays to.

This option does away with the uniformity between ladders, as all non-OU and non-Random Battles ladders decay to 1500. However, people playing the ladder of a tier are the best people to make calls about the state of said ladder. The 1500 threshold might be working fine for some tiers, and it would be up to the Tier Leaders of said tiers to figure out if they want to make that change, but for 1v1 specifically, which is what I have a frame of reference to, we probably need to lower our decay threshold. This change would allow for changes to tiers that need them while allowing for other tiers to maintain a system that may already be working for them.


2. Have decay until half of Rank 1's Elo.

No, this does not mean to like 850 or something, but rather to (with X set as the Elo of Rank 1), X-((X-1000)/2). Without the mathematical formula, it would be the halfway point between Rank 1's Elo and 1000. This would be a system where the decay is variable day by day, but it would significantly lower the decay floor for a lot of tiers while scaling for tiers that have less activity, while leaving older decayed accounts behind if activity picks up more and more. This would basically remove the "everything scales down to some point and bogs a leaderboard there" issue.


I fully understand that I'm not providing specifics, as this sort of thing is very outside of my expertise, but with the amount of ladders that I've seen this issue on, I really do feel that adding this incentive to see your name on a Pokemon Showdown ladder leaderboard would overall benefit players, but realistically, I would appreciate any change made to make leaderboards more representative of the users that are currently playing.
 
I’d also like to see movement on this proposal. I think flagging inactive accounts is a good option. I also think a higher decay baseline as described above can also work. Regardless, it would be nice to not see positions 25-500 of some ladders be 1500.
 
I do agree with going through with this proposal, similar to what MrSoup said. A lot of ladders (specifically old gens other tiers and sometimes OU) are littered with 1500 players, which can make it a bit difficult to ladder past that because you may get one of two outcomes:
1) you get paired with a punch a people really low on ladder, providing less and less ELO as you go on
2) You get paired with some grinder really high on ladder, which can be hard to beat.

I wouldn’t necessarily support unlimited ELO decay though.

I’d say use the same thing as Siatam suggested in terms of how the decay is implemented, but instead of going to 1000 ELO, I would go with about 1100 ELO, which gives players that are returning a chance to bounce back a bit. Overall, I think this is a great proposal.
 
- dynamically adjust the decay threshold so that people decay only down to the bottom of current top 500 and no further
IMO this seems like the optimal solution, ladders should have a dynamic decay limit specific to each ladder, say for example 5 to 10 elo below top 500. This would ensure competitive leader boards for lesser played tiers while not effecting popular tiers.
 
The need for old gen or lower activity ladders to be cleared of the inactive 1500s account has been overdue. That said I don’t agree with unlimited decay either. Personally find removal of inactive players from the leaderboard but keeping their elo fixes the problem while also keeping their ranking as an achievement for the player if they take pride in that. Another suggestion would also be to generally lower the decay cap or make individual tiers decide what theirs would be. 1500s ends up very high and top 100 in a lot of lower activity ladder and while.
 
Like, I said before, just making the decay threshold 1300 or 1400 solves almost every issue folks realistically have with the leaderboards, and requires significantly less coding or realistically policy work than anything else (eg deciding when an account is to be stripped from the leaderboard, etc).
 
I'd like to voice in support of flagging inactive accounts for removal from leaderboard while maintaining the same decay limit. Aside from some details brought up here the only chief complaint has been ladders flooding with inactive accounts stuck at the same elo. I do not support unlimited decay and I don't see a need to adjust decay at all for what is more of a visual issue (the display of all the higher elo inactive alts being unpleasant) than anything.
 
Would it be that difficult to just require having a gxe to be on the leaderboard? All the inactive accounts on the leaderboards have no gxe there, if you required them to have a gxe to be on the leaderboard then you don’t have to do anything with decay and they’d remove on their own without much micromanaging. Not sure how feasible this is to do but it sounds like a very simple solution that makes everyone happy if it’s easy to implement.
 
Just wanna say this isn't being ignored despite the huge support - it's currently being discussed with the PS team and a solution now exists on the programming front that will flag accounts with no GXE or a Glicko deviation at or above 100 (thank you Hecate!!). There are a couple more groups that need to sign off with their approval so don't consider this implemented just yet but there should be an update pretty soon!
 
Thanks for your patience everyone and thank you Hecate for implementing this.

For transparency's sake here is the solution we decided on.
For ladders with peak Elo's over 1500:
Hide all accounts with a Glicko deviation >100. (This is the same threshold used to display GXE)

For ladders with peak Elo's less than or equal to 1500:
Nothing changes.

The feedback in this thread told us that people did not like the idea of unlimited decay. While creating a different Elo decay limit may have fixed the issues on some ladder leaderboards, the 1500 Elo mark is not hardcoded value - it is a result of the Elo decay function. We opted for the simplest technical and policy solution: hiding inactive accounts. This solution gives people the freedom to use old alts to avoid low ladder and preserves people's accomplishment of reaching 1500 Elo. We chose to only implement these changes for leaderboards with peak Elo's over 1500 to avoid nuking low activity and rotational ladder top 500s.
 
Status
Not open for further replies.
Back
Top