I’ve done some extensive Armor testing for a week, and wanted to share what I found. If you’re just here for the calculator, here is the function: https://i.imgur.com/OtOlfHG.png
(1) Physical Damage Reduction cap from Armor = 85.5% (not 85%)
It is well known that Physical damage reduction (PDR) from Armor is capped at 85%, according to developer livestream 4 months ago.
Attacker Level vs Armor Damage Reduction (https://i.imgur.com/46oGwxe.jpg
)
But has anyone actually confirmed this? I decided to test it myself.
Before I begin, I want to emphasize the importance of obtaining accurate data for testing.
Diablo 4 only displays Physical DR as a whole number. For example, Armor between 9193-9265 all have the same PDR. But does that mean they are equally effective? Probably not. To obtain most precise PDR, we can’t just use any Armor value. We need to find the transition point (TP) – exact point where +1 armor shifts PDR value by 1. With time and effort (jigsaw puzzle time!), I was able to identify precise TP for all PDR values used in my test.
Screenshot proof of transition points used (https://i.imgur.com/FaVV9cK.png
)
I was extra careful to leave all forms of DR, All Stats, Intelligence, Resistances, etc unchanged. This ensured that the only source of DR modifier would be Armor.
I then tested damage received from Lv100 enemy unit at various PDR.
Test method (https://i.imgur.com/dFzBn8Z.png
)
Test result 1 (https://i.imgur.com/9q4C80E.png
)
From Table 1, we can see that 85% PDR received more DMG than 86-100% PDR. This directly defies the belief that PDR is capped at 85% - if the cap truly is 85%, then there shouldn’t be any difference between 85% and 100% PDR. Yet the result speaks otherwise.
At first, I thought I must have made a mistake. I repeated the test with 800 additional hits for 85% PDR.
Test result 2 (https://i.imgur.com/h2pGXA1.png
)
With 1000 sample size, it became clear that this was no mistake. 85% PDR receives 3.59% more DMG than 86-100% PDR.
Obtaining DMG ratio between 85% vs ‘Capped’ PDR allowed me to calculate true PDR cap.
DMG received 85% PDR : DMG received [X]% PDR = [100-85] : [100-X]
15 : [100-X] = 204.252 : 197.168
[100-X] = 14.47976
X = 85.52%
To make sure, I carried out a confirmation test.
Test result 3 (https://i.imgur.com/nb1Z843.png
)
Gradually increasing Armor over 9193 (85%) decreased DMG taken, until 9231 (85.52%). After this point no further decrease was observed, confirming that the PDR cap is 85.5%.
Table 3 also confirms that PDR is a continuous variable and not a discrete one. We benefit from additional Armor even if there is no change in PDR displayed, as long as it’s below the cap.
(2) Non-physical Damage Reduction cap from Armor = 50% (achieved at 100% PDR)
Unlike Physical DR, Non-physical DR is not capped at 85.5% PDR. It continues to provide additional Cold/Fire/Lightning/Poison/Shadow DR up to 100% PDR. At 100% PDR, Armor contributes half the amount (=50%) as Non-physical DR.
I tested DMG received in NMD with +20% Lightning DMG affix.
Test method (https://i.imgur.com/SAcfzsM.png
)
Test result 4 (https://i.imgur.com/4nAMYCr.png
)
From Table 4 we can see DMG received decreases as Armor increases, until reaching 100% PDR. This proves that Non-physical DR is not capped at 85.5%, but at 100% PDR Armor.
(3) We can use mathematical functions to predict Armor cap in high tier NMD.
When you place the mouse cursor on top of Armor stat, the game tooltip will display:
Armor - Reduces Physical damage taken from enemies of equal level by XX%
Using this information, we can find Armor required for 85/86/100% PDR against Lv1-100 enemy by manipulating Armor value on Lv1-100 characters. Unfortunately, the game doesn’t tell us anything above Lv100 because player level is capped at 100. We spend majority of late game fighting Lv100+ enemies. So how do we know how much Armor we need for T47-100 NMD?
To answer this question, I have formulated 3 functions to approximate Armor cap against Lv100+ enemies.
Screenshot proof of transition points used (https://i.imgur.com/83WTonq.png
)
Function Equation Finder (Merci infiniment France! (https://www.dcode.fr/function-equation-finder
)
Level vs Armor (PDR) function (https://i.imgur.com/OtOlfHG.png
)
Disclaimer
The functions above only provide approximation. It is my belief that precise function for extrapolating Level vs Armor (PDR) does not exist. I have additional PDR transition points between Lv1-13, but the resulting plot does not fit the curve perfectly. Despite using precise TP, the plot is constantly fluctuating at a microscopic scale – like a sine wave. My functions only represent a general trendline. Please do not expect perfect prediction from them - true data can only be obtained from actual damage testing.
I deliberately excluded most of my data for formulating Level vs Armor (PDR) function, because
(1) Adding complete data causes Function Equation Finder to critically fail. It seems that the tool is sensitive and does not like fluctuating data.
(2) The Function Equation Finder algorithm will prioritize best fit for Lv1-13 data, at the cost of accuracy at the opposite end. This is undesirable because the purpose of the function is to extrapolate data above Lv100. I do not have Lv88-100 data to compensate for this uneven weighting. Hence only 3 points were used for formulating each function.
Back to the topic. Now that we have our function, let’s try to predict Armor cap at T56 NMD.
Step 1. Find the Enemy Level.
Enemy Level = NMD Tier + 54 (World Tier 4) = 110
Step 2. Enter x=110 in 3 functions
The resulting y-value = Armor
Armor (85% PDR) = 9923
Armor (86% PDR) = 10002
Armor (100% PDR) = 11111
T56 Armor cap (Physical) = (9923+10002)/2 = 9962
T56 Armor cap (Elemental) = 11111 Armor
Now let’s check if our prediction is correct.
Test method (https://i.imgur.com/nVWjmIe.png
)
Test result 6 (https://i.imgur.com/Ltojc5c.png
)
Bingo! Table 6 show that Physical DR cap is indeed between 9923-10002 Armor. You can use the function to estimate armor cap in other tiers too, enjoy!
TLDR
(1) Physical Damage Reduction cap from Armor = 85.5%, not 85%
(2) Non-physical Damage Reduction cap from Armor = 50% (achieved at 100% PDR)
(3) We can use mathematical functions to predict Armor cap in high tier NMD.
(https://i.imgur.com/OtOlfHG.png
)