• The moderator of this forum is Austin.
  • Welcome to Smogon! Take a moment to read the Introduction to Smogon for a run-down on everything Smogon.

Programming Porydex - Showdown usage stats viewer, with trend charts

#1
porydex.png



(Ignore the security warning; I don't have an SSL certificate yet because I don't have a domain name yet.)

For the last year and a half I've been working on a database/website that aims to show Pokémon Showdown usage stats data in a user friendly, easily navigable way that makes more in-depth analysis possible. I envisioned a site that combined the best parts of veekun - its comprehensive relational database of Pokédex data - with the best parts of the smogon.com/stats data archives - its shit tons of usage data. To that end, I've created Porydex (name probably not final) - the (probably not yet, but hopefully soon) best way to search through and analyze Showdown usage stats.

I started this project long before azelf.info or pikalytics.com were public, but I think my goals are different enough that I can still carve a niche for myself. For one thing, my main motivation was to make it easier to compare data. This month vs last month, this rating level vs that rating level, and so on. I wanted to be able to do things like see a list of the most common users of Trick Room or Defog or Choice Scarf. Also, charts. Lots and lots of charts.

Features

Planned Features
  • Trend charts with multiple data sets! Look at the usage history of Landorus-Therian vs Tapu Koko! Or Landorus-Therian with Choice Scarf vs Tapu Koko with Hidden Power Ice! Or Magearna's usage of Assault Vest vs Trick Room vs Shift Gear! Technically all these are already possible, but not accessible from the UI. I don't know how to handle the UI for that yet, and I'm open to suggestions. (I also need to finish the code that dynamically generates chart titles and line labels based on which trends are being requested.)
  • A Pokédex component to the website, with all the things people expect from Pokédex websites like serebii or veekun. Technically the website's database already has most of that data already, but a UI for any of it has been very low on my priorities list compared to the stats half of the site.
  • Whatever enough other people want - I'm taking requests.

This database has a LOT of potential, and I don't want to keep it all to myself. Even beyond simple usage lists, some real hardcore analysis is possible with the right queries. For example, did you know that the current most common Eeveelution trio in OU teams is Jolteon/Umbreon/Espeon? Or that the most used nature by Cresselia for high rating players across all formats in the history of gen 6 and 7 is Bold? That's just a taste of what this data makes possible. So if any stats nerds like myself have any esoteric usage stats related requests, ask and I will try to find you an answer.

Also, it's all open source on GitHub. The site was built with a PHP/MySQL back-end. If anyone wants to contribute, go right ahead! Especially anyone who's better than me at UI/UX (so, anyone at all).

Enjoy!
 
Last edited:
#3
I like the site! This information is largely already available, but it saves a lot of time in tracking usage over an extended period. I typically have multiple tabs open when trying to accomplish the same. To that end...

On the Pokemon's individual usage pages (example), would it be possible to include an option to combine the usage data of multiple months at once? Having more stats to draw upon would make the figures shown less influenced by the uptake of "fads", which can skew impressions of the most common sets.
 
#4
Good idea! I can do that for abilities, items, and moves. For spreads, teammates, and counters, there's too much variability from one month to the next for such averages to be accurate (which is why I haven't implemented graphing over time for those sections).

There are some other pitfalls though, specifically with gaps in the data. I get these stats from the human-readable stats files, not the "chaos" stats files (because they are too big to be parsed by my tools), so low-usage items/moves will often fall into the "Other: X%" category and not be imported to my database. In all the charts, I assume gaps in the data are 0% because it's harmless enough there. In taking averages over time, those 0%'s will lower all averages a little bit from what they really should be... Which might not be a problem, if you're specifically looking to avoid usage fads.

How flexible do you want this feature to be? "Show me the combined usage data from <arbitrary month 1> to <arbitrary month 2>"? Or just "Show me the combined usage data from all time"?
 
