Armor

Not to be confused with Armor, a cosmetic item for Warframes. Armor is an attribute of characters which reduces incoming damage towards the character's hit points, but does not apply to shields. The Armor value of Warframes can be increased by using Steel Fiber.

Damage after Armor is calculated using the following formula:

final Damage = modded Damage * mitigation multiplier

Damage Calculation with Armor
As of Update 11:

mitigation multiplier = 1 / (1 + (Armor / 300))

THUS,

Damage = modded Damage / (1 + (Armor / 300))

Note that the mitigation multiplier is the (decimal) percentage of damage that will pass through armor.

For example; The Lecta does 35 base electric damage unmodded, which will have no elemental damage multipliers against Grineer. Attacking a level 1 Grineer lancer with a base armor of 100 will result in 26 health damage. This is because 35 / (1 + (100 / 300)) = 26.25, but since all damage numbers are rounded, we get 26.

If we attack a Grineer Trooper instead, who has 150 armor at level 1, we will deal 23 health damage with our Lecta, because 35 / (1 + (150 / 300)) = 23.33, and again is rounded to 23 on screen.

Armor Graphed
This graph displays damage mitigation as a function of armor in violet, and the efficiency of armor as it is added in orange.

From this you can see that armor becomes less effective at mitigation over time, meaning as an enemy or frame increases in armor linearly, their damage mitigation per point of armor is reduced exponentially, granting diminishing returns on further armor increases.

A frame with 100 armor will negate 25% of damage, or 0.25% per point of armor.

While a frame of 300 armor will negate 50% of damage, each point of armor accounts for only 0.16% per point.

Diminishing Returns (Do not really diminish)
Because of the way that Armor is currently scaled up (see below) enemies will grow exponentially tougher as they grow in level, and although Armor does provide diminishing returns, the proper way to think about it is how much extra damage is required to kill the enemy.

A frame with 100/150/300/600 armor that negates 25%/33%/50%/66% of damage requires 33%/50%/100%/200% more damage to kill. (+0.33% per point)

So in terms of damage required, the diminishing returns do not have any effect, rather continue to grow steadily by 0.33% per point.

Effective Health is therefore a much better way to measure the effects of Armor

Warframe Armor & Effective Health
All Warframes have an armor value, and thus, damage mitigation. The calculations for a warframes received damage are the same as above, but additionally, you can calculate a Warframe's Effective Health, which is how much damage you need to take to reach 0 health, given your current health and armor. The Effective health formula is:

Health / mitigation multiplier

Effective Health = Base Health * (1 + (Armor / 300))

For example; A level 30 Valkyr will have 300 health, and 600 armor. Her Effective Health at level 30 would then be 300 * 3 = 900, so she could take that much damage before actually going down.

A level 30 Valkyr with a maxed Steel Fiber would still have 300 health, but 1260 armor. This brings her effective health to 300 * 5.2 = 1560 (see graph below).

The only way to increase a Warframe's armor is to add a Steel Fiber mod. Please refer to that page for the mod's effects on Warframe armor.

The Warframe with the highest base armor is Valkyr with a value of 600, as of Update 12.

The above graph compares effective health for each of the warframes currently available. In each case the effective health is calculated using no additional mods (i.e., the effective health is based on the warframe's max health and armor only), adding a max Steel Fiber mod only (+110% armor), adding a max Vitality mod only (+440% health), and adding both a max Steel Fiber and a max Vitality mod.

Enemy Armor
Enemy armor works exactly the same as Warframe armor in terms of calculations, but scales to the enemy's level. Enemy armor will only be applied if the enemy has armor, as indicated by a yellow health bar. Most enemies of the Corpus and Infested factions do not apply armor to calculations, while most Grineer do.

Scaling of enemy armor values uses the following formula:

Armor = base Armor * (1 + (((current Level - base Level) ^ 1.75) / 200)) *¹
 * base Armor: Base armor value for the enemy.
 * current Level: The level of your target enemy.
 * base Level: This is the initial level an enemy can spawn. This is important because certain enemy types, such as Heavy Grineer, will not spawn until certain levels (like level 8 for Heavy Gunners), so while they may be level 30, their armor has scaled up less than 30 times

As mentioned before, this formula causes high level Grineer (lets say up from level 50) to be very hard to kill, as you can see in the example of a level 108 Heavy Gunner:

500 * (1 + (((108 - 8) ^ 1.75) / 200)) = 500 * (1 + (3162 / 200)) = 500 * 16.81 = 8405 mitigation multiplier = 1 / (1 + (8405 / 300)) = 0.0345

In result your damage is dramatically reduced as you are only causing ~3.45% of your "original" damage.

*¹ some mathematical facts; (due to different looking formulas): So e.g. Armor = base Armor + (base Armor * 0.005 * ((current Level - base Level) ^ 1.75)) gives the same result as the formula above.
 * base Armor * (1 + is equal to base Armor + (base Armor *
 * / 200 is equal to * 0.005