Today I've had a very busy day, so I hadn't had the time to sit down on my laptop and type everything I did yesterday, until now.

The formulae that will be written here would be better suited in a kind of little program that would produce the numbers for us, by the way. They become rather hairy quite quickly, so be warned.

So hereunder are a collection of ratings of a Pokemon, in particular:

**Physical Tankiness** (PT) and **Special Tankiness** (ST) of a Pokemon, which provide the physical and special defensive prowess of a Pokemon
**Physical Sweepiness** (PS) and **Special Sweepiness** (SS) of a Pokemon, which provide the physical and special offensive capabilities of a Pokemon
**Offense/Defense Balance** (ODB) of a Pokemon, providing whether or not a Pokemon's stats are geared towards offense (Atk/SpA/Spe), defense (HP/Def/SpD), or neither.
**Physical/Special Balance** (PSB) of a Pokemon, providing whether or not a Pokemon's stats are geared towards physical stats (Atk/Def), special stats (SpA/SpD), or neither.
**Overall Rating** of a Pokemon, providing a rating from each of the Pokemon's stats.

Before I continue, I wish to note that a Pokemon having high attacking stats but low defense and speed stats is NOT deemed to be offensive, as it can't do enough damage before it is KOed. An example of such a Pokemon is Camerupt.

**Physical Tankiness, Special Tankiness, Physical Sweepiness, Special Sweepiness**

Code:

Physical Tankiness (PT) = HP × Def ÷ 35
Special Tankiness (ST) = HP × SpD ÷ 35
Physical Sweepiness (PS) = Atk × (Atk × SF + 315) ÷ (Atk × (1-SF) + 315)
Special Sweepiness (SS) = SpA × (SpA × SF + 315) ÷ (SpA × (1-SF) + 315)
where HP is the normalized Base HP
Atk is the normalized Base Attack
Def is the normalized Base Defense
SpA is the normalized Base Special Attack
SpD is the normalized Base Special Defense
SF is the Speed Factor of the Base Speed

PT and ST are divided by 35 to normalize their values.

A tankiness (physical or special) of 100 means that the Pokemon has average (physical or special) defense. A tankiness of more than 100 means it's pretty defensive (the more the better), while a tankiness of less than 100 means that it can't take hits well.

A sweepiness (physical or special) of 100 means that the Pokemon has average (physical or special) offense. A sweepiness of more than 100 means it's pretty offensive (the more the better), while a sweepiness of less than 100 means it cannot attack well.

**Offense/Defense Balance**

Code:

ODB = 55 × ln(max(PS,SS) ÷ max(PT,ST)), rounded to one decimal place.
where max([I]a[/I],[I]b[/I]) returns the larger of [I]a[/I] and [I]b[/I]
ln([I]x[/I]) is the natural logarithm of [I]x[/I]

If the ODB is negative, then the Pokemon's stats are geared towards defense. If the ODB is positive, then the Pokemon's stats are geared towards offense. If it is near zero, then the stats are balanced, having roughly the same amount of tankiness as it has sweepiness.

A small chart can give us the degree of offense/defense:

Code:

