Click a Pokémon to view its Smogon data.
Choose a tier from the left dropdown (e.g. gen9ou, gen9championsou) and a month from the right. The list is populated from Smogon’s public usage-stats files at smogon.com/stats.
Higher rating cutoffs in the format name (1630, 1760, 2000) filter to games played by better-rated accounts, so the data skews toward higher-level play.
Click any row to open the per-Pokémon detail panel on the right.
All data is sourced from Smogon’s monthly usage-stats exports. smogu caches the raw files locally (memory + disk) and refreshes the format index every 6 hours, so newly published months appear automatically.
Stats reflect ladder play only — tournament sets, unofficial formats, and low-sample Pokémon may differ from what you see here.
Paste a Pokémon Showdown team export or a pokepast.es URL directly into the import box. Select a tier and month first to unlock counter data, synergy analysis, and swap suggestions.
Teams are saved to your browser's localStorage — no account needed. Data persists across page refreshes but is local to this browser and device.
Each Pokémon’s role is derived from three signals in priority order:
Common labels:
Note: a fully offensive Pokémon with a pivot move is labelled as an attacker — not a pivot — when the rest of the team already has two or more offensive threats.
Derived from counting offensive threats, pivots, hazard presence, and setup sweepers across all 6 slots:
Pokémon that appear most often in the “Checks and Counters” section of your team members’ Smogon moveset pages (fetched live from smogon.com/stats).
Measures how often each pair of team members appear together in Smogon ranked ladder games for the selected tier and month (sourced from the teammates% field in Smogon moveset data).
⚠️ Disclaimer: scores reflect co-occurrence on the ladder, not inherent strategic synergy. Three important caveats:
Low synergy does not mean your team doesn’t work. Off-meta teams, stall builds, and creative combinations will naturally score lower here.
Two suggestion types, generated when a tier is selected:
Each suggestion also shows the archetype impact: what the team’s style would become if that member were removed.
Smogon aggregate data for the selected tier is used to classify common archetypes for each Pokémon. Tabs show role name and usage %; moves include type and category chips. This reflects the tier’s common builds, not your imported set.
The development of this project was aided with AI tools. Though large parts of the project backend were hand-coded (such as most things in the smogu package), AI tools helped with generating integral parts of the project — like the web UI and parts of the API service — and refining the codebase.
If you do not want to support projects that use AI in any way or form, I apologise if this disappoints you.
This project is in active development and may contain bugs or incomplete features. I am also not a seasoned competitive Pokémon player, so some of the analysis could probably be improved with the help of more experienced players or additional data.
Please report any bugs, inaccuracies, or suggestions by emailing nwumechib@gmail.com.
Not affiliated with Nintendo, Game Freak, The Pokémon Company, Smogon, or any related organisation. Pokémon names, sprites, and data are the property of their respective owners and are used here for non-commercial, educational purposes.
A competitive Pokémon team analysis tool. Look up Smogon usage statistics, analyse your team’s coverage and counters, and explore VGC tournament data — all in one place.
Browse live Smogon usage statistics for any ranked format. Select a tier and month, then click any Pokémon for its full moveset breakdown.
Paste a Pokémon Showdown team export and get a full breakdown of your team’s strengths, weaknesses, and actionable swap suggestions.
An interactive force-directed graph built from real VGC tournament data. Nodes are Pokémon; edges show how often they appear on the same team.
Usage rankings and build data sourced from the Limitless TCG tournament database. See what Pokémon top players actually bring.
Load two teams side by side and compare them across speed tiers, type coverage gaps, role distribution, team scores, and a directed threat map showing which Pokémon threaten which.
Click a Pokémon to view its Smogon data.
No team imported yet.
Each Pokémon is placed on a horizontal track based on its computed level 100 speed stat (2×base + 31 IVs + ⌊EV / 4⌋ + 5, neutral nature). A Choice Scarf multiplies speed by 1.5×; a speed-boosting nature adds 10%. Blue chips = Team A, orange = Team B. Hover any chip for the exact value.
Offensive gaps — types the team has zero super-effective moves against. A gap means an opponent’s Pokémon of that type can switch in freely with no fear of a super-effective hit.
Defensive threats — types that hit 3 or more of the team’s Pokémon super-effectively. A shared weakness can be exploited by a single Pokémon to break through the team.
Rows are grouped by which team has the gap: A only, Both, or B only.
Counts how many Pokémon on each team fill each role (e.g. Physical Attacker, Hazard Setter, Pivot). Roles are derived from held item, EV spread, and moves. Comparing distributions shows which team has more support, more offense, or redundant roles.
(defense×2 − offense)÷3, clamped 0–1. 0 = pure offense, 1 = pure stall.A directed graph: an edge A→B means a Pokémon on Team A threatens one on Team B. Click the ? inside the Threat Map section for a full breakdown of what each criterion means.
Edge colour = the type of the best threatening move. Edge width and opacity scale with threat severity. Only edges above the minimum threshold (score ≥ 1.5) are shown.
Click any node to open the threat detail panel for that Pokémon.
A combined rating for how dangerous Pokémon A is against Pokémon B. Computed as:
(effectiveness × STAB × attack × weather × speed) / (defence × HP / 300)
Then multiplied by 1.25 if Smogon counter data confirms the matchup. Higher = more threatening. Edges are only drawn when score ≥ 1.5.
The move’s type hits the defender’s type(s) for super-effective damage. ×2 = one weakness, ×4 = dual weakness (e.g. a Ground move vs a Fire/Rock Pokémon).
Same Type Attack Bonus. The move’s type matches the attacker’s own type(s), adding ×1.5 damage. Doubles to ×2 for Pokémon with the Adaptability ability.
Compares the two Pokémon’s computed speed stats (level 90100, 31 IVs, EV investment, nature, held item). Being faster means you move first in most situations. Faster attackers score 20% higher; slower attackers score 20% lower. Numbers shown are the computed speed stats.
Active weather amplifies certain move types. Drought / Desolate Land boosts Fire moves by ×1.5; Drizzle / Primordial Sea boosts Water moves by ×1.5 (and halves the opposing type). Weather is detected from a team member’s ability.
Stealth Rock chip damage on switch-in, applied when the opposing team has a Stealth Rock setter and the defender doesn’t hold Heavy-Duty Boots. Damage = Rock-type effectiveness vs the defender × 12.5%. This reduces the defender’s effective bulk (a 50%-chip Charizard is much easier to KO).
The attacker appears in Smogon’s “Checks and Counters” data for the defender’s team members. This confirms the matchup with real ladder data and adds a 25% bonus to the threat score. It catches cases the stat heuristic misses (e.g. abilities, items, or movesets not modelled here).
Click a Pokémon to see its VGC build data.