Jun 26, 2026 · 6 min read · GameMantra Team

Pity systems and designing gacha rates for full disclosure

US disclosure rules now force exact pull odds on screen. Here is how pity-system design changes when the rates are no longer hidden from players

A gacha rate you designed assuming nobody would ever see it is now printed on the screen next to the pull button. The FTC's finalized loot box and gacha disclosure rules, in force since late 2025, require games serving US players to show exact pull probabilities on every storefront. Korea, China, and Taiwan already required this. The numbers that used to live in a spreadsheet are now part of the player-facing UI, and a rate that looked fine in private can look predatory in public. That changes how you design the system, not just how you display it.

What the disclosure rules actually changed

The mechanical requirement is narrow: show the exact probability of each random outcome before the player pays. A gacha pull advertised at "5% for a featured character" must actually be 5%, displayed where the player can see it before committing money. China's rules go further and expect disclosure precise enough that a player can reason about how many pulls a result is likely to take.

The narrow requirement has a wide consequence. When the rate is hidden, you can design it purely for revenue and let the player infer fairness from how the game feels. When the rate is visible, the player evaluates it directly. A 0.6% headline rate that felt acceptable as a vague "rare" now reads as one in a hundred and sixty-six pulls, and a player doing that arithmetic at the purchase screen reacts to the number, not the vibe. Disclosure turns rate design from a private revenue lever into a public trust signal.

The studios adapting well are not just bolting a rates table onto an existing system. They are rethinking the rates because they now have to show them. A number you would be uncomfortable defending out loud is a number you should not be shipping, and disclosure forces that conversation to the front of design instead of leaving it buried.

Why the pity system carries the fairness

The pity system is the mechanic that makes a transparent rate survive contact with a player. A pity counter guarantees the rare reward after a set number of unsuccessful pulls. It is the floor under the randomness — the promise that a run of bad luck has a known end.

This matters more, not less, once the base rate is visible. A player who can see that a featured character is a 0.6% pull also sees the math that says they could spend a great deal and get nothing. The pity counter is what answers that fear. "The base rate is low, but you are guaranteed the character by pull ninety" is a fundamentally different proposition from "the base rate is low, good luck." The first respects the player's investment. The second invites them to do the worst-case arithmetic and close the game.

A well-designed pity system also reduces churn for exactly the players you most want to keep. The free-to-play player who has saved currency for weeks and finally pulls needs to feel the saving paid off. Pity guarantees and duplicate conversions are what make that player feel rewarded rather than cheated when the random draw goes against them. The mechanic that protects your fairness story and the mechanic that protects your retention are the same mechanic.

Designing a rate you can defend out loud

The practical test for a disclosed rate is simple: would you be comfortable explaining it to a player in plain language? If the honest explanation makes you wince, the rate is wrong, and no amount of UI polish fixes it.

Three properties separate a defensible system from one that survives only because nobody reads the table. The base rate has to be high enough that the displayed number does not read as a trap — a rate so low it implies hundreds of pulls signals that the pity counter, not the draw, is the real price, so price the pity honestly. The pity ceiling has to be reachable by a normal engaged player, not just a whale, because a guarantee a regular player will never hit is not a guarantee. And the duplicate handling has to give the unlucky player something — currency back, progress toward a future pull, a conversion path — so that a bad run still moves them forward instead of feeling like a pure loss.

Regional design history is instructive here. Japanese titles historically ran lower base rates and were slower to adopt pity guarantees, leaning on the meta and the appeal of the characters to carry it. Many Chinese and Korean titles moved faster to clear pity systems and detailed drop tables, partly because regulation pushed them there first. As US disclosure catches up, the Chinese and Korean pattern — visible rates plus a strong, reachable pity floor — is the one that transfers, because it was built for a world where the player can see the numbers.

Why the rate table belongs in your live systems

Disclosed rates create an operational obligation that hidden rates never did: the displayed number has to match the actual number, on every storefront, every time, including after you tune the economy. A rate you change in a balance patch but forget to update in the displayed table is now a compliance gap, not just an internal inconsistency.

This is the same problem the loot-box disclosure regimes already forced, and it has the same answer. The drop table the player sees should be generated from the same source of truth as the drop logic, and both should be changeable from your live systems rather than frozen into a build. When you tune a rate, the displayed odds should move with it automatically, and a new market's disclosure format should be a configuration change rather than an app release. A studio that can adjust the rate and its disclosure together, remotely, treats the next regulation as a setting. A studio that hard-codes both into a binary ships an update and an audit risk every time a number moves. See how it works →

The takeaway

Disclosure did not just add a rates table to gacha — it moved rate design from a private revenue decision to a public trust decision. The number is on the screen now, and players evaluate it directly, so the rate you ship has to be one you would defend in plain language. The pity system is what makes a transparent rate survivable: a reachable guarantee that protects both your fairness story and the retention of the saving, engaged players you most want to keep.

Design the base rate high enough that the displayed number is not a trap, make the pity ceiling reachable by a normal player, and give the unlucky player something for a bad run. Then keep the displayed odds and the real odds tied together in your live systems, so tuning the economy never opens a gap between what the player sees and what the game does. The studios that built transparency in from the start are not constrained by the rules. They are the ones players trust enough to keep pulling.

Share this post

See what this looks like for your game.

SDK for Unity and Unreal. A 20-minute call to walk you through it.

Book a demo