ODB is Pokemon's Stats are geared Pokemon with this ODB
---------------------------------------------------------------------------------
More than 40 Absolutely towards offense Shedinja, Deoxys-A, Deoxys, Sharpedo, Alakazam, Gengar, Ninjask, Azelf, Absol, Syclant
Between 30 and 40 Strongly towards offense Manectric, Darkrai, Floatzel, Chatot, Zangoose, Dodrio, Mewtwo, Dugtrio, Espeon, Weavile, Swellow, Staraptor, Honchkrow, Porygon-Z, Rampardos, Lucario, Ambipom, Primeape, Salamence, Infernape
Between 20 and 30 Towards offense Scyther, Beautifly, Mothim, Aerodactyl, Delibird, Breloom, Rotom, Fearow, Electivire, Banette, Deoxys-S, Starmie, Rayquaza, Blaziken, Rapidash, Sceptile, Jolteon, Xatu, Toxicroak, Houndoom, Cacturne, Purugly, Raticate, Zapdos, Roserade, Jynx, Hitmonlee, Latios, Stantler, Regigigas, Charizard, Typhlosion, Raichu, Girafarig, Seviper, Pinsir, Palkia, Shiftry
Between 10 and 20 Moderately towards offense Unown, Yanmega, Kricketune, Victreebel, Qwilfish, Magmortar, Plusle, Garchomp, Arcanine, Flygon, Moltres, Mismagius, Froslass, Electrode, Heracross, Luxray, Persian, Kingler, Venomoth, Raikou, Slaking, Tauros, Bibarel, Crobat, Mamoswine, Kabutops, Mr. Mime, Crawdaunt, Entei, Dialga, Ursaring, Mightyena, Linoone, Dragonite, Scizor, Arbok, Hitmonchan, Cherrim, Golduck, Gallade, Gardevoir, Nidoking
Between 5 and 10 Slightly towards offense Gyarados, Skuntank, Furret, Glaceon, Flareon, Chimecho, Heatran, Pidgeot, Minun, Farfetch'd, Machamp, Solrock, Lunatone, Volbeat, Illumise, Exploud, Carnivine, Leafeon
Between -5 and 5 Equally in offense and defense Butterfree, Beedrill, Groudon, Kyogre, Kingdra, Gorebyss, Ditto, Latias, Kangaskhan, Seaking, Exeggutor, Octillery, Granbull, Camerupt, Lopunny, Hitmontop, Drifblim, Togekiss, Magnezone, Mew, Celebi, Jirachi, Manaphy, Shaymin, Sableye, Arceus, Feraligatr, Mawile, Mesprit, Venusaur, Castform, Delcatty, Huntail, Drapion, Glalie, Phione, Ariados, Metagross, Ninetales, Hariyama, Ampharos, Lumineon, Luvdisc, Tyranitar, Medicham, Wailord, Armaldo, Parasect, Masquerain, Empoleon, Pelipper, Gliscor, Swampert
Between -10 and -5 Slightly towards defense Vileplume, Nidoqueen, Abomasnow, Sandslash, Ludicolo, Meganium, Sunflora, Grumpig, Blastoise, Omastar
Between -20 and -10 Moderately towards defense Ho-oh, Revenankh, Torterra, Miltank, Politoed, Jumpluff, Poliwrath, Walrein, Tentacruel, Spiritomb, Milotic, Wigglytuff, Vaporeon, Dusknoir, Whiscash, Articuno, Bellossom, Clefable, Weezing, Suicune, Donphan, Corsola, Altaria, Lanturn, Muk, Claydol, Dunsparce, Uxie, Wormadam-G, Wormadam, Marowak, Wormadam-S, Pachirisu
Between -30 and -20 Towards defense Gastrodon, Dewgong, Noctowl, Swalot, Ledian, Kecleon, Smeargle, Quagsire, Cloyster, Vespiquen, Dustox, Golem, Sudowoodo, Tropius, Skarmory, Mantine, Deoxys-D, Hippowdon, Bronzong, Magcargo, Giratina, Lugia, Tangrowth, Hypno, Lickilicky, Rhyperior, Cradily, Lapras, Slowbro, Slowking
Between -40 and -30 Strongly towards defense Aggron, Relicanth, Forretress, Azumarill, Cresselia, Probopass, Torkoal
Less than -40 Absolutely towards defense Umbreon, Registeel, Snorlax, Regirock, Regice, Steelix, Bastiodon, Wobbuffet, Blissey, Shuckle

**Physical/Special Balance**

Code:

PSB = 55 × ln((PT × PS) ÷ (ST × SS)), rounded to one decimal place
where ln([I]x[/I]) is the natural logarithm of [I]x[/I]

If the PSB is negative, then the Pokemon's stats are geared towards the special stats. If the PSB is positive, the Pokemon's stats are geared towards the physical stats.

A small chart can give us the degree of physical/special disparity:

Code:

