GAME DESIGN / REPRODUCIBLE REWARD CHECKS
A 1% drop rate does not
promise a reward in 100 tries.
At a fixed 1% chance, about 36.60% of modeled players are still waiting after 100 attempts. Follow this worked example to compare that tail with a soft-pity design and turn the intended behavior into repeatable checks.
Start with the actual promise
“The average is 100 attempts” and “everyone gets a reward within 100 attempts” mean different things. With independent, constant probability p, the chance of still missing after n attempts is (1 − p)n. The full expected wait is 1 / p. The average does not cap any individual wait.
At 1%, the first attempt that reaches 95% cumulative success is 299. That is a percentile, not a guarantee. For the constant-chance case, these are properties of the geometric distribution.
This is a single-target first-reward model. It assumes the entered probability applies on each attempt, conditional on all earlier misses. It does not simulate player behavior, several items, session resets, changing eligibility or an actual game engine.
Compare two explicit models
| Input | Baseline | Candidate |
|---|---|---|
| Base chance | 1% | 1% |
| First boosted attempt | 0 (off) | 51 |
| Step | 0 | 1 percentage point |
| Guaranteed attempt | 0 (off) | 80 |
| Previous misses | 0 | 0 |
| Seconds per attempt | 120 | 120 |
| Analysis horizon | 200 | 200 |
In this convention, the first boost applies on attempt 51: its chance is 2%. Attempt 52 has 3%, and so on. The guarantee takes priority on attempt 80. A 1 percentage point increase is not a 1% relative increase.
- Open the free tool and click Load boss-reward example.
- Confirm the inputs above. The free edition runs the comparison without the paid acceptance-check editor.
- Choose Acquired by this attempt, then inspect attempt 75 and attempt 80.
- Export Curve CSV and compare it with the expected 200-row CSV.
Inspect the result, including the tail
Blue: fixed 1% · Orange: soft pity + guarantee. These are analytical model results, not observed player data.
| By attempt | Baseline acquired | Candidate acquired | Candidate guarantee? |
|---|---|---|---|
| 10 | 9.56% | 9.56% | No |
| 50 | 39.50% | 39.50% | No |
| 75 | 52.94% | 98.72% | No |
| 80 | 55.25% | 100.00% | Yes |
| 100 | 63.40% | 100.00% | Yes |
| 200 | 86.60% | 100.00% | Yes |
The candidate reaches P95 at 71 attempts and P99 at 76. Its full mean is 46.34 attempts. The baseline's full mean is 100, but its mean capped at this 200-attempt horizon is 86.60. A capped mean counts each still-unsuccessful player as having spent the entire horizon.
Displayed percentages are rounded. “100.00%” alone does not prove a guarantee. Check the explicit guarantee flag or survivor probability. A very small positive survivor probability can also round or underflow to zero in floating-point arithmetic.
Turn the design decision into two checks
A useful regression check names a measurable promise:
By attempt 75: acquired probability ≥ 0.95 By attempt 80: still-missing probability ≤ 0
The candidate passes both. If a later balance change removes the pity step and guarantee, the same checks fail: only 52.94% have acquired by attempt 75, and 44.75% are still missing at attempt 80.
Download the passing project JSON, intentionally failing project JSON and expected passing summary. The JSON format expresses probabilities as fractions (0.01 = 1%); the browser form uses percentages.
With the full edition
Load the saved project in the browser, or run the included CLI from the extracted product folder:
node cli.cjs examples/boss-reward.json node cli.cjs examples/failing-regression.json
The first example returns exit code 0; the intentionally failing example returns 1. Invalid input returns 2. This can make a model change fail your existing test pipeline. It cannot detect a mismatch between the model and your game's own code.
When the free edition is enough
For occasional comparison, Lite includes two models, all chart modes, attempt inspection and CSV export up to 1,000 attempts. It works online or from its extracted ZIP. Open index.html; no Node.js, account or installation is needed.
When the paid workflow helps
The €19 full edition adds saved projects, acceptance checks, HTML review reports, up to 100,000 attempts and the Node.js CLI/source/test kit. Its value is making recurring model review reproducible.