Generation 2 Stat EXP Tracker

THIS PAGE IS CURRENTLY UNDER RE-CONSTRUCTION. The tool still works as expected, but the code for it is heavily outdated and needs a rework to be accessibility-friendly. Apologies for the inconvenience.

Change mode?
Does your Pokémon already have some stat experience? Input the values below and press LOAD!
HP:
Attack:
Defense:
Special:
Speed:
REMAINING STAT EXP
HP
Please input stats.

Attack
Please input stats.

Defense
Please input stats.

Special
Please input stats.

Speed
Please input stats.

Choose a Pokémon to make a button out of:
Pokérus? (Pokérus is very rare, but if a Pokémon has it, it doubles stat EXP gain)
Advanced Mode? (Use if you are switch training or have any held EXP shares)

What is this tool for?

This calculator exists so the player can easily track stat experience grinding in any of the generation 1 and 2 games no matter where they are battling or what their party layout looks like. It was inspired by the scattered nature of information on the topic, and my own, long stat experience grinds where I was fighting against nothing but Unown because they were consistent targets and I didn't have to switch up my math on the fly based on what I was fighting. Now anyone can use this tool to make their lives a little easier.

How do I use it?

By creating buttons of the Pokémon you're grinding against, those buttons can then be clicked to instantly add to your Pokémon's stat experience totals. Select your generation, turn on Advanced Mode and input your party layout if necessary, and the tracker will automatically calculate how much stat experience each Pokémon will give you upon KO.

While it's easier to start with a Pokémon that hasn't earned any stat experience yet, there is a section for loading in how much stat experience you already have instead of starting from scratch. If you don't finish training in one session, make sure to write down your progress. You'll be able to load it back in that way. The webpage will not save your data if you close or refresh the tab.

What is stat experience?

In generation 3, effort values, also known as EVs, were invented. EVs exist to make Pokémon stronger based on the Pokémon they battle; for instance, for every Pikachu fought, any Pokémon involved in that battle will receive 2 Speed EVs. With enough Speed EVs, a Pokémon's speed stat will be higher than Pokémon without Speed EVs. However, generations 1 and 2 didn't have the effort value system and instead used a system called stat experience.

Stat EXP is added to the player's Pokémon based on the opponent's base stat total. The stronger the opponent is in terms of base stats, the more stat EXP gained. Unlike EVs, there is no cap to stat experience that forces some stats to be less developed than others, so the player can max out stat experience in every stat up to a total of 65535. With maxed stat EXP, a Pokémon will receive +63 in all of their stats. (63002 is technically all that is needed to hit the 63 cap, but the game keeps track of stat experience internally up to 65535.)

Also unlike EVs, stat EXP totals get divided by the use of EXP shares or switching in battles. The formulas for how this division works in both generations varies due to gameplay differences and an unintended programming error in generation 1. Stat experience gains can be determined as follows:

Generation 1 (Red/Blue/Yellow):

1. If the EXP. All is in the player's bag, divide the total stat experience in half, rounded down. This calculation is done even if there is only one Pokémon in the party. If the EXP. All is not present, the stat experience goes unchanged for this step.

2. Take the total from step 1 and divide it by the amount of Pokémon that fought in battle and didn't faint, rounded down. Give that amount to all of those Pokémon. If only one Pokémon fought, the total is unchanged, and the entire total is given to the battler.

3. If the EXP. All was present in step 1, divide the total from step 2 by the amount of non-fainted Pokémon in the entire party, round it down, and give that amount of stat experience to all of those Pokémon, including the ones that battled.

For example, when fighting a Pidgey which has a Speed base stat of 56, with the EXP. All, a conscious party of 6, and 2 Pokémon used in the fight:

1. The EXP. All was present, so divide 56 by 2 to get 28.

2. 2 Pokémon fought in the battle, so divide 28 by 2 to get 14. Give 14 stat experience in Speed to both Pokémon that fought.

3. Since the EXP. All was present and 6 Pokémon were conscious in the party, divide 14 by 6 to get 2 when rounded down. Give 2 stat experience in Speed to every Pokémon. Now the Pokémon who battled received a total of 16 (14 + 2) in Speed stat EXP for the fight, and the Pokémon who were left in the back of the party received 2.

Generation 2 (Gold/Silver/Crystal):

1. If any EXP shares are in use, divide the total stat experience in half, rounded down. If only one Pokémon is holding an EXP share and it's the one who battled, skip this step. If no EXP shares were in use, the stat experience goes unchanged for this step.

2. Take the total from step 1 and divide it by the amount of conscious Pokémon holding EXP shares, rounded down. Give that total to every Pokémon holding an EXP share.

3. Take the total from step 1 again and divide it by the amount of conscious Pokémon that battled, rounded down. Give that total to every Pokémon who fought.

4. For any Pokémon that have Pokérus, double the amount of stat experience gained.

For example, when fighting a Meowth which has an HP base stat of 40, with 5 EXP shares in play, 3 Pokémon used in the fight, and no Pokérus:

1. EXP shares were present, so divide 40 by 2 to get 20.

2. 5 Pokémon were holding EXP shares, so divide 20 by 5 to get 4 and give that amount of HP stat EXP to all EXP share holders.

3. 3 Pokémon battled, so divide 20 by 3 to get 6 rounded down. Give that amount of HP stat EXP to every Pokémon that fought. If a Pokémon fought and had an EXP share as well, they received 10 stat experience because of the total from step 2 (4 + 6 = 10).

4. Since no Pokémon had Pokérus, do not double any stat experience gains.

Stat experience can also be boosted through the vitamin items HP Up (HP), Protein (Attack), Iron (Defense), Calcium (Special), and Carbos (Speed), which add by 2560 each. Once a Pokémon has passed 25600 (or 10 vitamins) in stat experience, vitamins can no longer be used. In generations 1 and 2, a vitamin for Special Defense (Zinc in modern games) does not exist. To keep generation 1 and 2 compatible after splitting Special into Special Attack and Special Defense in generation 2, Pokémon receive stat experience in both Special Attack and Special Defense based on the opponent's Special Attack stat in Gold/Silver/Crystal. This applies to vitamins as well, and as such, Calcium boosts both Special Attack and Special Defense in the context of generation 2.

How do I get Pokérus?

Pokérus is a rare affliction that doubles stat experience gains which a Pokémon in your party may obtain as you play any of the generation 2 games. There is a 3/65536 (roughly 1/21845) chance of receiving Pokérus after a battle. There is no way to obtain Pokérus except get very, very lucky. It's rarer than a shiny Pokémon! Once found, it can be spread to other party members through battling in the same party with them. Eventually, it will cure itself and cannot be spread anymore unless measures are taken to prevent it curing. A Pokémon with Pokérus will also lose its Pokérus if traded back to generation 1. For more information on Pokérus, check out Bulbapedia's article on the subject.

Thank you to the following people and resources for assistance with researching this topic and developing this tool:

Last updated 7/24/22. Fixed a typo.