PSB is Pokemon's Stats are geared Pokemon with this PSB
---------------------------------------------------------------------------------
More than 40 Absolutely towards physical Kingler, Aggron, Rhyperior, Steelix, Cloyster, Sudowoodo, Sandslash, Leafeon, Skarmory, Regirock, Gliscor, Tauros, Staraptor, Relicanth, Donphan, Golem, Pinsir, Forretress, Shedinja, Miltank, Slaking, Rampardos, Scizor, Breloom, Kabutops, Heracross, Groudon, Mamoswine, Hariyama, Hippowdon, Weavile, Kangaskhan
Between 30 and 40 Strongly towards physical Regigigas, Qwilfish, Dodrio, Drapion, Scyther, Granbull, Tangrowth, Solrock, Mawile, Hitmontop, Swellow, Metagross, Hitmonchan, Zangoose, Armaldo, Garchomp, Marowak, Torkoal, Crawdaunt, Furret
Between 20 and 30 Towards physical Ambipom, Weezing, Absol, Machamp, Ninjask, Hitmonlee, Torterra, Gyarados, Mightyena, Aerodactyl, Ursaring, Fearow, Feraligatr, Primeape, Ariados, Quagsire, Tyranitar, Wormadam-G
Between 10 and 20 Moderately towards physical Bibarel, Huntail, Entei, Kricketune, Skuntank, Raticate, Dusknoir, Purugly, Banette, Parasect, Linoone, Floatzel, Delcatty, Crobat, Bastiodon, Sharpedo, Dragonite, Revenankh, Flygon, Salamence, Sableye, Swampert, Luxray, Poliwrath, Lopunny, Toxicroak
Between 5 and 10 Slightly towards physical Dugtrio, Pidgeot, Honchkrow, Arbok, Volbeat, Seaking, Rapidash, Muk, Gallade, Dunsparce, Victreebel, Arcanine, Nidoqueen, Shiftry, Nidoking
Between -5 and 5 Equally in physical and special Syclant, Blaziken, Slowbro, Bronzong, Carnivine, Electivire, Stantler, Lickilicky, Magcargo, Whiscash, Gorebyss, Persian, Deoxys-A, Deoxys, Azelf, Infernape, Mothim, Deoxys-S, Rayquaza, Cacturne, Seviper, Unown, Froslass, Exploud, Kingdra, Ditto, Octillery, Mew, Celebi, Jirachi, Manaphy, Shaymin, Arceus, Spinda, Mesprit, Castform, Glalie, Phione, Medicham, Wailord, Spiritomb, Uxie, Wormadam-S, Swalot, Vespiquen, Deoxys-D, Giratina, Azumarill, Registeel, Wobbuffet, Shuckle, Exeggutor, Farfetch'd, Meganium, Omastar, Lucario, Beedrill, Blastoise, Yanmega, Dialga, Tropius, Cradily, Umbreon, Camerupt
Between -10 and -5 Slightly towards special Snorlax, Lumineon, Abomasnow, Girafarig, Corsola, Claydol, Pelipper, Wigglytuff, Altaria, Cresselia, Delibird, Walrein, Dewgong, Lapras, Lugia, Golduck, Jumpluff, Suicune, Kecleon, Smeargle, Moltres
Between -20 and -10 Moderately towards special Beautifly, Pachirisu, Dustox, Vileplume, Gastrodon, Bellossom, Xatu, Flareon, Probopass, Drifblim, Chatot, Magnezone, Starmie, Raichu, Articuno, Ho-oh, Ninetales, Empoleon, Clefable, Charizard, Typhlosion, Venusaur, Manectric, Luvdisc, Heatran
Between -30 and -20 Towards special Wormadam-G, Mewtwo, Zapdos, Politoed, Palkia, Cherrim, Hypno, Lanturn, Sceptile, Masquerain, Darkrai, Slowking, Venomoth, Ampharos, Ludicolo, Glaceon
Between -40 and -30 Strongly towards special Magmortar, Electrode, Raikou, Sunflora, Houndoom, Porygon-Z, Rotom, Illumise, Chimecho, Tentacruel, Latias, Latios, Lunatone
Less than -40 Absolutely towards special Kyogre, Vaporeon, Butterfree, Milotic, Noctowl, Gengar, Jolteon, Togekiss, Plusle, Minun, Ledian, Mismagius, Grumpig, Gardevoir, Roserade, Espeon, Regice, Mantine, Mr. Mime, Alakazam, Jynx, Blissey

**Overall Rating**

*Part 1: The Rating Modifier*

The **Rating Modifier** (M) is used in the Overall Rating of a Pokemon, to reward Pokemon having outstanding PT, PS, ST, and/or SS. Each modifier increases slowly from 1 for a rating (tankiness or sweepiness) of 100, to 1.375 for a rating of 180 (about 2 standard deviations from the mean), to 2.5 for a rating of 260 (about 4 standard deviations from the mean).

Code:

