Research:Combat

Blocking with a shield
On enemy hit

The enemySwing variable is effectively how much the enemy has charged their attack. It seems to be uniform random and is not based on weapon damage. The other thing of note is the playerTerm bonus. The fBlockStillBonus GMST is not used at all; the multiplier is hard-coded. Unexpectedly, this bonus is still given if the player is moving backwards or strafing, only moving forward will negate it.

Bodypart Hit Chance
Note that you still take unarmored class hits to the shield arm, if you don't have a shield equipped.

Determining armor class
Item armor class:

Armor rating
Note that elemental shield spells do not contribute towards armor.

Damage Taken
With every successful hit a weapon takes fWeaponDamageMult: (default 0.1) percentage of damage rounded down. Minimum damage to weapon = 1 With weapon health going down, its damage is also going down, thus in turn slowing the rate of damaging weapon. Armor takes an amount of damage that it stopped. Only armor part that took a hit takes any damage.