Reference Card

The Damage Formula

Six terms, one division. Print this.

Durable — should survive patches and leagues

The skeleton

damage = BASE
        × (1 + INCREASED)
        × MORE₁ × MORE₂ × …
        × SPEED
        × CRIT
        × ENEMY
TermBehaviourWhere it comes from
Base The number everything multiplies. Zero base = zero damage, whatever else you own. Attacks: the weapon. Spells: gem level + flat added spell damage. Minions: the minion's own base.
Increased One shared additive total per stat. Dilutes as it grows. Passive tree, most gear affixes.
More / less Each its own multiplier. Never dilutes. Immune to what you already own. Mostly support gems. Some ascendancy and unique effects.
Speed Its own additive total, separate from damage. Has practical ceilings. Gloves, boots, weapons, tree.
Crit Two totals — chance and damage bonus — that multiply each other. One without the other is close to wasted. Weapon base crit for attacks; skill base crit for spells; tree and gear scale both.
Enemy Multiplicative and most often neglected. Endgame monsters have real resistances. Penetration, exposure, resistance reduction, curses, shock, wither, intimidate.

The one division

real gain = added ÷ (100 + current total)

Applies to every increased total independently. Does not apply to more multipliers — those are worth their printed value always.

Total beforeAdd +50%Real gain
0%50 ÷ 10050.0%
100%50 ÷ 20025.0%
200%50 ÷ 30016.7%
300%50 ÷ 40012.5%
400%50 ÷ 50010.0%
600%50 ÷ 7007.1%

Stacking rules at a glance

Two sources of 20%ResultEffective second source
Both increased1 + 0.2 + 0.2 = 1.4016.7%  (20 ÷ 120)
Both more1.2 × 1.2 = 1.4420.0%

Worked example and figures verified against Maxroll — Damage Scaling (PoE2).

Conversion and gain

Both are layer-one effects — they alter the base before any multiplier runs. Full treatment in the glossary and lesson 3.

ConversionGain
Reads#% of X#% of X
Sourceremovedleft intact
Scaled bythe destination type only, never the source
Ceilingnormalised at 100%none

gain's effective value = gain% × (destination mult ÷ source mult)

Equal on both sides, and it behaves like a more multiplier. Destination unscaled, and it is worth a fraction of its printed value.

Other gotchas