Gacha banners are not flat-rate lotteries. Most use a soft-pity ramp followed by a hard-pity guarantee, which means your real odds depend heavily on where your pity counter sits. This tool models that system pull by pull so you know your true chance and your guaranteed pull count.
How it works
Each pull’s rate depends on the running pity index. Before soft pity it is the flat base rate; during soft pity it ramps linearly toward 100%; at hard pity it is guaranteed:
rate(pity) = base if pity < softPity
= base + slope × (pity - soft + 1) if soft <= pity < hard
= 1.0 at the hard-pity pull
P(by end) = 1 − ∏ (1 − rate_i) over your pulls
The slope is set so the rate climbs from the base at the soft-pity start to
roughly 100% by hard pity. Pulls until guarantee is simply hardPity − currentPity.
Example and tips
With a 0.6% base, soft pity at 74, hard pity at 90, and a current pity of 10, twenty pulls land well inside the flat region so your odds stay low. Push your plan past pull 74 and the ramp does the heavy lifting. If you are saving for a specific banner unit, the guaranteed-pull figure is the budget that actually matters; treat the soft-pity probability as the bonus chance to finish early.