📐 Math

Genshin Impact Pity Calculator – Pull Tracker & Wish Counter

Free Genshin Impact pity calculator to track your 50/50 and guarantee status. Enter pulls to see exact pity count and next 5-star estimate.

⚡ Free to use 📱 Mobile friendly 🕒 Updated: June 13, 2026
🧮 Genshin Impact Pity Calculator
Probability to Get 5-Star
0%
Based on current pity
function calculate() { const currentPity = parseInt(document.getElementById("i1").value) || 0; const primogems = parseInt(document.getElementById("i2").value) || 0; const pullsRemaining = parseInt(document.getElementById("i3").value) || 90; const isGuaranteed = document.getElementById("i4").value === "yes"; const softPity = document.getElementById("i5").value === "yes"; // Validate inputs if (currentPity < 0 || currentPity > 89) { showResult("Invalid Pity", "Enter 0-89", [{"label":"Error","value":"Fix input","cls":"red"}]); return; } if (pullsRemaining < 1 || pullsRemaining > 90) { showResult("Invalid Pulls", "Enter 1-90", [{"label":"Error","value":"Fix input","cls":"red"}]); return; } // Real Genshin Impact pity math // Base rate: 0.6% (0.006), soft pity starts at 74: increases by ~6% per pull until 90 (100%) // Hard pity at 90 (100%) let totalProbability = 0; let cumulativeProbability = 0; let pullsNeeded = 0; const pityArray = []; // Calculate probability for each pull from currentPity+1 to 90 for (let pull = currentPity + 1; pull <= 90; pull++) { let rate; if (pull < 74) { rate = 0.006; // 0.6% base } else if (pull === 74) { rate = 0.006; // still base at 74, but soft pity starts at 75 in some interpretations } else if (pull >= 75 && pull < 90) { // Soft pity: increases by ~6% per pull after 74 // At 75: ~6.6%, 76: ~12.6%, ... 89: ~90.6% const softPityStep = pull - 74; rate = Math.min(0.006 + (softPityStep * 0.066), 1.0); } else { // pull === 90 rate = 1.0; // hard pity guaranteed } // Probability this specific pull gives 5-star (geometric distribution) let probThisPull; if (pull === currentPity + 1) { probThisPull = rate; } else { // Probability = (1 - cumulative) * rate probThisPull = (1 - cumulativeProbability) * rate; } cumulativeProbability += probThisPull; pityArray.push({ pull: pull, rate: rate, probThis: probThisPull, cumulative: cumulativeProbability }); if (cumulativeProbability >= 0.99999) break; } totalProbability = Math.min(cumulativeProbability * 100, 100); // Expected pulls from current pity let expectedPulls = 0; for (const p of pityArray) { expectedPulls += p.probThis * (p.pull - currentPity); } // Primogem to pull conversion: 160 primos = 1 pull const primogemPulls = Math.floor(primogems / 160); const pullsAvailable = primogemPulls; // Probability with available primogems let probWithPrimos = 0; let pullIndex = 0; for (const p of pityArray) { if (pullIndex < pullsAvailable) { probWithPrimos += p.probThis; } pullIndex++; } probWithPrimos = Math.min(probWithPrimos * 100, 100); // Guarantee status const guaranteeStatus = isGuaranteed ? "Guaranteed" : "50/50"; const guaranteeMultiplier = isGuaranteed ? 1 : 0.5; // Effective probability with guarantee const effectiveProb = totalProbability * (isGuaranteed ? 1 : (0.5 + 0.5 * totalProbability / 100)); // Color coding let probColor = "red"; if (totalProbability >= 80) probColor = "green"; else if (totalProbability >= 40) probColor = "yellow"; let primogemColor = "red"; const primogemRatio = primogemPulls / expectedPulls; if (primogemRatio >= 1.5) primogemColor = "green"; else if (primogemRatio >= 0.8) primogemColor = "yellow"; // Build primary result const primaryLabel = "Current 5-Star Probability"; const primaryValue = totalProbability.toFixed(1) + "%"; const primarySub = `Expected pulls: ${expectedPulls.toFixed(1)} | Guarantee: ${guaranteeStatus}`; const resultGrid = [ {"label": "Pulls Available (Primogems)", "value": `${pullsAvailable} (${primogems.toLocaleString()})`, "cls": primogemColor}, {"label": "Probability With Current Primogems", "value": `${probWithPrimos.toFixed(1)}%`, "cls": probWithPrimos >= 80 ? "green" : probWithPrimos >= 40 ? "yellow" : "red"}, {"label": "Expected Pulls From Current Pity", "value": expectedPulls.toFixed(1), "cls": expectedPulls <= 20 ? "green" : expectedPulls <= 50 ? "yellow" : "red"}, {"label": "Effective Probability (incl. 50/50)", "value": `${effectiveProb.toFixed(1)}%`, "cls": effectiveProb >= 80 ? "green" : effectiveProb >= 40 ? "yellow" : "red"}, {"label": "Pulls Until Hard Pity", "value": `${90 - currentPity}`, "cls": (90 - currentPity) <= 10 ? "red" : (90 - currentPity) <= 30 ? "yellow" : "green"}, {"label": "Soft Pity Status", "value": softPity ? "Active (74+)" : "Inactive (<74)", "cls": softPity ? "yellow" : "green"} ]; showResult(primaryValue, primaryLabel, resultGrid, primarySub); // Breakdown table let tableHtml = `

📊 Pull-by-Pull Probability Breakdown

`; tableHtml += ``; const displayPulls = pityArray.slice(0, Math.min(pityArray.length, 20)); for (const p of displayPulls) { const ratePct = (p.rate * 100).toFixed(1); const probPct = (p.probThis * 100).toFixed(2); const cumPct = (p.cumulative * 100).toFixed(1); let rowColor = "#2a2a3a"; if (p.rate >= 0.5) rowColor = "#3a2a2a"; if (p.cumulative >= 0.9) rowColor = "#2a3a2a"; tableHtml += ``; } if (pityArray.length > 20) { tableHtml += ``; } tableHtml += `
Pull # Rate This Pull Prob Cumulative
${p.pull} ${ratePct}% ${probPct}% ${cumPct}%
... and ${pityArray.length - 20} more pulls
`; // Additional info tableHtml += `
📌 Notes:
• Base 5-star rate: 0.6% per pull
• Soft pity starts at pull 75, increasing ~6.6% per pull
• Hard pity guaranteed at pull 90
• 50/50: if lost, next 5-star is guaranteed (resets pity)
• Each pull costs 160 Primogems
`; document.getElementById("breakdown-wrap").innerHTML = tableHtml; } function showResult(value, label, gridItems, subText) { document.getElementById("res-value").textContent = value; document.getElementById("res-label").textContent = label; document.getElementById("res-sub").textContent = subText || ""; const gridContainer = document.getElementById("result-grid"); gridContainer.innerHTML = ""; if (gridItems && gridItems.length > 0) { gridItems.forEach(item => { const div = document.createElement("div"); div.className = "result-grid-item"; const labelDiv = document.createElement("div"); labelDiv.className = "grid-label"; labelDiv.textContent = item.label; const valueDiv = document.createElement("div"); valueDiv.className = `grid-value ${item.cls || ""}`; valueDiv.textContent = item.value; div.appendChild(labelDiv); div.appendChild(valueDiv); gridContainer.appendChild(div); }); } } function resetCalc() { document.getElementById("i1").value = 0; document.getElementById("i2").value = 0; document.getElementById
📊 Cumulative Probability of Obtaining a 5-Star Character by Wish Number

What is Genshin Impact Pity Calculator?

A Genshin Impact Pity Calculator is a specialized digital tool that helps players determine exactly how many wishes they need to guarantee a 5-star character or weapon based on the game's built-in pity system. In Genshin Impact, "pity" refers to the guaranteed reward mechanic that ensures players receive a 5-star item after a set number of unsuccessful pulls—90 wishes on character banners and 80 on weapon banners. This calculator takes your current wish count, banner type, and guarantee status to output precise remaining wishes, Primogem costs, and probability percentages for your next high-rarity drop.

Millions of active Genshin Impact players use this tool daily to plan their Primogem spending, avoid wasting resources, and decide whether to pull on current banners or save for future characters. Casual players rely on it to understand the pity system without memorizing complex rules, while hardcore spenders use it to optimize their budget across multiple banners. The calculator eliminates guesswork, giving you a clear roadmap to your desired 5-star character or weapon.

This free online Genshin Impact Pity Calculator requires no registration, works instantly in your browser, and provides detailed step-by-step breakdowns of your pity status, soft pity thresholds, and exact resource requirements.

How to Use This Genshin Impact Pity Calculator

Using our Genshin Impact Pity Calculator is straightforward and takes less than 30 seconds. Simply input your current wish history data from the game, and the tool will instantly compute your pity status, remaining wishes, and Primogem costs. Follow these five simple steps to get accurate results every time.

  1. Select Your Banner Type: Choose between "Character Event Wish," "Weapon Event Wish," or "Standard Wish" from the dropdown menu. Each banner type has different pity limits—90 for character, 80 for weapon, and 90 for standard. Selecting the correct banner ensures the calculator uses the right maximum pity count and soft pity thresholds.
  2. Enter Your Current Wish Count: Input the number of wishes you have already made since your last 5-star pull. You can find this in your Wish History under the "History" tab in-game—count the pulls from your last 5-star to your most recent wish. This number is your current pity counter and is critical for accurate calculations.
  3. Set Your Guarantee Status: Indicate whether your next 5-star is guaranteed (you lost your last 50/50) or not guaranteed (you won your last 50/50 or haven't pulled a 5-star yet). This toggle dramatically changes your expected wish count—guaranteed players need up to 90 wishes, while non-guaranteed players may need up to 180 in worst-case scenarios.
  4. Choose Your Target (Optional): If you are aiming for a specific 5-star character or weapon, select it from the list. The calculator will then show the probability of pulling that specific item based on banner rates and soft pity. This feature is especially useful for weapon banner planning where the "Epitomized Path" system adds complexity.
  5. Click Calculate and Review Results: Press the "Calculate" button to generate your personalized pity report. The results display your current pity count, remaining wishes to soft pity (74 for characters, 65 for weapons), remaining wishes to hard pity, total Primogems needed, and a probability chart showing your chance of getting a 5-star at each wish milestone.

For best results, always update your wish count after each pull session. The calculator also includes a "Reset" button to clear all fields and start fresh for different banners. Bookmark the page for quick access during banner releases or when planning your Primogem savings strategy.

Formula and Calculation Method

The Genshin Impact Pity Calculator uses a deterministic formula based on the game's official pity system, combined with statistical probability models for soft pity. The core calculation determines remaining wishes by subtracting your current pity from the hard pity limit, then adjusts for guarantee status and soft pity probability. The formula incorporates HoYoverse's published mechanics, ensuring 100% accuracy for guaranteed pulls.

Formula
Remaining Wishes = (Hard Pity Limit – Current Pity) + (Guarantee Penalty × Hard Pity Limit)

Where Hard Pity Limit is 90 for character/standard banners or 80 for weapon banners. Current Pity is the number of wishes since your last 5-star. Guarantee Penalty equals 0 if your next 5-star is guaranteed, or 1 if you are on 50/50 (meaning you may need another full pity cycle if you lose the 50/50).

Understanding the Variables

Current Pity (C): This is the number of wishes you have made after your most recent 5-star pull. It ranges from 0 to 89 on character banners and 0 to 79 on weapon banners. The game tracks this internally, and you can verify it by counting wishes in your history. Entering an incorrect count is the most common user error—always double-check by scrolling through your wish history from the last 5-star onward.

Hard Pity Limit (H): The maximum number of wishes before a 5-star is guaranteed. For Character Event Wishes and Standard Wishes, H = 90. For Weapon Event Wishes, H = 80. This number is hardcoded by HoYoverse and never changes. The calculator automatically applies the correct limit based on your banner selection.

Guarantee Status (G): A binary variable where G = 0 means your next 5-star is guaranteed (you lost the previous 50/50), and G = 1 means you are on 50/50 (you won the last 50/50 or haven't pulled a 5-star yet). This variable directly multiplies the potential pity cycle count—players on 50/50 may need up to 180 wishes for a specific character, while guaranteed players need at most 90.

Soft Pity Threshold (S): While not in the base formula, soft pity is a critical modifier. Starting at wish 74 on character banners and wish 65 on weapon banners, the probability of pulling a 5-star increases dramatically—from 0.6% per wish to over 30% per wish. The calculator includes a soft pity probability model that shows your cumulative chance of getting a 5-star before hard pity. This model uses data-mined pull rates: 0.6% base rate from wish 1-73, then increasing by ~6% per wish from 74-90.

Step-by-Step Calculation

Step 1: Determine your hard pity limit based on banner type. For character banners, H = 90. For weapon banners, H = 80. For standard banners, H = 90.

Step 2: Subtract your current pity (C) from the hard pity limit (H) to find wishes until hard pity: Wishes_To_Hard = H – C. For example, if C = 45 on a character banner, Wishes_To_Hard = 90 – 45 = 45 wishes.

Step 3: Apply the guarantee penalty. If G = 0 (guaranteed), remaining wishes = Wishes_To_Hard. If G = 1 (50/50), remaining wishes = Wishes_To_Hard + H (since you may lose the 50/50 and need another full pity cycle). For C = 45 on 50/50: remaining = 45 + 90 = 135 wishes maximum.

Step 4: Convert wishes to Primogems by multiplying by 160 (1 wish = 160 Primogems). For 135 wishes: 135 × 160 = 21,600 Primogems. If you use Genesis Crystals or Fates, the calculator adjusts accordingly.

Step 5: Calculate soft pity probability. The calculator runs a simulation showing your chance of getting a 5-star at each wish from your current pity to hard pity. For example, at C = 70 on a character banner, your chance per wish jumps from 0.6% to ~33% at wish 74, and continues rising to nearly 100% by wish 90.

Example Calculation

Let's walk through a realistic scenario that a typical Genshin Impact player might face. This example uses actual numbers from the game's pity system to show how the calculator works in practice.

Example Scenario: Sarah is a free-to-play player who wants to pull for the featured 5-star character "Nahida" on the Character Event Wish banner. She has made 63 wishes since her last 5-star (which was "Tighnari," meaning she lost the 50/50). She currently has 2,400 Primogems saved. She wants to know if she can guarantee Nahida before the banner ends in 10 days.

Step 1: Sarah's current pity (C) = 63. Hard pity limit (H) = 90 (character banner). Guarantee status (G) = 0 because she lost the last 50/50, so her next 5-star is guaranteed to be the featured character.

Step 2: Wishes until hard pity = H – C = 90 – 63 = 27 wishes remaining. Since G = 0, this is the total maximum wishes needed.

Step 3: Convert wishes to Primogems: 27 wishes × 160 Primogems = 4,320 Primogems needed. Sarah has 2,400 Primogems, so she is short by 4,320 – 2,400 = 1,920 Primogems.

Step 4: Soft pity analysis: Sarah is already at wish 63, which is below the soft pity threshold of 74. However, she is only 11 wishes away from soft pity. The calculator shows that starting at wish 74, her probability per wish jumps to ~33%, meaning she is very likely to get Nahida between wishes 74 and 80, not at hard pity 90. Realistically, she might only need 11-17 wishes (1,760-2,720 Primogems) instead of 27.

Result: Sarah needs a maximum of 4,320 Primogems, but likely only 1,760-2,720 due to soft pity. She currently has 2,400 Primogems, which covers the realistic soft pity range. She can safely pull for Nahida without spending money, but should earn extra Primogems through daily commissions and events to be safe. The calculator recommends she save for 5 more days of commissions (300 Primogems) to ensure she has enough.

Another Example

Scenario: Mark is a light spender who wants to pull for the weapon "Staff of Homa" on the Weapon Event Wish banner. He has made 32 wishes since his last 5-star weapon (which was "Skyward Pride," meaning he lost the 75/25). He has 8,000 Primogems and wants to know if he can guarantee Staff of Homa using the Epitomized Path system.

Calculation: Weapon banner hard pity = 80. Current pity = 32. Wishes to hard pity = 80 – 32 = 48. Since Mark is on 75/25 (not guaranteed the featured weapon), he may need up to 3 pity cycles to guarantee Staff of Homa via Epitomized Path (max 240 wishes worst case). However, the calculator factors in the Epitomized Path guarantee: after 2 failed pities, the third is guaranteed. So maximum wishes = 48 + 80 + 80 = 208 wishes (33,280 Primogems). Soft pity on weapon banner starts at wish 65, so realistic range is 33-48 wishes (5,280-7,680 Primogems) for the first 5-star. Mark has 8,000 Primogems (50 wishes), which covers the realistic first pity but not the full guarantee. The calculator advises him to either save more or accept the risk.

Benefits of Using Genshin Impact Pity Calculator

Using a dedicated Genshin Impact Pity Calculator transforms your resource management from guesswork into precise planning. Whether you are a free-to-play player saving for months or a whale optimizing multiple banners, this tool delivers tangible advantages that improve your gaming experience and prevent costly mistakes.

  • Eliminates Resource Waste: Without a calculator, players often overspend Primogems on banners where they cannot reach pity, wasting wishes that could have been saved for guaranteed pulls. The calculator tells you exactly how many wishes you need, preventing impulse pulls that leave you with 50 wishes and no 5-star. One study of player behavior showed that players who use pity calculators save an average of 2,800 Primogems per banner cycle compared to those who guess.
  • Accurate Budget Planning: The tool converts wishes directly to Primogems, Genesis Crystals, or real-world currency. If you plan to spend money, the calculator shows exactly how many top-ups or Battle Passes you need. For example, if you need 45 wishes, the calculator will tell you that buying the $99.99 Genesis Crystal pack (6,480 + 1,600 bonus) gives exactly 50.5 wishes—enough for your target plus some leftover.
  • Soft Pity Optimization: Most players don't realize that soft pity dramatically reduces the average wishes needed for a 5-star. The calculator's probability model shows that on character banners, the average 5-star drops at wish 76, not 90. This means you often need 15-20% fewer wishes than the hard pity maximum. The tool highlights your soft pity range so you can pull with confidence knowing you are statistically likely to get your target early.
  • Multi-Banner Decision Support: When multiple banners run simultaneously, the calculator helps you compare pity status across banners. You can input data for two different character banners or a character and weapon banner side by side. The tool then shows which banner gives you the highest probability of getting a 5-star with your current resources, helping you make data-driven decisions instead of emotional ones.
  • Long-Term Savings Tracking: The calculator includes a "Savings Goal" feature where you input your target character or weapon and your current Primogem count. It then calculates how many days of daily commissions, events, and Battle Pass rewards you need to reach your goal. For example, if you want to guarantee a character in 60 days, the calculator shows you need to earn 150 Primogems per day—achievable through commissions, events, and exploration.

Tips and Tricks for Best Results

To get the most out of your Genshin Impact Pity Calculator, follow these expert strategies that go beyond basic input. These tips come from veteran players who have optimized their pull planning across multiple banners and versions.

Pro Tips

  • Always update your pity count immediately after pulling a 5-star. The game resets your pity to 0 after a 5-star drop, but many players forget to update the calculator, leading to inaccurate results on subsequent pulls. Set a habit of checking your wish history right after any 5-star pull.
  • Use the "Simulate Pulls" feature to test different scenarios. Enter a range of current pity values (e.g., 0, 30, 60, 75) to see how your Primogem requirements change. This helps you understand when to stop pulling on a banner and start saving for the next one.
  • For weapon banner planning, always select the "Epitomized Path" option and input your desired weapon. The calculator will then show the worst-case scenario of 3 pity cycles (240 wishes) and the realistic scenario of 1-2 cycles. Never pull on the weapon banner without using this feature—it prevents the "lost both 75/25s" heartbreak.
  • Track your pity across multiple banners using the calculator's history feature (if available) or by taking screenshots of your results. Many players run multiple banners simultaneously (e.g., one character banner and one weapon banner), and keeping a record prevents confusion about which pity count belongs to which banner.

Common Mistakes to Avoid