Base Stat Ratings v3.0

#1
Approved by Wyverii and Deck Knight.

Introduction:

Let me preface this by saying that the original idea and formula for BSR is attributed to X-Act. This thread's purpose is to update BSR for the fifth generation of Pokemon so that it can be used in BW's first CAP (and potentially onward from there). I have calibrated the Speed factor table to factor in all BW Pokemon and updated the formulas for the new Pokemon to maintain our lovely standard deviations and means that we so cherish. I used the information presented in this post and this article to help me understand why X-Act made the decisions he did.

Speed Factors:

The Speed Factor Table was generated by Excel using a database search on Veekun. I know that some other people have done this table before, but one of the reasons I wanted to do it again is to include all of the formes of Pokemon so that the table was correct. Below is the table.
Code:
Base Speed   Speed Factor
-------------------------
  1 to   5        0
  6 to  10        2
 11 to  15        5
 16 to  20       14
 21 to  22       27
    23           28
    24           31
    25           32
 26 to  28       42
    29           43
    30           44
    31           75
    32           77
    33           81
    34           83
    35           84
    36          104
 37 to  38      109
    39          110
    40          111
    41          142
    42          144
    43          149
    44          153
    45          154
    46          181
    47          182
    48          184
 49 to  50      189
    51          229
    52          231
 53 to  55      233
    56          262
    57          265
    58          267
    59          273
    60          274
    61          313
 62 to  63      315
    64          317
    65          321
    66          357
    67          361
    68          365
    69          368
    70          369
    71          405
    72          408
 73 to  74      410
    75          413
    76          424
    77          427
    78          429
    79          431
    80          432
    81          461
    82          464
    83          465
    84          468
    85          469
    86          496
    87          501
    88          502
 89 to  90      503
    91          532
    92          537
    93          539
 94 to  95      541
 96 to  97      565
    98          569
    99          573
   100          574
   101          599
   102          603
   103          604
104 to 105      605
   106          615
107 to 108      616
   109          622
   110          623
   111          632
   112          634
   113          636
   114          637
   115          638
   116          646
117 to 120      648
121 to 125      652
126 to 127      655
   128          656
129 to 130      657
131 to 140      661
141 to 145      662
146 to 150      663
151 to 160      665
161 to 180      666
181 to 255      667
BSR Formulae:

The following formulas for Gen V Pokemon stayed the same as for Gen IV because the numbers rendered by these formulas are the exact, no EV-investment numbers for the stats as calculated by the cartridge game. Speed is considered differently because the value of Speed is how many Pokemon are outsped. For that reason, the Speed Factor is divided by the number of Pokemon in BW (forme inclusive).
Code:
Statistical HP  = Base HP  * 2 + 141
Statistical Atk = Base Atk * 2 + 36
Statistical Def = Base Def * 2 + 36
Statistical SpA = Base SpA * 2 + 36
Statistical SpD = Base SpD * 2 + 36
Statistical Spe = Base Spe Speed Factor / 667
The following formulas for raw physical tankiness (RPT), special tankiness (RST), physical sweepiness (RPS) and special sweepiness (RSS) stayed the same with this version of BSR.
Code:
RPT = SHP  *  SDef
RST = SHP  *  SSpD
RPS = SAtk * (SAtk * SSpe + 415) / (SAtk * (1 - SSpe) + 415)
RSS = SSpA * (SSpA * SSpe + 415) / (SSpA * (1 - SSpe) + 415)
Now things get trickier because I have to find the statistical stats for every Pokemon in the game and scale the mean to exactly 100 and standard deviation to exactly 50. These numbers (100 and 50) took me awhile to figure out, but apparently X-Act only used them because they're pretty and make for easy to understand rank cutoffs for the quality of a stat. I dig prettiness, so I have kept with this trend. This will also prevent anyone from having to reteach themselves BSR, which is handy. Veekun was once again my friend for pulling all of the database information on all Pokemon. After doing all of the scaling and math, I derived the following formulas.
Code:
PT = (RPT / 401.424544) - 24.593586
ST = (RST / 415.017219) - 19.123917
PS = (RPS /   1.891436) -  4.668834
SS = (RSS /   1.939729) +  3.716211
These are the four main values that get used for CAPs, the Physical Tankiness (PT), Special Tankiness (ST), Physical Sweepiness (PS), and Special Sweepiness (SS). From here, to get the typical values for the Offense/Defense Bias (ODB) and Physical/Special Bias (PSB), I needed to do a bit more derivation to get the new scale factors. Like X-Act did in his original post on this, I have built the scale factors directly into the following formulae.
Code:
ODB = (MAX(PS,SS) - MAX(PT,ST)) / 6.165301 - 0.490854
PSB = (PT - ST + PS - SS) / 6.8267
Lastly, we can calculate the overall rating of a Pokemon like we did before. This uses the same base as we had before with v2.0 of BSR, but requires different scaling factors for the new generation. As above, I've built them into the following formulas.
Code:
Overall Rating = (PT + ST + PS + SS) / 1.527059 - 61.941419
BSR Tables:

Because I used the same means and standard deviations for my derivations as X-Act, our tables for BSR, ODB, and PSB all remain the same! This should make the transition to the new formulas very easy, since as I mentioned somewhere above we won't have to remember any new conventions for what makes a Pokemon good or bad in some area. The following tables are copied straight from X-Act's other thread, but with different examples.
Code:
If PT/ST/PS/SS is     Stat is      Examples
------------------------------------------------------------------------------------------------
  Less than 25        Horrible     Diglett (PT), Krabby (ST), Chansey (PS), <N/A> (SS)
    25 to 49            Bad        Whismur (PT), Shuppet (ST), Wynaut (PS), Beldum (SS)
    50 to 74            Poor       Buneary (PT), Gible (ST), Munchlax (PS), Corsola (SS)
    75 to 99       Below Average   Espeon (PT), Furret (ST), Snorlax (PS), Tauros (SS)
   100 to 124      Above Average   Scyther (PT), Quagsire (ST), Gligar (PS), Swampert (SS)
   125 to 149           Good       Slowking (PT), Moltres (ST), Hitmonchan (PS), Dragonite (SS)
   150 to 174         Very Good    Weezing (PT), Gyarados (ST), Mew (PS), Blaziken (SS)
   175 to 199         Excellent    Tyranitar (PT), Mantine (ST), Infernape (PS), Roserade (SS)
   200 to 224         Fantastic    Bastiodon (PT), Umbreon (ST), Electivire (PS), Porygon-Z (SS)
  More than 224        Amazing     Rhyperior (PT), Kyogre (ST), Rayquaza (PS), Alakazam (SS)
Code:
  If ODB is     Pokemon is                          Examples
-------------------------------------------------------------------------
Less than -20   Absolutely biased towards defense   Chansey, Snorlax
 -20 to -15     Heavily biased towards defense      Lapras, Lugia
 -15 to -10     Biased towards defense              Suicune, Deoxys-D
  -10 to -5     Moderately biased towards defense   Gliscor, Giratina-O
   -5 to 0      Slightly biased towards defense     Crimgan, Mesprit
    0 to 5      Slightly biased towards offense     Dialga, Luxray
   5 to 10      Moderately biased towards offense   Roserade, Mismagius
   10 to 15     Biased towards offense              Honchkrow, Electivire
   15 to 20     Heavily biased towards offense      Weavile, Salamence
 More than 20   Absolutely biased towards offense   Sharpedo, Deoxys-A
Code:
  If PSB is     Pokemon is                           Examples
--------------------------------------------------------------------------
Less than -20   Absolutely biased towards special    Espeon, Kyogre
 -20 to -15     Heavily biased towards special       Togekiss, Darkrai
 -15 to -10     Biased towards special               Magmortar, Porygon-Z
  -10 to -5     Moderately biased towards special    Drifblim, Chatot
   -5 to 0      Slightly biased towards special      Altaria, Tropius
    0 to 5      Slightly biased towards physical     Magcargo, Swampert
   5 to 10      Moderately biased towards physical   Machamp, Feraligatr
   10 to 15     Biased towards physical              Heracross, Scyther
   15 to 20     Heavily biased towards physical      Weavile, Donphan
 More than 20   Absolutely biased towards physical   Groudon, Gliscor
Code:
If Rating is       Rating is    Examples
-----------------------------------------------------
Less than 50       Horrible     Caterpie, Magikarp
  50 to 99           Bad        Horsea, Slugma
 100 to 149          Poor       Elekid, Gulpin
 150 to 199     Below Average   Plusle, Monferno
 200 to 249     Above Average   Gorebyss, Vespiquen
 250 to 299          Good       Roserade, Magnezone
 300 to 349       Very Good     Metagross, Uxie
 350 to 399       Excellent     Salamence, Suicune
 400 to 449       Fantastic     Garchomp, Landlos
More than 449      Amazing      Groudon, Mewtwo
Comments:

After I fixed a strange standard deviation issue I was suffering, everything lined up much more closely with DPP's table. You'll notice that even though the same Pokemon triumph and fail, the equations are different to compensate for the addition of ~33% new Pokemon to the mix.

Anyway, now that that's all explained clear as day for you guys, hopefully we'll be one step closer to getting BW CAP totally ready to go. If you have any questions about what I've done here, don't hesitate to ask. After doing everything, I've become incredibly familiar with the logic here, and I'd be more than happy to help you guys where needed.
 

eric the espeon

maybe I just misunderstood
is a Forum Moderator Alumnusis a Researcher Alumnusis a CAP Contributor Alumnusis a Tiering Contributor Alumnusis a Contributor Alumnus
#2
I would like to suggest for the final ratings table focusing in and splitting the two categories where almost all of our Pokemon will likely fall (Above Average and Good) into several, and cutting off the highest and lowest, just leaving "below" and "above". If we're making something with a BSR better than Arceus or worse than Graveler, something very strange is happening. This would remove the extreme values and give the polls more power to fine tune the stat ratings of a cap.
 
#3
I've completely revamped the whole thing and now it's all correct. I know that it's correct because if I apply my algorithms to DPP's data, I end up with X-Act's results. Anyway, thanks for bearing with me guys, and this is now totally ready to go. This also makes ete's comment above null, since it inherently fixes the concern he had, so hooray.
 
#4
Alright, bumping this because I have put an inordinate amount of time into setting up an Excel spreadsheet that functions as a calculator for BW BSR. This is actually a bit more useful than the one on-site, even, because it has an accessible database of all Pokemon in the game. You can check the BSR of every Pokemon in the game merely by typing in its name into the proper field (or using the handy-dandy dropdown menu). It also, of course, allows the user to input their own values for stats and see the BSRs and all relevant information for a custom Pokemon with those stats. I hope that this is useful for people and that it gets used as I program a more permanent applet for the website to do this.

capefeather edit: If you don't have Excel 2007 or higher, you can get a free spreadsheet program. OpenOffice.org Calc version 3 can open and use .xlsx files like this one.
 

Attachments