#5
I see what you're saying with respect to the flaws in the truncated stat files, although I think the feature could still be useful in getting a general overview of the most common moves. In my head I originally imagined a "from X to Y" toggle, but now that I think about it a toggle for "all time" would cover the majority of usage scenarios, and would therefore likely be sufficient.
 

Quite Quiet

sleep life away
is a Tournament Directoris a member of the Site Staffis a Super Moderatoris a Community Contributoris a Tiering Contributoris a Contributor to Smogonis a Smogon Media Contributoris a Battle Server Moderator
Articles Co-Leader
#6
There are some other pitfalls though, specifically with gaps in the data. I get these stats from the human-readable stats files, not the "chaos" stats files (because they are too big to be parsed by my tools), so low-usage items/moves will often fall into the "Other: X%" category and not be imported to my database.
I'll make no promises about it but since I've done this exact work (parse chaos to something usable) if you can explain the troubles you have I may be able to help you solve them. Send me a PM or something if you're interested and we can continue this without filling the thread with it.
 
#7
Thanks! Having those sprites and redirect links really makes the whole "journey" more relaxing. Incidentally, is there a possibility that you'll add in the future Older Gens? I'm aware that some tiers are essentially dead, but tiers like ADV OU, DPP OU, BW OU and ORAS OU are still played by a good chunk of players on the ladder.
Also, how do I access the chart/trends page in order to check other things? http://159.89.92.65/stats/trends/chart doesn't seem to work nor http://159.89.92.65/stats/trends/
 
Last edited:
#8
Carbonific: I'm working on this feature now. It might take a week or two, because technical reasons. (In my database I stored all usage data with separate year/month numeric columns, rather than a single date column that would have made this feature trivial to implement. I'm changing that first.) I think I'll do it as a "from X to Y" anyway, for maximum versatility.

Quite Quiet: The trouble I'm having is that I built this in PHP, and PHP is woefully under-equipped to parse big files. Not much I can do about that, nor much I especially want to do about it right now. The current system works well enough for me (for now?)

100 Hoes Kaido:
1) Yes! My plan was always to add more formats on request, because I had no idea what non-current-gen formats people would be interested in.
2) The chart/trends pages can be accessed through the usage change "+X%" or "-X%" table cells. Those table cells are actually links. (I'm sorry I'm so bad at UI)

Other updates:
- For the last month I've been adding move learnset data from the games to the database. Eventually that data will be web-accessible.
- April usage data has been up for a week or so.
 
Last edited:
#9
Ooo I like what I see so far! Took a peek at the repo, do you mind including a quick read me/getting started? I'm a UI/UX designer with some front end exp and I'd enjoy playing with this in my free time. Reminds me of champion.gg (for league stats).

PM me if you want to chat more technically w/o spamming here!
 
#12
very minor thing but in case it's of help, zygarde is listed as Aura Break in the Anything Goes ranks when it should be Power Construct.
 
#13
New stuff:
- May usage data has been added.
- I wrote a brief readme for anyone looking at the project code.
- I'm in the process of adding a handful of missing Pokémon gifs.
- I created the averaged stats over multiple months pages (direct link). I haven't yet added any kind of UI navigation to those pages, though. Until I do, you can manually change the month range in the url.

Other comments:
MacChaeger: What ^he said. But specifically, it's because the site has a form (the change language button at the bottom of every page) plus no SSL certificate. Browsers these days are very security conscious, so that combination gets flagged as dangerous.

Tiksi: Yeah, I'm aware of that bug. The source usage files don't separate the Zygarde formes into separate Pokémon the way the games do, so I import all instances of 50% Zygarde as the form with Aura Break. The best fix I could do for this is to always import Zygarde in Ubers/AG as the Power Construct forme. It wouldn't be a perfect fix though, because some small percent of Zygardes in those formats use Aura Break.
 
Last edited:
#14
New stuff:
- I have a domain name: https://porydex.quinlancircle.com Goodbye, security warnings
- Usage data for the last several months, obviously. I'm waiting on importing October data because it went online suspiciously early in the month and it hasn't been officially posted on Smogon yet, so I want to wait for confirmation that the data is accurate.

