Today's spreadsheet can be found here: https://docs.google.com/spreadsheets/d/1iCe6iXeBYthhnCjLfgLy7ICyhvLCOL2kMRubYcCenXM/edit?usp=sharing
How Armor Works
First, armor is divided into three types. Physical armor works against basic attacks (Aka AAs, AKA right click damage). Spell Armor works against abilities (QWERD123456). If there is no “Physical” or “Spell” prepended and is just “armor” then it works against all sources of damage.
Each point of armor is worth 1% of damage reduction. Armor is capped at +75 (75% resistance) and -25 (25% vulnerability) at either end, with Nazeebo’s Superstition being an exception of providing -30 physical armor. Multiple sources of armor stack additively.
As it stands, there are only two types of damage that ignore armor. First, all % hp damage ignore armor. Second, Cassia's level 20 Titan's revenge lets her basic attacks ignore armor. Ignoring armor means ignoring both positive and negative armor, so "vulnerability" talents do not amplify these sources of damage.
A comparison to other MOBAs
There are two main distinctions between armor in HOTS and other MOBAs. First, there are no abilities that deal physical damage in HOTS. Even spells such as Valla’s Hungering Arrow or Raynor’s Penetrating Shot still do spell damage. Second, armor stacking in HOTS is significantly more effective than in other MOBAs.
In HOTS, damage resistance scales linearly with armor. In other MOBAs like League of Legends or DOTA, EHP scales linearly with armor. (For reference, one point of armor in DOTA is equal to 6 points of armor in League of Legends, but otherwise they share the same calculation). What this means is that for a League of Legends Hero with 1000 HP, 25 more point of armor means it takes 250 more damage to kill that hero, AKA increases their EHP by 250. For Heroes of the Storm, 25 more armor increases EHP by a different value based on how much armor that hero already has. This means that armor stacking is significantly more effective on heroes that already have access to armor through base stats, skills, or talents. Let’s use an example hero with 1000 HP and 15 armor (~1176.5 EHP) and another 1176.5 EHP. If the former hero (with base armor) gains 25 armor (such as from an Uther heal), their EHP would go up to 1666.7 while if the latter hero (with only HP) gained 25 armor they would go up to 1568.6 EHP. This plays significantly into the strength of talent combinations such as Malthael’s Tormented Souls + Ethereal Existence, where the combination of all the armor provided made him functionally unkillable.
Implications to the Double Support Meta
The current “Double Support” meta isn’t primarily due to the stacking effects of armor. Rather, the way armor stacks affects the current choices of tanks, as tanks such as Arthas, Johanna, and Anub’arak heavily benefit from armor provided by Uther. Rather, the more important part is how Armor acts as a healing amplification effect. The EHP multiplier elaborated on above also applies to healing. This means that while a hero like Uther’s raw healing numbers aren’t insane, they make a hero like Valla functionally unkillable while backed up by Auriel’s high raw healing throughput.