1. New to the forums? Check out our Mentorship Program!
    Our mentors will answer your questions and help you become a part of the community!
  2. Welcome to Smogon Forums! Please take a minute to read the rules.

Base Stat Ratings v3.0

Discussion in 'Create-A-Pokémon Project' started by Rising_Dusk, Feb 15, 2011.

  1. Rising_Dusk

    Rising_Dusk
    is a Site Staff Alumnusis a Team Rater Alumnusis a Battle Server Admin Alumnusis a Programmer Alumnusis a Super Moderator Alumnusis a CAP Contributor Alumnusis a Contributor Alumnusis a Smogon Media Contributor Alumnus

    Joined:
    Dec 27, 2009
    Messages:
    4,806
    [​IMG]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.
  2. eric the espeon

    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

    Joined:
    Aug 7, 2007
    Messages:
    3,694
    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. Rising_Dusk

    Rising_Dusk
    is a Site Staff Alumnusis a Team Rater Alumnusis a Battle Server Admin Alumnusis a Programmer Alumnusis a Super Moderator Alumnusis a CAP Contributor Alumnusis a Contributor Alumnusis a Smogon Media Contributor Alumnus

    Joined:
    Dec 27, 2009
    Messages:
    4,806
    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. Rising_Dusk

    Rising_Dusk
    is a Site Staff Alumnusis a Team Rater Alumnusis a Battle Server Admin Alumnusis a Programmer Alumnusis a Super Moderator Alumnusis a CAP Contributor Alumnusis a Contributor Alumnusis a Smogon Media Contributor Alumnus

    Joined:
    Dec 27, 2009
    Messages:
    4,806
    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.

    Attached Files:

Users Viewing Thread (Users: 0, Guests: 0)