There are 18 damage-type groups in Pokémon Go (like Water, Grass, Ice, Fire, Rock, etc...)
Every Pokémon has 1 or 2 Types.
Every Pokémon has 2 Attacks - Quick Move and Special Move.
Based on Pokémon Type and Attack Types it has - every Pokémon in Pokémon Go has it's strengths and weaknesses.
We developed ranking algorithms that create Pokémon counterpick lists based on:
1. Type(s) of Attacking Pokémon
2. Attack Types of Attacking Pokémon
3. Attacking Pokémon DPS (Damage per Second)
4. Type(s) of Defending Pokémon
5. Potential Attack Types of Defending Pokémon
6. Defending Pokémon DPS
* We have excluded legendary Pokémon (Mewtwo, Mew, Moltres, Articuno and Zapdos) from results because they are not available to all Pokémon Go players.
We spent over 2 month developing this tool (July and August 2016.)
The first algorithm we developed back in August was ok for the first version of tool but it wasn't what we really wanted...
Because of that algorithms were re-developed from scratch around September 1st 2016. and we are updating/improving counterpick lists on daily basis since then.