16
\$\begingroup\$

Statistically, how much attack damage does the AC boost from a shield prevent on average? I've seen claims it results in a 10% reduction in damage taken, is that accurate?

\$\endgroup\$
35
+150
\$\begingroup\$

10% is the naive answer

The +2 bonus to AC is 10% of the d20 roll, but it is more complicated than that:

  • If the enemy can only hit you on a natural 20, adding a shield does not do anything
  • If without a shield the enemy hits you 50% of the time, it becomes 40% with one. The difference is about 20%1.
  • If the enemy only misses on 1, dropping the shield does nothing

In actual games it is around 15-25%.

Calculation

Assume for simplicity that the attacker does 10 hp damage per hit, and criticals increase damage by 5 HP (50%)2.
The DPR against a shieldless opponent is $$\frac{(21 - rollNeeded) * 10 + 5}{20} {}$$
The DPR against a shielded opponent is $$\frac{(21 - rollNeeded - 2) * 10 + 5}{20} {}$$ rollNeeded = (your AC) - (opponent's to hit). It is always between 2 and 20.

Table

Substract your typical enemy's to hit from your AC, and find how much a shield would help.
For example you want to decide between dual wielding and sword-and-board for a new Fighter. As starting equipment you can get Chain mail (AC 16), and you expect many Goblins (+4 to hit). You get 12 -> 21.05% less damage received with a shield!
enter image description here

Graph

enter image description here


1) Criticals complicate things
2) Assuming no magic items and a +5 ability, a critical increases Greatsword[GWF] by 62%, Longsword[Dueling] by 39%. Sneak Attacks gain about 88% at level 19. 50% is just an approximation, but changing it does not influence the end result significantly

\$\endgroup\$
  • 4
    \$\begingroup\$ In my experience, the 15-25% number sounds about right, but comparing typical enemy hit bonus and tanky player AC would make this answer even better. \$\endgroup\$ – Chris Starnes Mar 12 at 15:12
  • 1
    \$\begingroup\$ Really nice answer. Interesting how it goes all the way up to 57%, then drops to 0. \$\endgroup\$ – GreySage Mar 12 at 15:12
  • 1
    \$\begingroup\$ Everything in this post seems to check out; one thing I would quibble with is that a 50% damage increase on a Critical hit is probably on the lower end; it's realistic for some scenarios (Dueling Fighting Style characters being the big example) but many characters have some high damage dice that get doubled by a lot on a successful crit. \$\endgroup\$ – Xirema Mar 12 at 17:04
  • 1
    \$\begingroup\$ I found both your question and your answer here very interesting. I was wondering, how does knowing this affect the logical way I play? Do certain builds playstyles become more less attractive as a consequence? I feel like this answer could be improved by adding these conclusions (if there are any to be made). But maybe I've misunderstood? \$\endgroup\$ – Tiggerous Mar 13 at 15:49
  • 1
    \$\begingroup\$ @Tiggerous, this shows how much a shield is worth, but you have to decide for yourself if you value 21% less damage taken more than 16% more damage dealt (Longsword+Shield vs Greatsword) \$\endgroup\$ – András Mar 13 at 15:59
8
\$\begingroup\$

About 14%-30% in normal play

I've produced odds for the scenario where the Attacker is a Great-Weapon-Fighter using a Greataxe with a +3 Damage modifier, or 1d12+3[GWF] for a normal hit, or 2d12+3[GWF] for a critical hit. Different weapons and damage modifiers and features will skew these results, but these should represent a relatively "normal" scenario for most modes of play.

Across most of the game, a shield will reduce this Attacker's DPR by a flat 1.034, only meaningfully varying at the highest ACs, when Critical Hits represent the only significant chance to hit.

My experience with the game has taught me that at the usual range of Armor Class values that an average party will encounter (both for themselves and for enemy creatures), the "to-hit" range usually lands between 7 and 15. In this range, we can see that at the low-end, a shield reduces the Attacker's expected DPR (per attack) by about 13.592%, and at the higher end, it reduces DPR by about 29.824%.

\begin{array}{|l|r|r|r|} \hline \text{Name} & \text{Normal} & \text{+Shield} & \text{[%]}\\ \hline \text{To-hit = 1} & 10.183 & 9.667 & \text{-5.067%}\\ \hline \text{To-hit = 2} & 10.183 & 9.150 & \text{-10.144%}\\ \hline \text{To-hit = 3} & 9.667 & 8.633 & \text{-10.696%}\\ \hline \text{To-hit = 4} & 9.150 & 8.117 & \text{-11.290%}\\ \hline \text{To-hit = 5} & 8.633 & 7.600 & \text{-11.966%}\\ \hline \text{To-hit = 6} & 8.117 & 7.083 & \text{-12.739%}\\ \hline \text{To-hit = 7} & 7.600 & 6.567 & \text{-13.592%}\\ \hline \text{To-hit = 8} & 7.083 & 6.050 & \text{-14.584%}\\ \hline \text{To-hit = 9} & 6.567 & 5.533 & \text{-15.745%}\\ \hline \text{To-hit = 10} & 6.050 & 5.017 & \text{-17.074%}\\ \hline \text{To-hit = 11} & 5.533 & 4.500 & \text{-18.670%}\\ \hline \text{To-hit = 12} & 5.017 & 3.983 & \text{-20.610%}\\ \hline \text{To-hit = 13} & 4.500 & 3.467 & \text{-22.956%}\\ \hline \text{To-hit = 14} & 3.983 & 2.950 & \text{-25.935%}\\ \hline \text{To-hit = 15} & 3.467 & 2.433 & \text{-29.824%}\\ \hline \text{To-hit = 16} & 2.950 & 1.917 & \text{-35.017%}\\ \hline \text{To-hit = 17} & 2.433 & 1.400 & \text{-42.458%}\\ \hline \text{To-hit = 18} & 1.917 & 0.883 & \text{-53.938%}\\ \hline \text{To-hit = 19} & 1.400 & 0.883 & \text{-36.929%}\\ \hline \text{To-hit = 20} & 0.883 & 0.883 & \text{-0.000%}\\ \hline \end{array}

I'm producing these values just as a confirmation against Andras' values: I believe the small difference between our results are just the consequences of using different damage dice, and that based on my own results, their values are probably correct for their scenario.

\$\endgroup\$
  • \$\begingroup\$ This is kind of my point (and I think you're the right user to explain this to me), but if different to-hit and ACs create differences, then don't we need to know those values in order to answer this?14-30% with your current dataset is fairly swingy. \$\endgroup\$ – NautArch Mar 12 at 17:02
  • \$\begingroup\$ @András I have a program I use to generate values. There's a discussion here for this answer that describes the in-detail methodology. \$\endgroup\$ – Xirema Mar 12 at 17:37
  • 2
    \$\begingroup\$ @András The table uses MathJax. You can attempt to edit the post and look at the markup to figure out how it works. Alternately, you can use the generator at tablesgenerator to create a table, though you need to change the \begin{table}[]\begin{tabular} tags to \begin{array} to work on Stack Overflow. \$\endgroup\$ – Xirema Mar 12 at 18:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.