The formulas for determining how much damage a Pokémon can do to another is very complex.
This page does the best I can do to explain what is going on.
This is the "basic" formula for the Damage inflicted by a Single attack Move:
|Damage =||FLOOR||(||(||)||×||(||)||× Effectiveness||)||+ 1|
|(BaseAttack + AttackIV) × AttackerCPM||Power × STAB × WeatherBoost|
|(BaseDefense + DefenseIV) × DefenderCPM||2|
Here is what everything means:
|FLOOR||Chop off everything after the decimal point.|
|BaseAttack||The Attacking Pokémon's Base Attack score.|
|BaseDefense||The Defending Pokémon's Base Defense score.|
|AttackIV||The Attacking Pokémon's Attack IV score.|
|DefenseIV||The Defending Pokémon's Defense IV score.|
|AttackerCPM||The CPM for the Attacking Pokémon.|
|DefenderCPM||The CPM for the Defending Pokémon.|
|Power||How much damage will be caused by the move.|
(Same Type Attack Bonus)
| If the type of the attack is the same as the Attacking Pokémon's type then it is 1.25, otherwise it is 1.
Tyranitars are of type Rock and Dark.
The Move Bite is a Dark type move, so Tyranitars with this move DO get a STAB. (STAB = 1.25)
On the other hand the Move Iron Tail is a Steel type move, so Tyranitars with this move DO NOT get a STAB. (STAB = 1)
|WeatherBoost|| If the type of the attack is boosted by the current weather then it is 1.25, otherwise it is 1. (Similar to STAB)
Vine Whip is a Grass type move and Grass types are boosted by Sunny weather.
So, if the weather is Sunny Vine Whip WILL be boosted. (WeatherBoost = 1.25)
On the other hand if the weather is Cloudy Vine Whip WILL NOT get boosted. (WeatherBoost = 1)
|Effectiveness||A bonus or penalty depending upon the Type of the Move and the Type of the Defending Pokémon.|
|AttackTime||The amount of time it takes the Attacking Pokémon to perform the move.|
To make things worse, as mentioned above, that formula is for the Damage from a Single Move! To get the DPS for that one Move you would only need to do:
... BUT ...
To get the DPS for a Move Set you need to figure out:
In the end, the formula looks like this:
|Base DPS =||(||FastMoveDamage × CEILING||(||)||)||+ ChargedMoveDamage|
|(||FastMoveTime × CEILING||(||)||)||+ ChargedMoveTime|
Here is what everything means:
|CEILING||Get the smallest whole number (integer) that is greater than or equal to value.|
|FastMoveDamage||The amount of Damage (using Damage Formula above) that a single Fast Move will inflict.|
|ChargedMoveDamage||The amount of Damage (using Damage Formula above) that a single Charged Move will inflict.|
|FastMoveEnergy||The amount of Energy the Fast Move generates.|
|ChargedMoveEnergy||The amount of Energy the Charged Move requires.|
|FastMoveTime||The amount of time it takes to perform the Fast Move.|
|ChargedMoveTime||The amount of time it takes to perform the Fast Move.|
Simply put it is:
Unfortunately, there are some things that will change for each situation.
For example, some parts of the formulas really require us to know what Pokémon is being attacked. (Effectiveness, CPM, BaseIV, etc.)
However, we can choose to assume several things to get a good idea of the damage a specific Attacking Pokémon can inflict with a specific Move Set:
With those assumptions, the Damage formula (after simplification) becomes:
|Damage =||FLOOR||(||)||+ 1|
|(BaseAttack + 15) × Power × STAB|
Then, merging that into the Base DPS formula (which is now a little easier than it would have been with the full Damage formula), we end up with:
|True DPS =||
I refer to this as the "True DPS" on the charts in Pokémon Move Sets.
Obviously, True DPS is still quite a complex formula.
To simplify it further, many people will use only the values from the Move Set itself, removing the values from the Pokémon. This will give a generic DPS for the moveset.
(In other words, it will be the same value regardless the Pokémon.)
With that, we end up with:
|Base DPS =||
I personally don't pay attention to this, but I include it as the "Base DPS" on the charts in Pokémon Move Sets in case you are interested.
I have included both Base DPS and True DPS in the Pokémon Move Sets page. However, in my humble opinion, the True DPS formula is the most useful, and the one I pay attention to the most.
Although these formulas are a quite technical, I have programmed them into a spreadsheet that does all the calculations. If any of the values change in the future, I just copy-and-paste them in and re-generate the data for the pages on this site.