Calculate your current luck with current attempts.
Results
Average Attempts–
Avg. Currency Cost–
Attempts for Confidence–
Current Success Prob.–
Path of Exile 2 Crafting Guide
Crafting in Path of Exile 2 represents a significant shift from the original game. With the removal of sockets from gear and the introduction of new currency mechanics like the updated Exalted Orb and Regal Orb systems, understanding the math behind your attempts is more critical than ever. Whether you are aiming for a Tier 1 Physical Damage roll or a specific Resistance suffix, this calculator helps you manage your resources effectively.
How to Calculate PoE 2 Crafting Costs
Success in PoE 2 crafting is governed by "Weights." Every modifier has a weight assigned to it. The probability of hitting a specific modifier is calculated as:
Probability (%) = (Weight of Target Mod / Total Weight of All Possible Mods) * 100
Once you know this percentage, you can use our calculator to determine how much currency you need to set aside. Most players aim for a 95% confidence level, meaning they want to have enough currency to ensure they hit the mod in 95 out of 100 hypothetical scenarios.
Key Crafting Terms in PoE 2
Mod Weight: The frequency value of a modifier. High weight means common; low weight means rare.
Confidence Level: The mathematical certainty of achieving a result within a specific number of attempts.
Average Luck: The "1 in N" chance. Statistically, you should hit the mod once every N times.
Expected Cost: The average currency expenditure based on the success rate and cost per attempt.
Example Crafting Scenario
Imagine you are crafting a bow and want to hit a specific modifier that has a 2% chance of appearing. Each attempt costs 1 Exalted Orb.
Success Chance: 2%
Average Attempts: 50 (1 / 0.02)
Attempts for 95% Confidence: 149. This means to be 95% sure you hit the mod, you should prepare 149 Exalted Orbs, not just the "average" 50.
By using this calculator, you can avoid "crafting rage" by understanding the true variance involved in Path of Exile 2's RNG systems.
function calculatePoeCrafting() {
var probInput = document.getElementById("poeSuccessChance").value;
var costInput = document.getElementById("poeCostPer").value;
var confInput = document.getElementById("poeConfidence").value;
var attemptsMadeInput = document.getElementById("poeAttemptsMade").value;
var p = parseFloat(probInput) / 100;
var costPer = parseFloat(costInput);
var confidence = parseFloat(confInput) / 100;
var attemptsMade = parseInt(attemptsMadeInput);
if (isNaN(p) || p 1) {
alert("Please enter a valid Success Chance between 0.01 and 100.");
return;
}
if (isNaN(costPer) || costPer < 0) {
costPer = 0;
}
if (isNaN(confidence) || confidence = 1) {
confidence = 0.95;
}
if (isNaN(attemptsMade) || attemptsMade < 0) {
attemptsMade = 0;
}
// Logic
var avgAttempts = Math.ceil(1 / p);
var avgTotalCost = avgAttempts * costPer;
// N = log(1 – Confidence) / log(1 – p)
var reqAttempts = Math.ceil(Math.log(1 – confidence) / Math.log(1 – p));
var reqCost = reqAttempts * costPer;
// Current Prob = 1 – (1 – p)^n
var currentProb = (1 – Math.pow(1 – p, attemptsMade)) * 100;
// Display
document.getElementById("avgAttempts").innerText = avgAttempts.toLocaleString();
document.getElementById("avgCost").innerText = avgTotalCost.toLocaleString();
document.getElementById("confAttempts").innerText = reqAttempts.toLocaleString();
document.getElementById("currentProb").innerText = currentProb.toFixed(2) + "%";
var summary = "To hit a " + (p * 100).toFixed(2) + "% chance mod, you expect to spend " + avgAttempts + " attempts on average. To be " + (confidence * 100) + "% certain, prepare for " + reqAttempts + " attempts costing " + reqCost.toLocaleString() + " currency.";
document.getElementById("summaryText").innerText = summary;
document.getElementById("poeResultArea").style.display = "block";
}