How Are Charm Draw Odds Actually Calculated?

Twelve charms, four rarities, one weight per charm — every percentage on Bokki's charm odds table comes straight out of that weight, including one pair of numbers that match for two completely different reasons.

Bokki Editorial

The short answer

Bokki's /charms screen is a small daily gacha: each draw hands you one of twelve collectible charms, and it isn't a coin flip between them. Every charm has a fixed weight behind the scenes — 8 for a common charm, 4 for uncommon, 2 for rare, 1 for legendary — and drawCharm() picks proportionally to that weight, the same function whether or not the reference table is showing. The percentages printed on the table (16.7% for a common charm, down to 2.1% for a legendary one) aren't typed in by hand; they're the exact fraction that weight represents out of the total. Unlike some Bokki calculations that compute a number and deliberately never show it, this one exists specifically to be shown — the whole reference table's job is to make the gacha's math legible.

The rule — weight becomes a fraction, nothing more

There are twelve charms split across four rarities: three common, four uncommon, three rare, two legendary. Multiply each rarity's per-charm weight by how many charms share it, and you get common 24, uncommon 16, rare 6, legendary 2 — 48 in total. A single charm's odds are its own weight divided by that 48-point total, reduced to a fraction with the greatest common divisor: a common charm sits at 8/48, which reduces to 1/6 (16.7%); uncommon is 4/48, reduced to 1/12 (8.3%); rare is 2/48, reduced to 1/24 (4.2%); legendary is 1/48 (2.1%), already in lowest terms. A whole rarity group's odds add up every charm inside it: common as a group is 24/48 = 1/2 (50%), uncommon is 16/48 = 1/3 (33.3%), rare is 6/48 = 1/8 (12.5%), and legendary as a group is 2/48 = 1/24 (4.2%). Those four group fractions add to exactly 1 — the four rarities cover every charm with nothing left over and nothing double-counted.

Rarity weights become fractions, and two of them collideBokki's charm draw assigns each of the twelve charms a weight (common 8, uncommon 4, rare 2, legendary 1) and picks proportionally to it. Grouping by rarity turns those weights straight into fractions of the 48-point total: common 24/48, uncommon 16/48, rare 6/48, legendary 2/48. Reduced, legendary as a whole group (1/24) lands on exactly the same fraction as drawing one single specific rare charm (1/24) — for entirely different reasons: two legendary charms at weight 1 each versus one rare charm at weight 2, both summing to 2 out of 48.weight (sum, out of 48)common (3 charms)24/48uncommon (4 charms)16/48rare (3 charms)6/48legendary (2 charms)2/48the coincidencelegendary, any of 2 charmsone specific rare charmboth = 1/24 (4.2%)

A coincidence the arithmetic produces on its own

Look closely at two of those numbers: the odds of drawing any legendary charm at all — either of the two — come out to 1/24. The odds of drawing one single, specific rare charm — say, the Tiger Guardian, and not either of the other two rare charms — also come out to 1/24. Those two fractions are identical, and they arrive there by completely different arithmetic. Legendary gets there as two charms at weight 1 each, summing to 2 out of 48. The rare charm gets there as one charm at weight 2, out of the same 48. Two legendaries at weight one apiece, or one rare at weight two — both paths land on 2/48, and reducing that fraction erases the difference between them. It's not a rule anyone wrote into the game; it's what happens when 1×2 and 2×1 are the same multiplication written two ways.

The odds table also answers a question it doesn't print directly: how many draws does it take, on average, to own all twelve? Because a draw can repeat a charm you already have, this is the weighted "coupon collector" problem, and Bokki's engine solves it exactly with inclusion–exclusion over all 4,095 non-empty subsets of the twelve charms, rather than estimating it — the same value comes out every time, with no simulation involved. That exact value is 82.9 draws, which rounds to the 83 the reference table shows. Compare that to what you'd guess if you assumed, wrongly, that all twelve charms were equally likely: the classic coupon-collector formula for twelve equally likely items is twelve times the twelfth harmonic number, about 37.2 draws. The real, weighted answer is more than twice that naive guess — because two of the twelve charms (the legendaries) are individually rare enough to drag the average up far more than an "equal chance for all" assumption would predict.

What this calculation doesn't decide

The odds table describes one draw at a time — it says nothing about whether Bokki's engine tracks which charms you've already collected and adjusts anything because of it (it doesn't; drawCharm() has no memory of your collection, which is exactly why duplicates are possible and the coupon-collector math applies at all). It also doesn't model a pity system, a guaranteed-legendary counter, or any odds that shift over time or with spending — the weights are the same fixed four numbers on every single draw, first or five-hundredth. And the 82.9-draw figure is an average across many hypothetical collectors, not a promise about any one person's actual run — inclusion–exclusion gives an exact expected value, not a guarantee, and any individual collector could finish well before or well after that number by chance.

Closing note — four weights, one total, and an honest average

In short: Bokki's charm odds aren't a marketing number — they're what falls out when four fixed weights (8, 4, 2, 1) are divided by their own sum. Every charm's percentage, every rarity group's percentage, and even the pleasant coincidence that a whole legendary group and one specific rare charm land on the exact same 1/24 are just that division, done honestly and shown in full. And when the table goes one step further to say how long it takes to finish the set, it doesn't guess — it computes the exact expected value from the same weights, and that value (82.9, more than double a naive equal-odds guess) is the honest cost of two charms being rarer than the rest.

← Get my reading

Read next

Get a real Saju reading →
Draw a lucky charm →
How is a geomancy chart actually calculated?
What is Saju? — the four pillars behind Bokki's other readings

Questions people actually ask

Are all twelve charms equally likely to be drawn?

No. Each charm has a fixed weight by rarity (common 8, uncommon 4, rare 2, legendary 1), and the draw picks proportionally to that weight — a common charm is exactly 8 times as likely as a legendary one.

Is it really true that a legendary charm and a specific rare charm have the same odds?

Yes, but only when you compare 'any legendary charm' (both of them combined) to 'one particular rare charm.' Both work out to 1/24 — for different reasons: two legendary charms at weight 1 each, versus one rare charm at weight 2.

How is the '83 draws to collect them all' number calculated?

Bokki computes the exact expected value using inclusion–exclusion over every possible subset of the twelve charms, not a simulation or a rough guess. The precise result is 82.9, which rounds to 83.

Does the game remember which charms I already have and adjust the odds?

No. Every draw uses the same fixed weights regardless of your collection — there's no pity system or guaranteed-legendary counter, which is also why duplicates are possible.

Why does the naive guess of about 37 draws undercount the real average?

That guess assumes all twelve charms are equally likely, which they aren't. Two charms (the legendaries) are individually much rarer than the rest, and that rarity pulls the true weighted average up to more than double the naive figure.