S Rank:
Snorlax Rank:
Snorlax
Electric Rank:
Raikou
Zapdos
What about Snorlax being S and Zapdos + Raikou being A+? That would make more sense
A Rank:
Cloyster
Exeggutor
Gengar
Skarmory
Suicune
Tyranitar
Vaporeon
B Rank:
Forretress
Machamp
Marowak
Miltank
Nidoking
Starmie
Steelix
Tbh I would mix your A rank with some B rank mons into A and A-.
Something like:
A Rank:
Cloyster
Exeggutor
Gengar
Skarmory
Suicune
Tyranitar
A- Rank:
Machamp
Marowak
Nidoking
Starmie
Steelix
Vaporeon
Mons like Machamp, Marowak and Nidoking are huge threats in GSC, B rank is too low for them. This is more or less the same as your list, but I dropped Vap, Miltank and Forry 1 rank because they are not as good as the rest of the mons in the same rank.
C Rank:
Blissey
Jolteon
Espeon
Heracross
Misdreavus
Umbreon
D Rank:
Charizard
Dragonite
Muk
Porygon2
Quagsire
Rhydon
Tentacruel
B rank (including B+, B and B-) could consist in these mons + Clefable (you ranked it too low), and maybe Golem and Kangaskhan.
Something like this:
B+ Rank:
Forretress
Dragonite (maybe B, Im biased here)
Heracross
Miltank
Misdreavus
Umbreon
B Rank:
Blissey
Espeon
Jolteon
Porygon2
Quagsire (B instead of B- as other similar BDers because it walls electrics which is huge)
Rhydon
B- Rank:
Charizard
Clefable
Golem
Kangaskhan
Muk
Tentacruel
E Rank:
Clefable
Golem
Houndoom
Kangaskhan
Meganium
Scizor
Smeargle
F Rank:
Alakazam
Ampharos
Donphan
Entei
Jumpluff
Jynx
Moltres
Piloswine
Sandslash
Ursaring
Venusaur
Excluding Clefable. Golam and Kangaskhan, which I moved 1 rank up, these mons are what we could consider the C rank. We could divide them in C+ and C
C+ Rank:
Alakazam
Houndoom
Jynx
Scizor
Smeargle
C Rank:
The rest
I used the same definitions than in the OP
S rank => Dominates the meta (lax obv)
A rank => Pokemons that fulfill a vital role for their team in a way no other Pokemon can, and are versatile enough to fit onto just about any team. They are huge threats that can either wall a big part of the metagame or easily open holes or sweep teams with little support.
B rank => Pokemons that fulfill a given offensive/defensive/support niche. They have some flaws that prevent them from being as consistent as the higher-ranked Pokemon, but are nonetheless powerful and should be taken into account when building a team.
C rank => Pokemons that usually need more support to be effective. They are often inferior to the higher-ranked Pokemon but have one or two advantages that give them a niche with proper team-support.
So to sum it up, my rankins (p similar to yours but using subrankings and with some small changes)
S Rank:
Snorlax
A+ Rank:
Raikou
Zapdos
A Rank:
Cloyster
Exeggutor
Gengar
Skarmory
Suicune
Tyranitar
A- Rank:
Machamp
Marowak
Nidoking
Starmie
Steelix
Vaporeon
B+ Rank:
Forretress
Dragonite (maybe B, Im biased here)
Heracross
Miltank
Misdreavus
Umbreon
B Rank:
Blissey
Espeon
Jolteon
Porygon2
Quagsire (B instead of B- as other similar BDers because it walls electrics which is huge)
Rhydon
B- Rank:
Charizard
Clefable
Golem
Kangaskhan
Muk
Tentacruel
C+ Rank:
Alakazam
Houndoom
Jynx
Scizor
Smeargle
C Rank:
Ampharos
Donphan
Entei
Jumpluff
Moltres
Piloswine
Sandslash
Ursaring
Venusaur