If you've used PokéSpread's damage tables, you've already seen the output of this formula thousands of times without necessarily seeing the formula itself. That's fine for day-to-day spread-building, but it becomes a problem the moment you try to reason about why one extra Stat Point did nothing, why a wall didn't behave like a stat boost, or why a Pokémon with a mediocre Attack stat can out-damage one with a much higher one.

This article walks through the calculation used throughout Pokémon Champions, the same one running under the hood every time you load a chart on this site, end to end. Every other guide in this series (linked at the bottom) picks up one piece of this formula and goes deep on it, so treat this one as the map.

The core formula

Strip away modifiers for a moment and the base damage a hit deals comes from four numbers: the move's Base Power, the attacker's relevant offensive stat (Attack or Special Attack), the defender's relevant defensive stat, and a constant derived from level.

Base damage

BaseDamage = rd( rd( 22 × Power × Atk ÷ Def ) ÷ 50 ) + 2

rd(x) rounds x down to the nearest whole number. It's used here instead of the usual floor-bracket notation (⌊x⌋) to avoid it reading like a letter L. It appears twice above because the game rounds once after dividing by the defending stat, and again after dividing by 50.

That 22 isn't an arbitrary constant. It's rd(2 × Level ÷ 5 + 2), and in mainline games it changes with every Pokémon's level. Pokémon Champions doesn't give you that variable: every battle runs at Level 50 so rd(2 × 50 ÷ 5 + 2) collapses to a flat 22 every single time.

From base damage to the number on screen

The value above is just the starting point. What you actually see, a damage range, a percentage, a guaranteed-KO threshold, comes from running that base damage through a fixed sequence of modifiers. The order matters, because rounding happens at several of these steps, not just once at the end.

  1. Adjustments to the base damage. A few effects are applied to the base damage itself, before any random roll: the 25% reduction for a move that hits several targets in Doubles, the weather boost or penalty on Fire and Water moves (×1.5 or ×0.5), and the ×1.5 of a critical hit. Effects that change the move's Base Power or the offensive and defensive stats (Technician, terrain boosts, Muscle Band, Wise Glasses, stat stages and so on) act earlier still: they change the inputs of the formula above before it even runs.
  2. The random spread. The adjusted base damage gets multiplied by 16 different values, 85%, 86%, 87%, all the way to 100%, and each result is floored independently. That's why every damage range you see on this site (and in-game) has exactly 16 possible rolls, and why the lowest roll isn't precisely 85% of the highest one: both ends went through their own separate rounding.
  3. STAB. If the move's type matches one of the attacker's types, the roll from the previous step gets multiplied by 1.5 (2.0 with Adaptability on a matching type).
  4. Type effectiveness. The result is rounded again, then multiplied by the effectiveness against the defender's type(s): 0×, 0.25×, 0.5×, 1×, 2×, or 4×.
  5. Burn. If the attacker is burned and the move is physical (unless the attacker has Guts, or the move is Facade), the result is halved and floored.
  6. Everything else, chained together. Screens, Friend Guard, Life Orb, Expert Belt, Metronome, type-resist berries, and a handful of defensive abilities (Multiscale, Solid Rock, Filter, Fluffy) are combined into a single multiplier and applied last, immediately before the result is rounded one final time and clamped to a minimum of 1.

Full damage pipeline

AdjustedBase = BaseDamage × (adjustments)×0.75 for a spread move in Doubles, ×1.5 or ×0.5 for weather, ×1.5 for a critical hit; each result rounded to the nearest whole number. Skipped when none applies
Roll = rd( AdjustedBase × (85 + i) ÷ 100 )for i = 0 … 15, i.e. the 85%–100% spread
WithStab = Roll × StabMultiplieronly when the move gets STAB; ×1.5, or ×2 with Adaptability
AfterType = rd( rn(WithStab) × TypeEffectiveness )
AfterBurn = rd( AfterType ÷ 2 )physical moves only, while the attacker is burned
FinalDamage = rn( max(1, AfterBurn × FinalModifier) )FinalModifier bundles screens, Friend Guard, Life Orb, Expert Belt, Metronome, resist berries, and a few defensive abilities into one combined multiplier

All together

