Compare Dota 2 builds with real DPS numbers
Picking between two items often comes down to which one actually raises your damage per second — and the answer is not always the bigger number on the tooltip. This calculator uses Dota 2’s real attack-speed and armor formulas so you can compare builds, gear, and buffs with confidence.
How it works
Your attacks per second come from the engine formula:
attacks_per_second = (1 / base_attack_time) * (attack_speed / 100)
Base attack time is 1.7 seconds for most heroes, and attack speed is 100 + bonus IAS, clamped between 20 and 700. Raw DPS is damage × attacks_per_second. Crit is added as expected value: 1 + crit_chance × (crit_multiplier − 1).
To get effective DPS against a real target, armor reduces physical damage:
reduction = (0.06 * armor) / (1 + 0.06 * |armor|)
effective_dps = raw_dps * (1 - reduction)
Example and tips
A hero with 120 damage, 1.7 BAT, and 150 bonus attack speed lands (1/1.7) × (250/100) ≈ 1.47 attacks per second, for about 176 raw DPS. Against a target with 10 armor (≈37.5% reduction), effective DPS drops to about 110. Because attack-speed and damage multiply, the best item is usually the one that pushes your weaker stat — if you already have high damage, more attack speed often wins, and vice versa. Use the target-armor field to test how an enemy’s defensive items change your real output.