Modifier for PT (MPT) = (3 × PT^2 - 600 × PT + 81200) ÷ 51200, if PT > 100
= 1, otherwise
Modifier for PS (MPS) = (3 × PS^2 - 600 × PS + 81200) ÷ 51200, if PS > 100
= 1, otherwise
Modifier for ST (MST) = (3 × ST^2 - 600 × ST + 81200) ÷ 51200, if ST > 100
= 1, otherwise
Modifier for SS (MSS) = (3 × SS^2 - 600 × SS + 81200) ÷ 51200, if SS > 100
= 1, otherwise
M = MPT × MPS × MST × MSS

*Part 2: The Overall Rating Formula*

Code:

Overall Rating = PT × ST × (PS + SS) × M ÷ (56 × (PT + ST)), rounded to the nearest whole number.

The rating can be used as follows:

Code:

Rating is Pokemon's Stats are Pokemon with this rating
---------------------------------------------------------------------------------
More than 1400 Exaggerated Arceus, Deoxys-A, Giratina, Mewtwo, Rayquaza, Slaking, Regigigas, Palkia, Dialga, Ho-oh, Lugia, Deoxys, Groudon, Kyogre
900 to 1399 Too Good None
580 to 899 Fantastic Cresselia, Azelf, Salamence, Garchomp, Darkrai, Latios, Mew, Celebi, Jirachi, Manaphy, Shaymin, Latias, Syclant, Heatran, Zapdos
420 to 579 Excellent Dragonite, Entei, Blissey, Tyranitar, Raikou, Regirock, Regice, Registeel, Moltres, Suicune, Metagross, Articuno, Snorlax, Uxie, Mesprit, Arcanine, Espeon
300 to 419 Very Good Infernape, Electivire, Porygon-Z, Gyarados, Deoxys-D, Togekiss, Milotic, Gengar, Umbreon, Magmortar, Lapras, Alakazam, Lucario, Charizard, Typhlosion, Deoxys-S, Weavile, Rhyperior, Mamoswine, Sceptile, Blaziken, Vaporeon, Hippowdon, Walrein, Yanmega, Steelix, Leafeon, Kingdra, Jolteon, Feraligatr, Swampert, Revenankh, Flygon
250 to 299 Quite Good Lickilicky, Torterra, Aggron, Heracross, Scyther, Tangrowth, Gallade, Gardevoir, Blastoise, Aerodactyl, Starmie, Roserade, Magnezone, Crobat, Floatzel, Honchkrow, Pinsir, Venusaur, Probopass, Glaceon, Houndoom, Luxray, Meganium, Empoleon, Staraptor, Gliscor, Rapidash, Tentacruel, Relicanth, Flareon, Magmar, Mismagius, Porygon2, Rampardos, Tauros, Muk
210 to 249 Good Exeggutor, Kangaskhan, Scizor, Bastiodon, Poliwrath, Manectric, Electabuzz, Machamp, Politoed, Donphan, Ninetales, Golduck, Toxicroak, Drapion, Cradily, Nidoqueen, Ambipom, Kabutops, Miltank, Sharpedo, Nidoking, Ampharos, Ursaring, Slowbro, Slowking, Hypno, Rhydon, Dodrio, Bronzong, Omastar, Cloyster, Claydol, Drifblim, Zangoose, Absol, Abomasnow, Altaria, Golem, Dusknoir, Raichu, Kingler, Skuntank, Shiftry
175 to 209 Average Froslass, Dewgong, Victreebel, Exploud, Ludicolo, Xatu, Armaldo, Hitmonlee, Glalie, Phione, Weezing, Clefable, Wailord, Primeape, Swalot, Tropius, Gastrodon, Breloom, Pidgeot, Grumpig, Hariyama, Whiscash, Stantler, Bellossom, Lanturn, Torkoal, Lopunny, Jynx, Forretress, Vileplume, Gorebyss, Magneton, Huntail, Vespiquen, Skarmory, Mantine, Cacturne, Lumineon, Octillery, Girafarig, Hitmonchan, Golbat, Venomoth, Banette, Seaking, Seviper
143 to 174 Below Average Purugly, Spiritomb, Cherrim, Crawdaunt, Fearow, Sandslash, Electrode, Rotom, Mr. Mime, Piloswine, Noctowl, Chansey, Carnivine, Granbull, Hitmontop, Solrock, Lunatone, Vigoroth, Camerupt, Kadabra, Sneasel, Arbok, Jumpluff, Qwilfish, Haunter, Quagsire, Misdreavus, Seadra, Persian, Kecleon, Dusclops, Chimecho, Mothim, Pelipper, Mightyena, Castform, Munchlax
127 to 142 Poor Gligar, Swellow, Wormadam-G, Dragonair, Wormadam-S, Chatot, Wormadam, Ninjask, Bibarel, Dunsparce, Azumarill, Wobbuffet, Gabite, Marowak, Wigglytuff, Linoone, Furret, Pupitar, Tangela, Raticate, Metang, Sealeo, Masquerain, Lairon, Sunflora, Murkrow, Ponyta, Grotle, Monferno, Sudowoodo, Shelgon, Croconaw, Medicham, Marshtomp, Machoke, Wartortle, Bayleef, Prinplup, Charmeleon, Quilava, Ivysaur
100 to 126 Bad Combusken, Grovyle, Parasect, Plusle, Magcargo, Volbeat, Illumise, Togetic, Lickitung, Porygon, Minun, Gloom, Roselia, Ariados, Wailmer, Pachirisu, Shuckle, Yanma, Kricketune, Dugtrio, Delcatty, Weepinbell, Beautifly, Poliwhirl, Dustox, Butterfree, Corsola, Beedrill, Sableye, Mawile, Nidorina, Graveler, Flaaffy, Nidorino, Lileep
99 or less Horrible Everything else

