A mystery box asks a customer to pay before they know what they'll get. The fair thing to do, and increasingly what regulators and app stores expect, is to tell them exactly what they could get and how likely each outcome is. This article covers how box odds work, how to set them so the box neither cheats customers nor loses you money, and how to publish them clearly. Examples come from PrizeX, our self-hosted platform, which shows every box's odds on its page by default.
Paid random-prize mechanics are regulated differently around the world. Some regulators treat them as gambling or as loot boxes. Others focus on consumer protection and children. Publishing odds is good practice, but it doesn't by itself make a box legal where you operate. Check with a local lawyer, and don't sell paid boxes to under-18s.
How mystery box odds work
Every prize in a box has a weight. A prize's chance of coming up is its weight divided by the total of all the weights in the box. In PrizeX, weights are relative: a prize with weight 20 comes up twice as often as one with weight 10. Each opening gives exactly one prize, picked at random by those weights using PHP's cryptographically secure random_int().
An example box with four prizes:
| Prize | Weight | Chance | Your cost |
|---|---|---|---|
| Sticker pack | 60 | 60% | $2 |
| T-shirt | 30 | 30% | $8 |
| Hoodie | 9 | 9% | $25 |
| Headphones | 1 | 1% | $150 |
The weights add up to 100 here only to keep the arithmetic readable. Any numbers work. All figures in this article are illustrations, not suggestions for your box.
Expected value: the number that decides everything
The expected value, or average prize per opening, is each prize's chance times its value, added up. For the box above, using your cost:
0.60×$2 + 0.30×$8 + 0.09×$25 + 0.01×$150 = $7.35
So each opening costs you $7.35 in prizes on average, before delivery and payment processing. Price the box below that and you lose money on every opening, however many you sell. PrizeX's prize form works this out as you type: it shows the average prize per opening, and warns you if the box would lose money at its price.
There's a second expected value you should calculate: what the customer receives, valued at retail rather than your cost. If the same prizes retail for $4, $20, $55 and $250, the customer's average prize is about $15.85. That's the honest comparison against the box price. If you price the box at $20, buyers know they're paying a premium for the chance at the headphones. If your marketing implies that buyers come out ahead on average, and the numbers say otherwise, that's misleading.
How to set odds without cheating anyone
- Start from the prizes, not the price. Decide what's in the box, set weights, check the average prize against your cost, and only then pick the price.
- Make sure the small prizes are worth having. If the common prize is worth nothing, most buyers lose every time, and they'll know it.
- Keep the rare prize real. If you advertise headphones, they must be in the draw with a published chance. Never show a prize that can't actually be won.
- Don't change odds after people have bought. Customers who opened yesterday did so on yesterday's odds. PrizeX enforces this: once a box has been opened, each prize's type, chance and value are locked and no new prize can be added. A prize that runs out can be withdrawn, and the others then share its odds, which the page shows straight away.
- Limit openings per person. PrizeX lets you set how many times a day one person may open a box. That's a simple brake on chasing losses.
How to publish the odds
Good disclosure is on the box page, before purchase, in plain numbers. Not buried in terms, and not as vague rarity words like "rare" or "legendary" with no percentage attached.
In PrizeX, every box page has an odds board headed "Every prize and its odds", under the line "Each opening gives exactly one prize. These are the real odds the box draws with." It lists every prize with its own percentage, groups them by rarity with each group's total, and shows the split as a bar. The percentages come from the same weights the draw uses, so the page can't drift from the real odds. All of the storefront themes show this board.
Beyond the page itself:
- Keep a record of openings. Every opening in PrizeX is listed under Mystery Boxes › Spins, so you can answer "did I really win that?" with data.
- State the odds in your terms too, along with what happens if a prize runs out.
- Watch app store rules if you ship a mobile app. Apple's App Store Review Guidelines require apps offering loot boxes or similar mechanisms for purchase to disclose the odds of receiving each type of item before purchase.
What regulators have said
Rules differ by country and change often, so treat this as a starting point, not legal advice:
- In the UK, the government's 2022 response on loot boxes said all players should have access to transparent information. It also said children should not be able to buy loot boxes without a parent's approval.
- Gambling regulators in some countries have looked at whether paid random prizes, especially those that can be cashed out, count as gambling. Whether your box can be exchanged for money matters a great deal.
Check with a local lawyer before you sell paid boxes, especially if prizes include cash, coins that can be withdrawn, or items with a resale market.
Common questions
How are mystery box odds calculated?
Each prize has a weight, and its chance is its weight divided by the total of all weights in the box. In PrizeX, each opening gives one prize picked at random by those weights.
Do I have to publish mystery box odds?
It depends on where you sell and how you sell (for example, Apple's App Store requires odds disclosure for loot-box-style purchases in apps). Even where it isn't required, publishing them is the fair thing to do. PrizeX shows them on every box page by default.
How do I price a mystery box so it doesn't lose money?
Work out the average prize per opening at your cost (each prize's chance times its cost, added up), add delivery and payment processing, and price above that. PrizeX's prize form calculates the average and warns you if the box would lose money.
Can I change the odds after a box goes live?
Not in PrizeX once anyone has opened it. Chances and values are locked so earlier buyers aren't misled. You can withdraw a prize that has run out, and the remaining prizes then share its odds.