Future stuff:
- I'm currently working on in depth dex pages for Pokémon/abilities/moves/types/etc. None of it is online yet, but it'll be coming soon-ish.
- Just for fun, after I realized this database had enough data to do it, I wrote an egg move breeding chain calculator. That's going to be integrated with the Pokémon move learnset dex page as soon as one exists. I'm quite proud of this breeding chain calculator. It covers everything from XD-exclusive moves to Smeargle. It should be a useful resource for anyone playing on cartridge.
- Since a lot of this dex stuff doesn't matter outside cartridge play, I'm wondering if I should make VGC the 'default' format, as far as the UI goes. A quick link on the homepage, "View Current Stats," that takes you to the latest VGC data? It'll either be VGC or OU, for sure.
 
#15
Oh man, this is super helpful. It's a step up from a lot of forms of usage stats and all that, that's for sure.

I'm pretty sure you could implement links to SmogonDex Analysis's with their respective formats, do you think it's a good idea?

On the note of the RoA stuff, think that adding in the RoA Metagames would be helpful for legacy purposes. Competitive History is interesting, y'know? I personally play a lot of Gens 1+2 and there isn't really a lot of resources helping them from Smogon itself. You tend to have to look through buried (and possibly outdated) threads or something. Just general data in a more readable format would be really helpful. If you do go implementing legacy formats, I think arranging them by generation would be the best way to go about it without cluttering it all.

As a VGC Player, I think this is phenomenal, as there isn't really many accessible resources around either. The graphs are perfect. I noticed you didn't have the Checks/Counters stuff down though, is this something to come or is it bugged? It's not anything bad since I know another website that gives it, but is there a fix on the horizon?

Are there plans for an installer or something for the downloadable version? I'm not really...great with Github. I kind of suck at it, actually. Outside of installing Pokered or something I'm kind of like "How do I computer?". Sorry if I sound demanding or anything ^^;
 
#16
I absolutely love this tool and have started using it a lot in my team building and meta trend research. Its one of my favorite bookmarks now. Keep doing what you're doing!!
 
#18
New stuff:
- Per Chippy2001's suggestion, I added Smogon Dex Analysis links to the Pokémon stat pages. This was a good idea I doubt I ever would have thought of on my own, thanks!
- November and December stats are up. Sorry for the longer-than-usual wait time for December; I was on vacation when the stats were released.
- Dex pages for abilities, natures, and types are up. Dex pages for moves and Pokémon are pending, so links on Pokémon/move names from those pages are all placeholders and broken right now.
- The dex page for egg move breeding chains is up, but inaccessible through the UI until I make the Pokémon dex page. This was a fun side project, though.

Other comments:
- RE including stats from older gens: The main reasons I haven't been doing that to begin with are 1) older gens don't have as many games played as current formats, so their usage stats from month to month could be a lot less trustworthy; and 2) i ain't made of database server money, yo. That said... I'd still love to someday include all the 'canonical' formats (Uber through PU, for gens 1 through 7+).
- RE checks and counters not showing up: I include checks and counters for all the formats that have them, aka all the singles formats. Checks and counters aren't calculated for the VGC/doubles formats, I guess because there's no way to calculate them.
- RE installer or something for the downloadable version: Sorry, the only 'downloadable' version for this is if you download the website code and manually run it in your own web server.
- RE when will [month] stats be up: usually, within a few days of when the stats are released here, which is usually a week or two into the month.

Future stuff:
- The next thing on my todo list is to get evolution data into the database, but that data won't be useful/visible to anyone for a while.
- The next useful thing on my todo list is to do the dex pages for moves and Pokémon. Then I'll at least have all the basic dex data publicly accessible, and I can declare my childhood dream of creating a Pokédex website complete.
- Also, I need to add all these new dex pages to the menu. As in, I need to make a menu lol
 
Last edited:

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

Top