← Back to IV Calc
SIX-SLOT TYPE AUDIT

Pokémon Team Builder

Choose one to six species and inspect the team’s defensive overlaps, immunities, resistances, and STAB-only offensive reach across all 18 types.

input channel

live result

13 / 18 covered · 0 shared weaknesses

No attacking type hits three selected members super effectively

AttackWeakResistImmune
Normal001
Fire120
Water120
Electric220
Grass130
Ice110
Fighting121
Poison010
Ground201
Flying110
Psychic200
Bug020
Rock100
Ghost101
Dragon000
Dark100
Steel030
Fairy030

offensive STAB coverage

nor 1×fir 2×wat 2×ele 1×gra 2×ice 2×fig 2×poi 1×gro 2×fly 2×psy 2×bug 2×roc 2×gho 2×dra 1×dar 1×ste 2×fai 2×

How the pokémon team builder works

This Pokémon team builder turns six species choices into two separate type audits. The defensive profile asks how each attacking type interacts with every member’s stored single or dual typing. The offensive profile treats each member’s own types as its same-type attack bonus, or STAB, options and checks which pure defending types at least one member can hit super effectively. Empty slots are ignored, so the same tool works for an early three-member plan or a complete party of six.

defensive multiplier(member,atk)=defTypemember typeschart[atk][defType]weakCount(atk)=|{members with multiplier>1}|offensiveBest(def)=maxateam STAB typeschart[a][def]\begin{aligned} \text{defensive multiplier}(\text{member}, \text{atk}) &= \prod_{\text{defType} \in \text{member types}} \text{chart}[\text{atk}][\text{defType}] \\ \text{weakCount}(\text{atk}) &= \left\lvert \{ \text{members with multiplier} > 1 \} \right\rvert \\ \text{offensiveBest}(\text{def}) &= \max_{a \in \text{team STAB types}} \prod \text{chart}[a][\text{def}] \end{aligned}
The symbols are defined in the surrounding method, and every input stays in the shareable URL.

For defense, the calculator walks through all 18 attacking types. A member with one type contributes the chart value for that defense. A dual-type member multiplies both values: two ordinary weaknesses become 4×, a weakness and resistance cancel to 1×, and any immunity makes the product zero. The table counts a member as weak only when the finished multiplier is greater than one, resistant only from zero to less than one, and immune only at zero. A shared weakness begins at three members, including exactly three; that boundary makes repeated pressure visible without claiming every two-member overlap is a structural failure.

For offense, every distinct type carried by the chosen roster enters a pool of possible STAB attacking types. Against each of the 18 pure defenders, the calculator keeps the largest chart multiplier that any pooled type can reach. A defender counts as covered when that best value is greater than one. This is deliberately stricter than neutral coverage and deliberately simpler than a moveset simulator: it assumes access to a useful move of each native type, but it does not guess actual learnsets, base power, accuracy, physical or special category, or whether a weak member can enter safely.

Read defense and offense together. A roster can cover many pure types while still folding to one common attacking type, and a defensively varied team can lack super-effective STAB into several targets. Abilities such as Levitate, Thick Fat, Flash Fire, and Water Absorb can rewrite a matchup, while items, temporary type changes, weather, field effects, and move-specific rules add more context. The builder uses only the factual types stored in the local 255-record snapshot, which keeps its result reproducible and explains exactly what is and is not being counted.

Worked example

Select Charizard, Blastoise, Venusaur, Pikachu, Gengar, and Snorlax. Their stored typings contribute Fire, Flying, Water, Grass, Poison, Electric, Ghost, and Normal STAB options. The calculator evaluates those choices against each pure defender, then separately multiplies incoming attacks across each member’s defensive types. If Rock hits at least three selected members above 1×, Rock appears as a shared weakness; if no team STAB type reaches more than 1× against a defender, that type stays in the uncovered list.

How to read the result

The headline is a screening result, not a team ranking. “13 / 18 covered” means thirteen pure defensive types have at least one super-effective native attack type somewhere on the roster. It says nothing about dual-type targets, move availability, damage, roles, speed control, recovery, entry hazards, format rules, or matchups between actual species. Treat shared weaknesses as prompts to inspect replacements, then use the type calculator for a specific dual defense and the coverage calculator for an actual four-move set.

Common questions

What makes a shared weakness in this Pokémon team builder?
An attacking type is flagged when its final type-chart multiplier is above 1× against three or more selected members.
Does offensive coverage use every move a species can learn?
No. It uses only each selected species’ stored native types as possible STAB attack types, not learnsets or coverage moves.
How are dual-type team members counted?
Incoming chart values multiply across both defensive types, so the finished value may be 4×, 2×, 1×, ½×, ¼×, or 0×.
Are abilities such as Levitate included?
No. The audit uses stored types only. Abilities, items, temporary types, and move exceptions must be checked separately.

Sources

Formula and table references are named with the review year. The calculations run entirely from the reviewed local snapshot; no third-party service is called when you change an input.

  1. Bulbapedia — Type (reviewed 2026)Modern 18-type effectiveness relationships and dual-type multiplication.
  2. Bulbapedia — Same-type attack bonus (reviewed 2026)Native-type attack context used by the STAB-only coverage model.
  3. PokeAPI v2 Pokémon and type resources (local snapshot prepared 2026)The committed 255-record species pool, stored typings, identifiers, and type-chart cross-check.

Related calculators

Reserved ad space