Programming Pokemon Showdown Rating Tracker

Hi! I created a tool to automatically track your Pokemon Showdown ratings daily for a PS user. This will allow you to automatically track interesting information like ladder peaks or trends in performance. Might not be super interesting in the short term, but it could be interesting to look back at months down the line.

How to start tracking your rating
All you need to do to start tracking your rating is hop on PS, sign in and message ".subscribe" to my bot "im tofas bot" on PS. It doesn't matter if the bot is offline; just message ".subscribe" again and it will be sent as an offline message. The bot will register you once it is online. See the below Hide-tag for what happens when bot is offline.

Once your registration has been processed by the bot, another service will then automatically start tracking your rating once a day (ELO, GXE etc). If you want to stop your subscription and delete all of your historical ratings, message ".unsubscribe" to the same bot you subscribed to.
subscribe.png

How to view your historical rating
To view your historical ratings, I have also created a simple public REST API that provides the historical ratings for a given user, as well as a very simple visualization tool to view ELO trends (mainly intended for demonstration purposes as of now).

Simply enter the PS username of a tracked user and optionally the particular format (e.g gen9ou, gen7ou, etcetc) you want to visualize, and then click submit! If you don't provide a format, you will visualize all formats you have played, and have the option to hide a particular format by clicking its respective box above the chart. See Hide-tag for example.

Link to the visualization tool: https://im-tofa.github.io/ (the visualization website is very ugly but I don't feel like designing something pretty right now)
1703711614120.png

I currently have no plans to discontinue this service in the near future, but if I do, I will take a snapshot of the database and/or encourage users to export their rating data using the API if they want to.

Feel free to check it out, and of course, improvement suggestions are appreciated!

Thanks!
 
Last edited:

Maxouille

Gastrodon east sea <3
is a Tiering Contributor Alumnus
hello, do you think you could watch every user in the top500? so we would have more data to visualise.
 
hello, do you think you could watch every user in the top500? so we would have more data to visualise.
Sure thing, I have now added the top 100 of the current gen9ou ladder! I don't want to add too many users without their consent as it feels kinda wrong to do so without consent even though it is public data hehe

I will unsubscribe them (& delete tracked ratings) in a couple weeks time but this should suffice for visualization purposes once data has accumulated :)
 
Initial fixes

2023-12-28

Minor improvement: I noticed some users were trying to visualize ratings for users that are not tracked, so I added some status messages in the visualization tool to help clarify what happens in different "non-normal" situations.

If you search for a user that isn't tracked:
1703759778885.png

If you send too many requests in a short amount of time:
1703759705689.png

2023-12-28
Some users did not have their offline subscription processed by the bot once it signed in - the issue has been fixed, and the affected users are now subscribed

2023-12-30
Made some optimizations that reduced storage usage by a lot, so I feel comfortable taking snapshots of ratings 3 times a day now!

2024-01-01
Upon request, I have now added a button in the visualizer tool that allows you to display GXE on the Y axis instead of only ELO - thanks for the feedback! :)
 
Last edited:
Sure thing, I have now added the top 100 of the current gen9ou ladder! I don't want to add too many users without their consent as it feels kinda wrong to do so without consent even though it is public data hehe

I will unsubscribe them (& delete tracked ratings) in a couple weeks time but this should suffice for visualization purposes once data has accumulated :)
I have now unsubscribed these manually added top 100 players, and will let affected players subscribe again if they desire. It just felt kinda wrong to subscribe without consent, hope you understand!

You can still check out my main "im tofa" as an example with a bit of accumulated data as I played a bit of gen8ou recently. I also dabble in gen9ou from time to time
 
Last edited:
Requests for historical data now have reduced latency after some optimizations. Managed to get it down from 2-7s to 100-500ms to get a few months worth of history across multiple formats! I will probably check in on this project from time to time and see if further optimizations can be made :blobthumbsup:

Also, reminder that the bot currently processes new subscriptions/unsubscriptions a few times a week, and not immediately. It depends on how often I remember to start the bot hehe

1709487948504.png
 
Last edited:

Users Who Are Viewing This Thread (Users: 1, Guests: 0)

Top