Gen 8 Smogon University Usage Statistics Discussion Thread


We have the technology.
is a Top Artistis a Top CAP Contributoris a Top Smogon Media Contributoris a Site Content Manager Alumnusis a Battle Simulator Admin Alumnusis a Super Moderator Alumnusis a Community Contributor Alumnus
Hey Marty how's it going man :)

We're doing some discussion for CAP29 about how often players click on what button during a battle. Is it possible to gather data on the following statistics for Gen 8 OU and Gen 8 CAP?
  1. How often do players click on a damaging attacking move (e.g. Magma Storm, Scald, etc)?
    • It would be amazing to also see this split into self-switching moves (Volt Switch and U-Turn) versus non-switching moves.
  2. How often do players click on a non-damaging move (e.g. Wish, Dragon Dance, etc)?
  3. How often do players click on a hard switch (e.g. switching to another Pokemon on their team)?
Theoretically, all three of those as a percentage should add up to 100% (unless I'm missing something). Was just curious if that was data we could pull up from those two metas from January to help us with our concept. Thanks for considering!


Always more to find
is a Site Content Manageris a Battle Simulator Administratoris a Programmeris a Super Moderatoris a Community Contributoris a Top Researcher
Research Leader
Hi Birkal!

Sorry, battle logs make no distinction between switches as your turn action, switches to replace fainted Pokemon, or switches via pivot moves. The stats scripts also don't know the difference between attacking or non-attacking moves, and I'm not really interested in adding new functionality that will slow them down at this point. It certainly wouldn't be ready before you need it, anyway.

I'd recommend checking out the moveset stats and thinking about how often Pokemon are running those moves, with the assumption that if they're running a given move they intend to click it about that often.


formally Death on Wings
is a Pre-Contributor
could I please get the parser for monotype so I can do calculations for the natdex-mono?
The code used can be found here (specifically, see for how monotype stats are calculated) - I understand there's a project for some stat calculation to move to js here, but I don't know that this is used for monotype analysis yet.
Hi everyone,

I know that the architecture of the usage stats algorithm has to be reviewed, but we currently meet another huge problematic in the usage stats algorithm, which is the "Teammates" field. I know that this field currently equals P(X|Y) - P(X) (usage stat of Y in the teams with X - usage stat of X). But it drives two problems:

1) Some Pokémon don't have any Teammates
When your Pokémon has 90%+ usage (like Snorlax in [Gen 2] OU for example), it will never have teammates lol Welcome Snorlax :pimp:
So if you want to deal with Snorlax in [Gen 2] OU you will have no idea about what are its teammates, so you will put a random Machamp in your team, be walled by Zapdos which is (let's suppose) P(X|Y) = 60% with Snorlax, and then will lose the game to Lax when your Machamp takes its 3 Body Slam upon switchin... Amazing :)

2) Top tier Pokémon will never be teammates
Let's take the Snorlax example again. You know like me that Snorlax has almost 100% usage in [Gen 2] OU. So Snorlax should appear in all teams with Zapdos (for example) and so be the first Zapdos teammate. But it's not what it's shown here.
| Zapdos |
| Teammates |
| Nidoking +8.054% |
| Gengar +7.914% |
| Jynx +6.426% |
| Cloyster +4.579% |
| Rhydon +3.566% |
| Tyranitar +2.227% |
| Steelix +2.223% |
| Exeggutor +0.647% |
We have a random Nidoking and a random Exeggutor, amazing lol So I will play a Pokémon who beats Zapdos + Nidoking + Exeggutor in my team and be 6-0d by Lax, cool :)
P(X|Y) - P(X) will remove all the top usage Pokémon from the Teammates usage which (again) has 0 sense... We can see it for example with Scizor:
| Scizor |
| Teammates |
| Smeargle +79.684% |
| Machamp +60.492% |
| Jolteon +54.356% |
| Marowak +51.812% |
| Vaporeon +19.768% |
| Quagsire +9.391% |
| Charizard +2.126% |
| Aerodactyl +1.387% |
| Snorlax +0.617% |
Snorlax has currently 98.116% usage, Smeargle does have 7.55%.
=> Snorlax is played in 98.733% of teams with Scizor vs 87.234% for Smeargle. So you want to deal with Snorlax in priority, rather than this Smeargle!!! So those rankings does have 0 utility for players... I really don't know in what cases it can help someone ‍♂Oh I know: if all the Pokémon usage stats would be equal, genius :pimp:

What people want to know is simply "What are the most often played Pokémon with X?", and the answer is P(X|Y). Not "P(X|Y) - P(X)". Those figures clearly do not answer that question, are useless and drive players to errors. It is quite more useful to know that Snorlax has a P(X|Y) usage of 100% with Zapdos (even if it's obvious, it has to be known) than Nidoking has a P(X|Y) - P(X) usage of +10%...
So you just have to put the P(X|Y) instead of P(X|Y) - P(X), because it's all that people want to know! And if you are worried about space (you think there is not enough space in to show all the Pokémon teammates if for example there are many Pokémon with a high usage), simply create a separate stat file like "stats/2021-03/teammates/gen2ou-1760.txt" for example, where you list all the Pokémon + their P(X|Y) sorted by descending order :) There you have your amazing data!

Usage stats topic is crucial so I think this has to be seriously checked and listened to.

Last edited:


Always more to find
is a Site Content Manageris a Battle Simulator Administratoris a Programmeris a Super Moderatoris a Community Contributoris a Top Researcher
Research Leader
I moved the above post here from PS Suggestions because it has nothing to do with the sim.

This is really easy to change, but do people actually want it changed? Is anyone using the workaround described by Antar years ago?

I've already accumulated usage for April 1-4, so I deleted the offending line from the moveset counter and ran those stats again. I've attached two versions of Gen 8 OU moveset stats, please check both before and after to see if the Teammates section makes more sense like this.



Bring back Tail Glow
is a Pre-Contributor
From looking at both, yes, I prefer the teammates section in the second one. I agree that I want to see what, for instance, you need to prepare for alongside a specific Pokemon, and what is a good teammate for a Pokemon on my team, which you can often determine by usage alongside them. To see if a Pokemon is mostly used on one team many people have been spamming is easier with the second one too.
Marty This is insane! Thank you so much for your pretty quick reaction!
Yeah a lot of people want to see those new kind of stats (without the "+" which will now be useless lol), especially Pokémon AI developers like me.
Personally, I use the chaos file as a workaround to get those figures (dividing by the usage count and adding the usage of the mon to get those stats), but I think any people need to know those (not only json file readers like me) because they are fundamental.
I also prefer the more intuitively understandable Teammates numbers, but before you make that change official I would want to hear from someone who prefers the original calculation. Is there a benefit to using "P(X|Y) - P(X)" over "P(X|Y)" that none of us are noticing? Why was that the calculation used in the first place instead of the simpler one?

Hard to call this a reasonable decision if we're only hearing the arguments for one side.

(or if the "other side" has no supporters in the first place, ha ha, we were bamboozling ourselves all along)
For each rated battle, does its usage stats category come from the player with the lowest elo at the beginning or end of the battle?

Also, is there any way to find pokemon ivs when looking through the stat spreads in the chaos section? Every time I look, it doesnt seem like they are there.
Last edited:
Is there an easy way to combine the 3 months of stats for tiers not reported in the quarter update? Would like to see equally weighted first quarter usage for NFE.

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