Our Ultra League rankings evaluate every released Pokemon using four factors derived from the actual Pokemon GO game data, including the real PvP damage formula and type effectiveness multipliers from the game master file.
1. Stat Product at Optimal IVs
We brute-force every IV combination (0–15 for ATK/DEF/STA across all levels) to find the spread that maximizes Attack × Defense × HP under the 2500 CP cap. In capped leagues, low Attack with high Defense and Stamina (e.g. 0/15/15) often wins because CP weighs Attack more heavily, letting bulkier spreads squeeze in more total stats.
2. Moveset & Damage Formula
Every fast + charged move combination is simulated using the actual PvP damage formula: floor(0.5 × Power × Atk/Def × STAB × TypeEff) + 1. We compute a full attack cycle (N fast moves to charge one charged move) to get Damage Per Turn. Energy generation rate is also factored in, rewarding fast moves that reach charged moves quickly for shield pressure. Moves with buff/debuff effects get a 5% bonus.
3. Offensive Type Coverage
Each move's type effectiveness is averaged across all 18 Pokemon types using the multipliers from the game master (1.6× super effective, 0.625× not very effective, 0.391× double-resisted). This means a Fighting-type move (super effective against 5 types) scores higher than a Normal-type move (super effective against nothing). The coverage is baked directly into the damage calculation, not applied as a separate bonus.
4. Defensive Typing
We calculate how much damage each Pokemon's type(s) receive on average from all 18 attacking types. For dual types, both multipliers compound (e.g. Steel/Fairy resists 10 types). This defensive score adjusts the Pokemon's effective bulk — a Steel-type with the same DEF/HP as a Normal-type will rank higher because it takes less damage from the average opponent.
Final Score Formula
Score = Offense × Survivability0.5, where Offense is the cycle DPT (with type coverage baked in), and Survivability is DEF × HP adjusted for defensive typing. The square root on survivability gives diminishing returns to pure bulk — a Pokemon needs strong moves to rank high, not just tankiness.
How Tiers Are Assigned
Pokemon are placed into tiers based on how their score compares to the #1 ranked Pokemon:
S-Tier: Top 5% or Top 5
A-Tier: Top 15% or Top 12
B-Tier: Top 25% or Top 25
C-Tier: Top 35% or Top 38
D-Tier: Remaining
Shadow Pokemon
Shadow Pokemon receive a 20% Attack boost but suffer a ~17% Defense penalty. Both adjustments flow through the full damage and survivability calculations, so the ranking naturally captures whether the offensive gain outweighs the defensive loss for each specific Pokemon.
What We Don't Simulate (and Why)
Our rankings evaluate Pokemon against the average meta, not specific matchups. This means we don't simulate:
- Round-robin matchups — simulating every Pokemon vs every other Pokemon would give matchup-specific data, but the meta shifts constantly. Our approach rewards versatile Pokemon that perform well broadly.
- Second charged move — we evaluate the single best moveset. In practice, a second charged move adds coverage and bait potential, which can change rankings for Pokemon like Swampert (Hydro Cannon + Earthquake).
- Shield strategy — shielding and baiting (throwing cheap moves to burn shields, then landing the nuke) is a skill-based factor that's hard to quantify. Our EPT bonus partially captures shield pressure.
- Switch and role dynamics — some Pokemon excel as leads, closers, or safe swaps. These roles depend on team composition, not the Pokemon alone.
Win rates shown are estimated from the Pokemon's score percentile and ranking position. Rankings are recalculated after every game master update to reflect the latest move changes and balance patches from Niantic.