**An Example**

I think you deserve one. :)

Let's say we are considering creating a hypothetical Pokemon having the following Base Stats:

52/117/93/80/67/101

First we find the normalized stats and the Speed Factor:

HP: 52/4 + 18 = 31

Atk: 117 + 18 = 135

Def: 93 + 18 = 111

SpA: 80 + 18 = 98

SpD: 67 + 18 = 85

SF: 0.92

Now we find PT, ST, PS, SS:

Physical Tankiness = 31 x 111 / 35 = **98.31** (average defense)

Special Tankiness = 31 x 85 / 35 = **75.29** (below average special defense)

Physical Sweepiness = 135 x (135 x 0.92 + 315) / (135 x 0.08 + 315) = 135 x 439.2 / 325.8 = **181.99** (very high physical offense)

Special Sweepiness = 98 x (98 x 0.92 + 315) / (98 x 0.08 + 315) = 98 x 405.16 / 322.84 = **122.99** (above average special offense)

Offense/Defense Balance:

The higher from PT and ST is 98.31; that from PS and SS is 181.99.

ODB = 55 x ln(181.99 / 98.31) = 55 x ln(1.851) = 55 x 0.616 = **33.9**

Looking at the chart, this translates to a Pokemon that is geared strongly towards offense.

Physical/Special Balance:

PSB = 55 x ln((98.31 x 181.99) / (75.29 x 122.99)) = 55 x ln(17891.44 / 9259.92) = 55 x ln(1.932) = 55 x 0.659 = **36.2**

Looking at the chart, this means that the Pokemon is geared strongly towards the physical stats.

Now, for the overall rating, we first need to find the rating modifier M, which is made up of four mini modifiers, one each for PT, PS, ST and SS.

PT and ST are both not greater than 100, so MPT and MST are both 1.

For PS, MPS = (3 x 181.99^2 - 600x181.99 + 81200) / 51200 = (3 x 33120.36 - 109194 + 81200) / 51200 = (99361.08 - 109194 + 81200) / 51200 = 71367.08 / 51200 = 1.394

For SS, MSS = (3 x 122.99^2 - 600x122.99 + 81200) / 51200 = (3 x 15126.54 - 73794 + 81200) / 51200 = (45379.62 - 73794 + 81200) / 51200 = 52785.62 / 51200 = 1.031

Hence M = 1 x 1 x 1.394 x 1.031 = **1.437**

Finally, the overall rating! Note that ODB and PSB are not needed for the evaluation of the overall rating.

Overall Rating = 98.31 x 75.29 x (181.99 + 122.99) x 1.437 / (56 x (98.31 + 75.29)) = 98.31 x 75.29 x 304.98 x 1.437 / (56 x 173.6) = 3243867.61 / 9721.6 = **334**

From the chart, a rating of 334 means that the stats are **very good**.