Rows = attacking, columns = defending
| Nor | Fir | Wat | Ele | Gra | Ice | Fig | Poi | Gro | Psy | Bug | Roc | Gho | Dra | Dar | Ste | Fai | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Norm | ½× | 0× | ½× | |||||||||||||||
| Fire | ½× | ½× | 2× | 2× | 2× | ½× | ½× | 2× | ||||||||||
| Wate | 2× | ½× | ½× | 2× | 2× | ½× | ||||||||||||
| Elec | 2× | ½× | ½× | 0× | 2× | ½× | ||||||||||||
| Gras | ½× | 2× | ½× | ½× | 2× | ½× | ½× | 2× | ½× | ½× | ||||||||
| Ice | ½× | ½× | 2× | ½× | 2× | 2× | 2× | ½× | ||||||||||
| Figh | 2× | 2× | ½× | ½× | ½× | ½× | 2× | 0× | 2× | 2× | ½× | |||||||
| Pois | 2× | ½× | ½× | ½× | ½× | 0× | 2× | |||||||||||
| Grou | 2× | 2× | ½× | 2× | 0× | ½× | 2× | 2× | ||||||||||
| ½× | 2× | 2× | 2× | ½× | ½× | |||||||||||||
| Psyc | 2× | 2× | ½× | 0× | ½× | |||||||||||||
| Bug | ½× | 2× | ½× | ½× | ½× | 2× | ½× | 2× | ½× | ½× | ||||||||
| Rock | 2× | 2× | ½× | ½× | 2× | 2× | ½× | |||||||||||
| Ghos | 0× | 2× | 2× | ½× | ||||||||||||||
| Drag | 2× | ½× | 0× | |||||||||||||||
| Dark | ½× | 2× | 2× | ½× | ½× | |||||||||||||
| Stee | ½× | ½× | ½× | 2× | 2× | ½× | 2× | |||||||||||
| Fair | ½× | 2× | ½× | 2× | 2× | ½× |
Dual-type lookup
Pick one or two types to instantly see the defender's complete weakness and resistance profile.
Primary type
Secondary type (optional)
How to read the Pokémon type chart
The chart above is read row-first in "Attacking" mode (default). Pick the attacker's move type on the left, find the defender's type along the top, and the cell at the intersection tells you the damage multiplier. Switch to "Defending" mode if you want to think type-first from the defender's perspective.
Most cells are blank — that means a 1× neutral matchup. The chart only shows non-neutral multipliers (2×, ½×, ¼×, 4×, and 0×) to keep the visual signal high. A fully neutral row like Normal-type offense looks sparse precisely because Normal hits most types for 1×.
The 18 types, ranked offensively
Offensive value of a type is measured by how many of the 18 types it hits for super-effective damage. Top of the list in Gen 9:
- Ground — super-effective on Fire, Electric, Poison, Rock, Steel (5 types). Strongest single offensive type in the game.
- Fighting — Normal, Ice, Rock, Dark, Steel (5 types). Same count as Ground but worse coverage in practice because of Ghost immunity.
- Rock — Fire, Ice, Flying, Bug (4 types).
- Ice — Grass, Ground, Flying, Dragon (4 types). The "dragon-slayer" type but defensively the worst — see below.
- Fire — Grass, Ice, Bug, Steel (4 types).
At the bottom: Normal and Electric hit nothing super-effectively except for one type each (Rock immune for Normal, no super-effective at all… wait, actually Electric hits Water and Flying). The ranking shifts when you add abilities — Pixilate, Galvanize, Aerilate, Refrigerate convert Normal moves to a different type and give Normal types a path to relevance.
The 18 types, ranked defensively
Defensive value is measured by weaknesses minus resistances. In Gen 9 (after Fairy and Steel rebalancing), the cleanest defensive types are:
- Steel — 10 resistances + 1 immunity, only 3 weaknesses (Fire, Ground, Fighting). Best mono-type defensively.
- Fairy — Resists Fighting, Dark, Bug; immune to Dragon. Weak to Steel, Poison only.
- Water — Resists Fire, Water, Ice, Steel. Weak to Grass, Electric only.
- Ghost — Immune to Normal and Fighting (huge in singles). Weak to Ghost and Dark.
The worst defensive single types are Ice (4 weaknesses: Fire, Fighting, Rock, Steel — only 1 resistance) and Rock (5 weaknesses: Water, Grass, Fighting, Ground, Steel). Ice Pokémon survive in the meta only via secondary typings (Ice/Water like Cetitan, Ice/Ghost like Froslass, Ice/Dragon like Baxcalibur and Kyurem).
Best and worst dual-type combinations
Combining two types multiplies their matchups. The best dual typings in Gen 9:
- Steel/Flying (Corviknight, Skarmory) — 9 resistances, 2 immunities (Ground, Poison), 2 weaknesses (Electric, Fire). Premier defensive Pokémon.
- Water/Ground (Quagsire, Clodsire, Swampert) — 4 resistances, 1 immunity (Electric), only 1 weakness (Grass — though it's 4×).
- Ghost/Fairy (Flutter Mane, Mimikyu) — 3 immunities (Normal, Fighting, Dragon), 4 resistances, 2 weaknesses (Ghost, Steel).
- Steel/Ghost (Gholdengo, Aegislash) — Gholdengo's Good as Gold also makes it immune to status moves, layering on top of an already excellent defensive profile.
The worst dual typings are mostly Ice combinations — Ice/Rock (3× weakness to Steel, 4× weaknesses to Fighting and Fire) and Grass/Ice (Abomasnow's 7 weaknesses including 4× to Fire) are notorious. Insurgent, Avalugg, and Cetitan have to lean hard on their stats and ability synergies to overcome typing alone.
Type immunities — the full list
There are seven type-based immunities in the chart (not counting ability-based ones like Levitate, Flash Fire, Volt Absorb):
- Normal → no effect on Ghost
- Fighting → no effect on Ghost
- Ghost → no effect on Normal
- Psychic → no effect on Dark
- Electric → no effect on Ground
- Ground → no effect on Flying
- Dragon → no effect on Fairy
- Poison → no effect on Steel
The most exploited immunity in competitive play is Ground vs. Flying. It's why Levitate (giving non-Flying types an "honorary Flying" status against Ground) is one of the best abilities in the game, and why Tera Flying is a popular escape hatch on Pokémon like Garchomp and Iron Bundle.
Pokémon type chart history
The chart has changed three times since Generation 1:
- Gen 1: No Dark or Steel types existed. Psychic had no immunity and dominated the metagame ("Bug" was supposed to be its counter but no Bug-type with usable stats had a Bug-type move).
- Gen 2: Dark and Steel added. Bug damage to Poison was changed from 2× to ½×. Ghost damage to Psychic was changed from 0× (a bug in Gen 1) to 2×.
- Gen 6: Fairy added. Steel lost its resistance to Ghost and Dark. The chart we use today is the Gen 6+ version.
- Gen 9: No changes to type chart, but Terastallization adds a new layer where Pokémon can temporarily change to any of the 18 types (plus Stellar) during battle.