FinalDamage = rn( max( 1,
    rd(
      rd(
        rn( rd( AdjustedBase × (85 + i) ÷ 100 ) × StabMultiplier )
        × TypeEffectiveness
      ) ÷ BurnDivisor
    ) × FinalModifier
) )

AdjustedBase is the BaseDamage value from the box above, after the adjustments of the first step (it is simply BaseDamage when none applies). rd(x) always rounds down. rn(x) is a different rule, clarified next. BurnDivisor is 2 for a physical move while the attacker is burned, and 1 otherwise, the same condition as the burn step above.

Two rounding rules, not one

It's worth being precise here, since two different rules are at play. rd(x), used for the 85 to 100 percent roll and for the burn halving, always rounds down, no exceptions. rn(x), used to turn the STAB'd value back into a whole number and again in the very last step, follows a different rule instead: round to the nearest whole number, except that an exact .5 rounds down too, rather than up. That second rule is small, but it's exactly the kind of detail that decides whether an extra Stat Point does anything at all.

The practical takeaway from this section: modifiers aren't all equal just because they're all "multipliers." Where a multiplier sits in this chain, and specifically whether it's applied before or after type effectiveness, and whether it's part of that final combined multiplier, changes how it interacts with rounding and with everything else.

Attack stat and Base Power multiply together

Here's where the formula stops being abstract. Look at the base-damage formula again: Base Power and the offensive stat are multiplied together. That means a 50% increase in either one has, before rounding, the exact same effect on the result. A Pokémon doesn't need a huge Attack stat if its moves have a huge Base Power, and it doesn't need huge Base Power if its Attack stat is doing the work instead. Neither one is "the real source" of damage, they're interchangeable inputs to the same product.

This is precisely the pattern behind two very differently built physical attackers that VGC players already have strong intuitions about: Talonflame and Mega Garchomp.

AttackerBase AtkAtk SPMoveBase PowerSTAB?Atk statDamage*
Talonflame8132Brave Bird120Yes14666–78 (31.8–37.6%)
Garchomp‑Mega17023Stomping Tantrum75Yes23466–78 (31.8–37.6%)

* Adamant nature. Against a type-neutral target with base 100 HP and base 100 Defense, 32 Stat Points in each (207 HP, 152 Defense), with no field effects, abilities, or items.

Brave Bird's 120 Base Power is 60% higher than Stomping Tantrum's 75 (120 ÷ 75 = 1.6). Give Mega Garchomp 23 Attack Stat Points instead of a full 32, same Adamant nature, and its Attack stat comes out to 234, almost exactly 60% higher than Talonflame's 146. Run the two moves against the same target and they land on the identical 66 to 78 damage range. A 60% gap in Base Power and a 60% gap in Attack stat, pointed in opposite directions, cancel out exactly: the multiplicative symmetry described above, made concrete.

Notice what's actually being multiplied in that comparison: the full Attack stats shown in the table, Stat Points and nature already folded in, not the 81 and 170 base stats printed on each Pokémon's summary screen. Comparing a base stat directly against a move's Base Power would be meaningless: one is a fixed number a species is born with, the other only becomes comparable to it once Stat Points and nature have actually been applied. Estimating what a given Base Power gap is "worth" in base-stat terms, once you fix an assumption for Stat Points and nature, is a fair question on its own, and it is exactly what the calculator in the next guide answers.

None of this is a coincidence, it's the multiplication in the base-damage formula playing out exactly as written. A reputation for "weak Attack" or "strong movepool" only tells you which side of the Atk × Base Power product a Pokémon leans on, it doesn't tell you the outcome on its own. The full breakdown of when to prioritize a bigger Attack stat over a move's own Base Power, including how the target's Defense and type matchup shift that balance, is the subject of the next guide in this series.

What the rest of the formula implies for your spread

Beyond the Atk/Base Power relationship above, a few other structural facts fall directly out of this formula and shape how you should think about every Stat Point you invest:

The one thing to take away

Damage in Pokémon Champions is a short, fixed sequence of multiplications and floor-roundings, always in the same order, always at Level 50. Once you know that order, "what does this Stat Point actually buy me" stops being a guess and becomes something you can trace step by step. Every other guide in this series is that tracing exercise, applied to one specific piece of the chain.