How coverage and Optimize work
Generation VI+ type chart. Offense assumes an attack of each Pokémon’s own types, and counts the single defending types it hits for more than 1×. Actual moves, abilities, stats, items and battle effects are not included.
Defense multiplies both defending types: 2× × 2× = 4×, 2× × ½× = 1×, and an immunity always gives 0×. Weak means more than 1×; resistance includes immunities. Missing types are types absent from the team, not necessarily coverage gaps.
Each trainer’s score is 3 × offensive types covered + distinct own types − 2 for each attacking type with a weakness and no resistant partner − ½ for each additional Pokémon weak to the same type. The joint score adds both trainer scores plus the lower score, favoring balanced linked teams.
Optimize selects up to six living, known linked pairs together using greedy selection and up to four improving swap passes. It may replace current members and is a heuristic, not a guaranteed global optimum. Fill random only adds eligible caught pairs to empty draft slots. Neither changes your saved team until Save.