Concepts → ARPG additive vs multiplicative
·
Why +50% additive damage can be much weaker than
+50% multiplicative in D4 / PoE / Last Epoch
The single most important math literacy gap in ARPG build optimization. Two stats both look like "+50% damage" on the tooltip, but one of them goes into a bucket that adds with all your other "+X% damage" stats, and the other is its own multiplicative multiplier. The gap between them widens the more additive damage you've already stacked.
D4 patch note (Season 2 / Patch 1.2.0):
Critical Strike Damage, Vulnerable Damage, and Overpower Damage
were moved from being separate multiplicative buckets to
conditional additive sources. The launch-era guides that
treated CSD / Vuln / Overpower as compound multipliers
(×1.5 × 1.5 × 1.5 stacking) are obsolete; today's D4 sums them
into one additive bucket alongside +Damage to Close,
+Damage While Berserk, etc. The math literacy below still
applies — the critical reframe is which D4 stats fall in which
bucket. Tooltip rule: an
x-prefix (e.g.,
x[15-20]% Damage with Two-Handed Weapons) is
multiplicative; everything else is additive.
The damage formula
D4, PoE, Last Epoch, and Grim Dawn all use variants of the same multi-bucket damage formula:
final = base × (1 + sum_of_additives) × (1 + mult_a) × (1 + mult_b) × … × crit_avg
Where:
- All "+X% damage" stats SUM together into one big additive bucket, then multiply the base ONCE. Two +50% additive stats gives × (1 + 100%) = × 2.0, not × (1 + 50%) × (1 + 50%) = × 2.25.
- Each multiplicative bucket multiplies separately. Vulnerable, Overpower, Berserk, "more" damage in PoE, weapon-class multipliers, skill multipliers — each is its own factor. Two +50% multiplicative stats give × 1.5 × 1.5 = × 2.25.
The two stat types look identical on the tooltip — both say "+50% damage" — but they go into different buckets and give different total damage. This is the math literacy that separates new ARPG players from optimized builds.
The marginal-value comparison
Marginal value of +1% additive damage, given
you currently have A% additive and M
composed multiplier:
∂final/∂A = (1/100) × base × M
Marginal value of +1% multiplicative damage:
∂final/∂(mult) = (1/100) × base × (1 + A/100) × M
The ratio gives you the "is +1% multiplicative worth more than +1% additive" answer:
mult_marginal / add_marginal = 1 + A/100
Multiplicative is always at least as good as additive at the marginal point, with the gap widening linearly in your current additive stacking:
- At 0% additive (rare in practice): they're identical.
- At 100% additive: multiplicative is 2× as good.
- At 200% additive (common endgame): multiplicative is 3× as good.
- At 500% additive (high-end stacking): multiplicative is 6× as good.
Worked example — the classic stacking trap
Two builds, both with 100 base damage, both with 30% crit / 250% CSD, both nominally claiming "+200% damage" on the tooltip. The difference: one has it all in additive, the other has it split across multiplicative buckets.
| Build | Additive | Multiplicative buckets | Damage formula | Expected (per hit) |
|---|---|---|---|---|
| All-additive | +200% | none | 100 × 3.0 × crit_avg | 525 |
| Mixed (50/50) | +100% | +50% × +50% | 100 × 2.0 × 1.5 × 1.5 × crit_avg | 787 |
| All-multiplicative | +0% | +50% × +50% × +50% × +50% | 100 × 1.5⁴ × crit_avg | 886 |
Where crit_avg = 1 + 0.3 × (2.5 − 1) = 1.45 for all
three (same crit setup).
Same "+200% damage" on the tooltip, 69% damage difference between worst and best. This is the lesson: where the +X% lives matters more than the +X% itself.
Live engine: compose the math yourself
Two postfix keywords let you encode the additive vs multiplicative split directly:
-
inc N%— additive bucket (PoE "increased", LE "increased separate from added"). Multipleincpostfixes SUM into one bucket —inc 50% inc 30%produces × (1 + 0.80) = × 1.80 once. -
boost N%— multiplicative bucket (PoE "more", D4x-prefixed legendary aspects, key passives, weapon-class multipliers). Multipleboostpostfixes COMPOUND separately —boost 50% boost 30%produces × 1.50 × × 1.30 = × 1.95. Note for D4 builds: post-Patch 1.2.0, Vulnerable / Overpower / Berserk are NOT separate multiplicative buckets — their gear-stat bonuses live in the additive bucket (see callout above). The condition itself (target is vulnerable, etc.) carries a fixed baseline multiplier (×1.20 vuln, ×1.50 crit) modelled in the D4 page via thevulnflag and the implicit crit baseline.
Both can stack on the same chain. Eval order matches PoE's pipeline: increased applies first, then each more multiplier. The two scalars commute mathematically (both positive scalars on the damage distribution), but the ordering aligns with build-guide language.
Worked combination: 100 @ hit 100 inc 50% inc 30% boost 50% boost 30%
= 100 × (1 + 0.80) × 1.50 × 1.30 = 351. Compare with
100 @ hit 100 boost 50% boost 30% boost 50% boost 30%
(everything multiplicative): 100 × 1.50 × 1.30 × 1.50 × 1.30 ≈ 380.25.
Same paper buffs, ~8% damage difference depending on whether
you've correctly classified each stat as additive or
multiplicative.
The historical examples below all used boost; the
same builds with proper additive/multiplicative classification
use inc for the additive sources.
| Build context | Expression | Strike URL |
|---|---|---|
| All-additive (+200% lumped) | 300 @ hit 100 crit 30 csd 250 |
/strike/300~hit100crit30csd250 |
| Mixed (+100% additive, +50% × +50% mult) | 200 @ hit 100 crit 30 csd 250 boost 50 boost 50 |
/strike/200~hit100crit30csd250boost50boost50 |
| All-multiplicative (four +50% buckets) | 100 @ hit 100 crit 30 csd 250 boost 50 boost 50 boost 50 boost 50 |
/strike/100~hit100crit30csd250boost50boost50boost50boost50 |
Note: the base damage in each row is set so the all-additive
total matches the table above (300 = 100 × 3.0; 200 = 100 × 2.0;
100 = 100 × 1.0). boost 50 means "+50% multiplicative"
= × 1.50.
The build heuristic
When choosing between two affixes that both look like "+X% damage":
- Read the tooltip carefully. Multiplicative buckets are usually flagged ("[x] increased damage", "more damage", or named multipliers like Vulnerable / Overpower). Additive damage stacks read as plain "+X% damage".
- Default to multiplicative when in doubt. Multiplicative is always at least as good as additive at the marginal point, and the gap grows with your current additive stacking — which means the more endgame your build is, the bigger the gap.
- Track your additive total. At 0% additive, +1% additive = +1% multiplicative. At 200% additive (endgame baseline), +1% multiplicative is worth 3× as much as +1% additive. Decisions on affix priority shift accordingly.
- New multiplicative bucket > more on existing bucket. Adding +25% to a separate multiplicative bucket (× new factor) is always better than adding +25% to an existing one (× same factor diluted), all else equal.
Game-specific notes
-
Diablo 4 (post-Patch 1.2.0): Critical
Strike Damage%, Vulnerable Damage%, Overpower Damage%, +X%
Damage to [enemy type], +X% Damage While Berserk, +X%
Damage to Close — all in the same additive bucket, all
gated by their respective conditions (only adds to the sum
when the condition is met). The conditions themselves (crit
lands, target is vulnerable, etc.) carry a fixed baseline
multiplier on top: ×1.50 baseline crit, ×1.20 baseline
vulnerable, ×1.0–1.5 health-scaling overpower. Multiplicative
buckets are reserved for tooltip
x-prefixed sources — most legendary aspects, key passives, the Malice/Frigid Finesse-style "x increased damage" passives, and weapon-classx-multipliers. -
Path of Exile: "increased" damage is
additive; "more" damage is multiplicative. The naming
convention is the literacy bar — if the gem text says
"more damage", it's its own bucket. Multi-tag
caveat: PoE has SEPARATE additive pools per
damage tag (Projectile, Lightning, Fire, etc.) — different
tags' "increased" pools don't merge. The engine's single
incbucket models ONE tag pool; for multi-tag analysis, sum each tag's increased pool externally and use aboostpostfix per tag (each(1 + sum_T)is its own multiplicative factor in the final product). -
Last Epoch: three categories — Added (flat
base damage), Increased (additive: all sources sum, then ×
once), More (multiplicative: each source compounds
separately). The engine's
inc= Increased,boost= More;dmgbase damage carries the Added bucket. - Grim Dawn: Damage Modified, weapon damage scaling, and Conversion are the main multiplicative buckets; + damage is mostly additive within a damage type.
Scope
The closed-form additive-vs-multiplicative breakeven and how it shifts with current additive stacking, with full engine support for any number of multiplicative buckets composed together with crit math. Adjacent ARPG questions compose with this answer rather than replace it:
- Lucky Hit / proc gates — independent per-hit Bernoulli on top of the damage roll; multiplies into expected proc damage as a separate factor.
- Damage Over Time (bleed / poison / burn) — separate damage stack with its own tick rate; layers on the per-hit baseline this pillar computes.
- Tooltip DPS vs effective DPS — multiply per-hit damage by attack speed × uptime × proc rates for sustained DPS. Per-hit is the building block.
- Defensive math (EHP) — armor mitigation, block, dodge, parry compose with the offensive answer for the clear × survive product.