Most Pokémon GO tier lists are vibes. Someone with 10 000 raids of experience eyeballs which mons feel strong, and out comes an S/A/B/C ranking. That works — for them. For everyone else, it's an appeal to authority.
Hundo Hunter does it differently. Every tier ranking is grounded in a composite score with documented inputs. This post explains the inputs, the formula, and the trade-offs we made.
The composite score
score = tier_weight × STAB × type_effectiveness × moveset_dps × bulk
Five inputs. Each is a number derived from a known data source. Multiplied together, you get the score.
tier_weight (S = 100, A+ = 80, A = 60, B = 40, C = 20)
Inherited from PvPoke + Silph Arena tournament data, refreshed quarterly. We don't compute tier-weight from raw stats — we use the consensus of the two largest PoGO ranking sources because they catch meta nuances (specific moveset combos, form variants) that pure DPS rankings miss.
STAB (1.2 if move type matches attacker type, else 1.0)
Same-Type Attack Bonus. Direct from the official PoGO damage formula. No magic.
type_effectiveness (1.6 SE, 0.625 resisted, 0.39 immune)
Product across the boss's types. A dual-type boss takes type effectiveness on both types, so the multiplier compounds. Bug attacking Psychic/Grass: ×1.6 × ×1.6 = ×2.56. That's why some boss matchups are dramatically more lopsided than single-type analysis would suggest.
moveset_dps (published top-moveset DPS for the attacker)
Computed from the attacker's best fast + charged combo using the standard PvE DPS formula. We use closed-form math, not full Markov-chain simulation — fast enough to compute for every attacker × moveset at static-site build time.
bulk = (HP × Def)^0.5 / 10000
Survival proxy. A square-root product instead of HP × Def because diminishing returns matter: a high-HP, low-Def mons is more fragile than the raw product suggests.
Why not PokeBattler simulation?
PokeBattler runs a full Markov-chain simulation per attacker × moveset × boss combo. It's the gold standard for raid DPS. But it's slow — ~100 ms per (attacker, moveset, boss) tuple. With 1 200 mons × 5 movesets × 517 bosses, that's a 100 000-second computation. Can't do that at build time on a static site.
Our closed-form score captures ~90% of the ranking accuracy in 1 ms per tuple. We benchmark against PokeBattler quarterly. When the rankings drift more than 2 positions, we adjust the formula weights.
Trade-offs
- ▸We miss boss-specific moveset matchups (a boss with Ice Beam vs Hurricane is treated identically by our formula but different by PokeBattler).
- ▸We assume top-moveset for the attacker. Sub-optimal movesets get under-ranked.
- ▸We don't simulate dodge mechanics — relevant in solo raids, less in raid-party contexts.
Read the methodology articles at /methodology for the full derivation of every calculation Hundo Hunter does — IV solver, raid rankings, PvP meta, raid catch CP, tier list.