Dual-Type Weakness Calculator
Every one of the 171 possible Pokémon typings, ranked by weaknesses, resistances, immunities and a disclosed defensive score -- sort by any column to find the strongest (or weakest) defensive typing.
All 171 typings (18 single types plus every dual-type pair), ranked by defensive score. Click a column to sort by it.
| Typing | ||||
|---|---|---|---|---|
GhostSteel | 11 | 4 | 9 | 3 |
SteelFairy | 11 | 2 | 9 | 2 |
NormalSteel | 10 | 3 (1×4) | 10 | 2 |
FlyingSteel | 10 | 2 | 8 | 2 |
Steel | 9 | 3 | 10 | 1 |
WaterSteel | 9 | 3 | 10 | 1 |
ElectricSteel | 9 | 3 (1×4) | 11 | 1 |
DragonSteel | 9 | 2 | 9 | 1 |
DarkSteel | 9 | 3 (1×4) | 9 | 2 |
GrassSteel | 8 | 2 (1×4) | 9 | 1 |
PoisonSteel | 8 | 2 (1×4) | 9 | 1 |
GroundSteel | 8 | 4 | 8 | 2 |
BugSteel | 8 | 1 (1×4) | 8 | 1 |
NormalGhost | 7 | 1 | 2 | 3 |
FireSteel | 7 | 3 (1×4) | 9 | 1 |
FightingSteel | 7 | 3 | 8 | 1 |
PsychicSteel | 7 | 4 | 9 | 1 |
FireGhost | 6 | 5 | 7 | 2 |
WaterGhost | 6 | 4 | 6 | 2 |
ElectricGhost | 6 | 3 | 5 | 2 |
GhostDark | 6 | 1 | 1 | 3 |
FireFairy | 5 | 4 | 7 | 1 |
WaterPoison | 5 | 3 | 8 | 0 |
WaterFairy | 5 | 3 | 6 | 1 |
ElectricPoison | 5 | 2 (1×4) | 8 | 0 |
ElectricFlying | 5 | 2 | 5 | 1 |
ElectricFairy | 5 | 2 | 5 | 1 |
IceSteel | 5 | 3 (2×4) | 8 | 1 |
PoisonDark | 5 | 1 | 4 | 1 |
RockSteel | 5 | 3 (2×4) | 8 | 1 |
GhostDragon | 5 | 5 | 6 | 2 |
GhostFairy | 5 | 2 | 1 | 3 |
DragonFairy | 5 | 4 | 7 | 1 |
Ghost | 4 | 2 | 2 | 2 |
NormalFire | 4 | 4 | 6 | 1 |
NormalPoison | 4 | 2 | 4 | 1 |
NormalFairy | 4 | 2 | 2 | 2 |
FireElectric | 4 | 3 (1×4) | 8 | 0 |
FireGround | 4 | 2 (1×4) | 5 | 1 |
FireFlying | 4 | 3 (1×4) | 6 | 1 |
FireDark | 4 | 4 | 6 | 1 |
WaterGround | 4 | 1 (1×4) | 4 | 1 |
WaterFlying | 4 | 2 (1×4) | 5 | 1 |
PoisonGhost | 4 | 4 | 4 | 2 |
PoisonFairy | 4 | 3 | 5 | 1 |
GroundFlying | 4 | 2 (1×4) | 3 | 2 |
GroundGhost | 4 | 5 | 3 | 3 |
GroundFairy | 4 | 4 | 4 | 2 |
FlyingGhost | 4 | 5 | 3 | 3 |
Fire | 3 | 3 | 6 | 0 |
Poison | 3 | 2 | 5 | 0 |
Fairy | 3 | 2 | 3 | 1 |
NormalWater | 3 | 3 | 4 | 1 |
NormalElectric | 3 | 2 | 3 | 1 |
NormalFlying | 3 | 3 | 2 | 2 |
FirePoison | 3 | 4 (1×4) | 8 | 0 |
WaterElectric | 3 | 2 | 5 | 0 |
WaterDark | 3 | 5 | 6 | 1 |
ElectricDark | 3 | 4 | 5 | 1 |
GrassGhost | 3 | 5 | 4 | 2 |
FightingGhost | 3 | 4 | 3 | 2 |
PoisonGround | 3 | 4 | 5 | 1 |
PoisonFlying | 3 | 4 | 5 | 1 |
PoisonDragon | 3 | 4 | 7 | 0 |
FlyingDark | 3 | 4 | 3 | 2 |
FlyingFairy | 3 | 5 | 4 | 2 |
BugGhost | 3 | 5 | 4 | 2 |
DarkFairy | 3 | 3 | 2 | 2 |
Water | 2 | 2 | 4 | 0 |
Electric | 2 | 1 | 3 | 0 |
Flying | 2 | 3 | 3 | 1 |
NormalGround | 2 | 4 | 2 | 2 |
NormalDragon | 2 | 4 | 4 | 1 |
FireWater | 2 | 3 | 5 | 0 |
FireFighting | 2 | 4 | 6 | 0 |
FirePsychic | 2 | 5 | 7 | 0 |
FireBug | 2 | 3 (1×4) | 6 | 0 |
FireDragon | 2 | 3 | 5 | 0 |
WaterFighting | 2 | 5 | 7 | 0 |
WaterBug | 2 | 3 | 5 | 0 |
ElectricFighting | 2 | 3 | 5 | 0 |
ElectricGround | 2 | 4 | 4 | 1 |
ElectricBug | 2 | 2 | 4 | 0 |
ElectricDragon | 2 | 4 | 6 | 0 |
GrassFairy | 2 | 5 (1×4) | 6 | 1 |
IceGhost | 2 | 5 | 3 | 2 |
FightingPoison | 2 | 3 (1×4) | 6 | 0 |
GroundDark | 2 | 6 | 4 | 2 |
FlyingRock | 2 | 5 | 5 | 1 |
FlyingDragon | 2 | 4 (1×4) | 5 | 1 |
PsychicGhost | 2 | 2 (2×4) | 2 | 2 |
BugFairy | 2 | 5 | 5 | 1 |
RockGhost | 2 | 6 | 4 | 2 |
RockFairy | 2 | 4 (1×4) | 5 | 1 |
DragonDark | 2 | 5 (1×4) | 6 | 1 |
Normal | 1 | 1 | 0 | 1 |
Ground | 1 | 3 | 2 | 1 |
Dragon | 1 | 3 | 4 | 0 |
Dark | 1 | 3 | 2 | 1 |
NormalFighting | 1 | 4 | 3 | 1 |
NormalPsychic | 1 | 2 | 1 | 1 |
NormalBug | 1 | 3 | 2 | 1 |
NormalDark | 1 | 3 (1×4) | 1 | 2 |
FireGrass | 1 | 3 | 4 | 0 |
FireRock | 1 | 4 (2×4) | 7 | 0 |
WaterPsychic | 1 | 5 | 6 | 0 |
WaterDragon | 1 | 2 | 3 | 0 |
ElectricPsychic | 1 | 4 | 5 | 0 |
GrassPoison | 1 | 4 | 5 | 0 |
FightingFlying | 1 | 5 | 4 | 1 |
FightingDragon | 1 | 5 (1×4) | 7 | 0 |
FightingDark | 1 | 3 (1×4) | 3 | 1 |
FightingFairy | 1 | 5 | 4 | 1 |
PoisonPsychic | 1 | 3 | 4 | 0 |
PoisonBug | 1 | 4 | 5 | 0 |
PoisonRock | 1 | 4 (1×4) | 6 | 0 |
GroundBug | 1 | 4 | 3 | 1 |
GroundDragon | 1 | 3 (1×4) | 3 | 1 |
PsychicFairy | 1 | 3 | 2 | 1 |
BugDark | 1 | 5 | 4 | 1 |
Fighting | 0 | 3 | 3 | 0 |
Bug | 0 | 3 | 3 | 0 |
NormalGrass | 0 | 6 | 4 | 1 |
NormalRock | 0 | 5 (1×4) | 4 | 1 |
WaterGrass | 0 | 3 | 3 | 0 |
WaterRock | 0 | 4 (1×4) | 5 | 0 |
ElectricGrass | 0 | 4 | 4 | 0 |
ElectricRock | 0 | 4 (1×4) | 5 | 0 |
GrassDark | 0 | 7 (1×4) | 6 | 1 |
IcePoison | 0 | 5 | 5 | 0 |
IceFairy | 0 | 4 (1×4) | 3 | 1 |
FightingGround | 0 | 6 | 4 | 1 |
FightingBug | 0 | 4 (1×4) | 5 | 0 |
GroundPsychic | 0 | 6 | 4 | 1 |
FlyingPsychic | 0 | 5 | 3 | 1 |
PsychicDragon | 0 | 6 | 6 | 0 |
BugDragon | 0 | 5 | 5 | 0 |
RockDark | 0 | 7 (1×4) | 6 | 1 |
Grass | -1 | 5 | 4 | 0 |
Psychic | -1 | 3 | 2 | 0 |
Rock | -1 | 5 | 4 | 0 |
FireIce | -1 | 4 (1×4) | 4 | 0 |
ElectricIce | -1 | 4 | 3 | 0 |
GrassFighting | -1 | 6 (1×4) | 6 | 0 |
GrassGround | -1 | 4 (1×4) | 2 | 1 |
GrassFlying | -1 | 5 (1×4) | 3 | 1 |
IceFlying | -1 | 4 (1×4) | 2 | 1 |
FightingPsychic | -1 | 3 | 2 | 0 |
FightingRock | -1 | 7 | 6 | 0 |
GroundRock | -1 | 6 (2×4) | 5 | 1 |
FlyingBug | -1 | 5 (1×4) | 3 | 1 |
PsychicDark | -1 | 2 (1×4) | 0 | 1 |
BugRock | -1 | 3 | 2 | 0 |
RockDragon | -1 | 6 | 5 | 0 |
NormalIce | -2 | 4 (1×4) | 1 | 1 |
WaterIce | -2 | 4 | 2 | 0 |
GrassPsychic | -2 | 7 (1×4) | 6 | 0 |
GrassRock | -2 | 4 | 2 | 0 |
IceGround | -2 | 5 | 1 | 1 |
IceDragon | -2 | 5 | 3 | 0 |
IceDark | -2 | 6 (1×4) | 3 | 1 |
PsychicBug | -2 | 6 | 4 | 0 |
PsychicRock | -2 | 7 | 5 | 0 |
Ice | -3 | 4 | 1 | 0 |
GrassBug | -3 | 6 (2×4) | 5 | 0 |
GrassDragon | -3 | 6 (1×4) | 4 | 0 |
IceFighting | -3 | 6 | 3 | 0 |
IceBug | -3 | 4 (2×4) | 3 | 0 |
GrassIce | -4 | 7 (1×4) | 4 | 0 |
IcePsychic | -4 | 6 | 2 | 0 |
IceRock | -4 | 6 (2×4) | 4 | 0 |
How the ranking works
Every one of the 171 typings runs through the same engine as the weakness calculator -- all 18 attacking types checked against it, grouped by multiplier -- then scored:
defensive score = resistances + 2 × immunities − weaknesses − 4x weaknesses
Worked example
Ghost/Dark, one of the highest-scoring typings in the table:
| Immune to (×2 each) | 3 × 2 = 6 |
| Resists | +1 |
| Weak to | −1 |
| Defensive score | 6 |
Immune to Normal, Fighting and Psychic all at once, resists Poison, and its only weakness is Fairy -- the one type added after Ghost/Dark was already a defensive standout. Sort the table above by "Defensive score" to see it land near the top.
One matchup at a time
Want the reasoning behind a single cell in this table? The type calculator explains one attacking-vs-defending pairing in a sentence.
Frequently Asked Questions
What's the "defensive score," exactly?
It's this site's own disclosed formula, not an official game stat: (types resisted) + 2 × (types immune to) − (types weak to) − (types weak to at 4x, counted again). It rewards immunities most, penalizes weaknesses, and penalizes a dangerous 4x weakness even more than an ordinary 2x one. Sort by any of the individual counts instead if you want a different read on the same data.
Why do only 171 typings exist, not 18 × 18 = 324?
Because a typing's two types aren't ordered -- Fire/Flying and Flying/Fire are the same Pokémon typing, not two different ones. That leaves the 18 single types plus C(18,2) = 153 unordered pairs, for 171 total.
What's the best defensive typing?
By this score, it's Ghost/Steel (4 weaknesses, 9 resistances, 3 immunities). A famous runner-up is Ghost/Dark (Sableye's typing): immune to Normal, Fighting AND Psychic at once, resisting Poison, with exactly one weakness -- Fairy, added in Generation 6.
What's the worst defensive typing?
By this score, it's Grass/Ice. A low score doesn't necessarily mean a bad Pokémon -- offensive stats, movepool and abilities matter far more in practice than raw defensive typing alone, and every typing here is still just one part of a real Pokémon's full profile.
Does this account for abilities like Levitate or Wonder Guard?
No -- this is pure type-chart math for the 18 types only. Abilities, items and other mechanics that change type matchups (Levitate granting Ground immunity, Thick Fat halving Fire and Ice damage, and so on) are real and important in actual play, but they're specific to individual Pokémon, not the type chart itself.
Type Matchups is a fan-made reference built from the games' own public type-effectiveness rules and is not affiliated with, endorsed by, or sponsored by Nintendo, Game Freak, Creatures Inc., or The Pokémon Company. Pokémon and the names of individual types are trademarks of their respective owners. See the Terms.