Path of Exile Dps Calculator

/* — BEP CSS STYLES — */ .bep-module-wrapper { font-family: ‘Segoe UI’, Roboto, Helvetica, Arial, sans-serif; font-size: 18px; line-height: 1.6; color: #333; max-width: 100%; margin: 0 auto; background-color: #fff; box-sizing: border-box; } .bep-module-wrapper * { box-sizing: border-box; } /* Reviewer Box */ .bep-reviewer-box { background-color: #f9f9f9; border-left: 4px solid #0093da; padding: 10px 15px; margin-bottom: 20px; font-size: 0.9em; color: #555; } /* Kicker */ .bep-kicker { margin-bottom: 25px; font-weight: 500; } /* Grid Layout */ .bep-grid { display: grid; grid-template-columns: 2fr 3fr; /* Left (Calc) approx 40%, Right (SEO) approx 60% */ gap: 30px; } /* Mobile Responsive */ @media (max-width: 900px) { .bep-grid { grid-template-columns: 1fr; /* Stacked */ } } /* Typography inside module */ .bep-module-wrapper h2 { font-size: 1.4em; margin-bottom: 15px; color: #2c3e50; border-bottom: 1px solid #eee; padding-bottom: 8px; margin-top: 0; } .bep-module-wrapper h3 { font-size: 1.15em; margin-top: 20px; margin-bottom: 10px; color: #34495e; } .bep-module-wrapper ul, .bep-module-wrapper ol { margin-left: 20px; margin-bottom: 15px; } .bep-module-wrapper li { margin-bottom: 8px; } .bep-module-wrapper strong { color: #000; } /* — CALCULATOR STYLES — */ .bep-calculator-container { background: #fdfdfd; border: 1px solid #e0e0e0; padding: 20px; border-radius: 8px; box-shadow: 0 2px 5px rgba(0,0,0,0.05); } .bep-input-group { margin-bottom: 15px; } .bep-label { display: block; margin-bottom: 5px; font-weight: 600; font-size: 0.9em; color: #444; } .bep-sub-label { font-size: 0.8em; color: #777; font-weight: normal; } .bep-input-row { display: flex; gap: 10px; } .bep-input { width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 16px; transition: border-color 0.3s; } .bep-input:focus { border-color: #0093da; outline: none; } /* Result Area – Crucial Requirement: Above buttons, highlighted */ #bep-result-area { display: none; /* Hidden by default */ background-color: #e6f7ff; border: 2px solid #0093da; padding: 15px; border-radius: 6px; margin-bottom: 20px; text-align: center; } .bep-result-title { font-size: 0.9em; color: #555; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 5px; } .bep-result-value { font-size: 2em; font-weight: 800; color: #0093da; margin: 5px 0; } .bep-result-sub { font-size: 0.9em; color: #666; display: flex; justify-content: space-around; margin-top: 10px; border-top: 1px solid #bddef0; padding-top: 8px; } .bep-result-sub span { display: block; } /* Buttons */ .bep-btn-group { display: flex; gap: 10px; margin-bottom: 15px; } .bep-btn { padding: 12px 20px; border: none; border-radius: 4px; cursor: pointer; font-size: 16px; font-weight: 600; transition: background-color 0.2s; flex: 1; } #bep-calc-btn { background-color: #0093da; color: white; } #bep-calc-btn:hover { background-color: #007bb8; } #bep-reset-btn { background-color: #f0f0f0; color: #333; } #bep-reset-btn:hover { background-color: #e0e0e0; } #bep-toggle-btn { background: none; border: none; color: #0093da; text-decoration: underline; cursor: pointer; font-size: 0.9em; display: block; margin: 0 auto; } /* Steps Area */ #bep-calculation-steps { display: none; margin-top: 15px; background: #fff; border: 1px dashed #ccc; padding: 15px; font-size: 0.85em; color: #555; } .bep-step-row { margin-bottom: 5px; font-family: monospace; } /* SEO Section Styles */ .bep-formula-box { background: #f4f4f4; padding: 15px; border-left: 3px solid #777; font-family: monospace; margin-bottom: 15px; overflow-x: auto; } .bep-source-link { font-size: 0.85em; color: #777; text-decoration: none; } .bep-source-link:hover { text-decoration: underline; } .bep-error-msg { color: #d32f2f; font-size: 0.85em; margin-top: 5px; display: none; }
Reviewed by Chris Wilson, ARPG Mechanic Specialist | Last Updated: October 2023

Use this Path of Exile DPS Calculator to instantly determine the exact Physical, Elemental, and Chaos Damage Per Second of your weapons. Essential for crafting, trading, and build optimization.

Path of Exile DPS Calculator

Please enter a valid Attack Speed.
Total DPS
0.00
Phys DPS
0.0
Ele DPS
0.0
Chaos DPS
0.0

Path of Exile DPS Calculator Formula

The standard formula used to calculate the DPS (Damage Per Second) of a weapon in Path of Exile is derived by averaging the minimum and maximum damage and multiplying by the attack speed.

DPS = ((Min Damage + Max Damage) / 2) × Attacks Per Second

Formula Source: PoE Wiki – Damage Per Second

Variables

  • Physical Damage: The base physical damage range shown on the weapon.
  • Elemental Damage: The combined range of Fire, Cold, and Lightning damage added to attacks.
  • Chaos Damage: Any Chaos damage added to attacks (often bypasses Energy Shield).
  • APS (Attacks Per Second): The attack speed of the weapon, which acts as the multiplier for the average damage.

Related Calculators

What is Path of Exile DPS Calculator?

A Path of Exile DPS Calculator is a tool used by players to evaluate the offensive power of weapons found in the game. While the game tooltip provides a basic DPS figure, it often does not aggregate Physical, Elemental, and Chaos damage into a single metric that is easy to compare against other items.

This calculator helps players determine if a new drop is an upgrade (“raw DPS upgrade”) before applying complex modifiers from the passive skill tree or support gems. It is particularly useful for traders pricing items or players crafting high-end rare weapons.

How to Calculate Path of Exile DPS (Example)

Here is a step-by-step example of calculating the DPS for a sword with the following stats:

  1. Identify Stats: Physical Damage: 50-100, Fire Damage: 10-20, APS: 1.5.
  2. Calculate Average Physical: (50 + 100) / 2 = 75.
  3. Calculate Average Elemental: (10 + 20) / 2 = 15.
  4. Sum Average Damage: 75 (Phys) + 15 (Ele) = 90 Total Average Damage.
  5. Multiply by Speed: 90 × 1.5 APS = 135 Total DPS.

Frequently Asked Questions (FAQ)

Does this include Quality?
Usually, players input the numbers visible on the item after quality has been applied. If you are crafting, apply quality scraps in-game to see the updated numbers before using this calculator.

Why is pDPS separate from eDPS?
pDPS (Physical) scales with modifiers like “increased Physical Damage,” while eDPS (Elemental) scales with “increased Elemental Damage.” Builds usually focus on scaling one specific type efficiently.

Does this calculate Poison or Bleed DPS?
No. Ailment DPS (Bleed, Poison, Ignite) relies on complex character stats, passive tree nodes, and gem links. This tool calculates the weapon’s local DPS only.

What is a good DPS for a weapon?
This depends entirely on the league stage and weapon type. In the endgame, two-handed axes often exceed 800+ pDPS, while one-handed foils may aim for 450+ pDPS.

/** * Formats a number with commas and 2 decimal places. * Used for displaying the final results. */ function bepFmtNum(num) { if (isNaN(num)) return “0.00”; return num.toLocaleString(‘en-US’, { minimumFractionDigits: 2, maximumFractionDigits: 2 }); } /** * Helper to get float value from ID. Returns 0 if empty or invalid. */ function bepGetVal(id) { const el = document.getElementById(id); const val = parseFloat(el.value); return isNaN(val) ? 0 : val; } /** * Main Calculation Logic */ function bepCalculateDPS() { // 1. Get Inputs const physMin = bepGetVal(‘bep-phys-min’); const physMax = bepGetVal(‘bep-phys-max’); const eleMin = bepGetVal(‘bep-ele-min’); const eleMax = bepGetVal(‘bep-ele-max’); const chaosMin = bepGetVal(‘bep-chaos-min’); const chaosMax = bepGetVal(‘bep-chaos-max’); const aps = bepGetVal(‘bep-aps’); // 2. Validation const apsError = document.getElementById(‘bep-aps-error’); const resultArea = document.getElementById(‘bep-result-area’); // Reset previous errors apsError.style.display = ‘none’; // Must have at least APS to calculate anything meaningful in PoE context // Even if damage is 0, APS must be valid physics. if (aps Max) // In PoE, if Min > Max, the game usually treats it oddly, but for calc we swap or error. // Let’s just assume user input might be messy and take Math.abs or just swap logic implicitly by averaging. // Average = (A + B) / 2 is order independent. // 3. Calculation // Physical const avgPhys = (physMin + physMax) / 2; const physDps = avgPhys * aps; // Elemental const avgEle = (eleMin + eleMax) / 2; const eleDps = avgEle * aps; // Chaos const avgChaos = (chaosMin + chaosMax) / 2; const chaosDps = avgChaos * aps; // Total const totalDps = physDps + eleDps + chaosDps; // 4. Update UI document.getElementById(‘bep-final-result’).innerText = bepFmtNum(totalDps); document.getElementById(‘bep-phys-result’).innerText = bepFmtNum(physDps); document.getElementById(‘bep-ele-result’).innerText = bepFmtNum(eleDps); document.getElementById(‘bep-chaos-result’).innerText = bepFmtNum(chaosDps); // Show Result Area resultArea.style.display = ‘block’; // 5. Generate Steps const stepsHtml = `
1. Average Physical Damage: (${physMin} + ${physMax}) / 2 = ${bepFmtNum(avgPhys)}
2. Physical DPS: ${bepFmtNum(avgPhys)} × ${aps} APS = ${bepFmtNum(physDps)}

3. Average Elemental Damage: (${eleMin} + ${eleMax}) / 2 = ${bepFmtNum(avgEle)}
4. Elemental DPS: ${bepFmtNum(avgEle)} × ${aps} APS = ${bepFmtNum(eleDps)}

5. Average Chaos Damage: (${chaosMin} + ${chaosMax}) / 2 = ${bepFmtNum(avgChaos)}
6. Chaos DPS: ${bepFmtNum(avgChaos)} × ${aps} APS = ${bepFmtNum(chaosDps)}

Total DPS = ${bepFmtNum(physDps)} + ${bepFmtNum(eleDps)} + ${bepFmtNum(chaosDps)} = ${bepFmtNum(totalDps)}
`; document.getElementById(‘bep-calculation-steps’).innerHTML = stepsHtml; } /** * Resets the calculator */ function bepResetCalc() { // Clear inputs const inputs = document.querySelectorAll(‘.bep-input’); inputs.forEach(input => input.value = ”); // Hide results and steps document.getElementById(‘bep-result-area’).style.display = ‘none’; document.getElementById(‘bep-calculation-steps’).style.display = ‘none’; document.getElementById(‘bep-aps-error’).style.display = ‘none’; document.getElementById(‘bep-toggle-btn’).innerText = “Show Calculation Steps”; } /** * Toggles the visibility of the calculation steps */ function bepToggleSteps() { const stepsDiv = document.getElementById(‘bep-calculation-steps’); const btn = document.getElementById(‘bep-toggle-btn’); const resultArea = document.getElementById(‘bep-result-area’); // Only allow toggle if calculation has run (result area is visible) if (resultArea.style.display === ‘none’) { alert(“Please calculate a value first.”); return; } if (stepsDiv.style.display === ‘none’ || stepsDiv.style.display === ”) { stepsDiv.style.display = ‘block’; btn.innerText = “Hide Calculation Steps”; } else { stepsDiv.style.display = ‘none’; btn.innerText = “Show Calculation Steps”; } } V}

Leave a Comment