Success-counting dice pools: mean, variance, and standard deviation

In this series, we’ll analyze success-counting dice pools. This is where the player rolls a pool of dice and counts the number that meet pass a specified threshold, with the size of the dice pool varying. Each die that does so is called a success in the well-known World of Darkness games. This nomenclature can unfortunately be confusing, but I’m not going to fight precedent here.

More than one success per die

Some variants on success-counting allow outcomes other than zero or one success per die. Here are some examples:

  • Exalted 2e where a 10 counts as 2 successes.
  • Classic World of Darkness where a 1 counts as a negative success.
  • New World of Darkness where a 10 explodes, allowing the player to roll an additional die.
  • D6 System where entire standard d6s are added together, thus effectively generating 1 to 6 “successes” per die.

As different as these may seem, they can all be analyzed using similar techniques. Of course, this doesn’t mean they play out the same at the table. In particular, counting is considerably easier per-die than adding standard dice.

The central limit theorem

The central limit theorem says that, as long as the dice in the pool have finite variance, the shape of the curve will converge to a normal distribution as the pool gets bigger. This is also known as a Gaussian distribution or informally as a bell curve. The choice of dice will affect how quickly this happens as we add dice—for example, looking for 6s on d6s will converge more slowly than looking for 4+s—but it will happen eventually. A Gaussian distribution is completely defined by its mean and variance (or standard deviation), so as the pool gets bigger, these become increasingly good descriptions of the curve.

If you’re planning to use dice pools that are large enough to achieve a Gaussian shape, you might as well choose something easy to use. Choosing a simple fraction for the mean such as 1/2 or 1/3 will make it easy for players to tell how many dice they should expect to need to have about a 50% chance of hitting a target total number of successes.

In a follow-up article, we’ll see how this convergence process looks for several types of dice.

Mean and variance “stack” additively

Conveniently, both the mean and variance of the sum of a set of dice “stack” additively: to find the mean and variance of the pool’s total, just sum up the means and variances of the individual dice. When all the dice are the same, as we are assuming here, it’s even easier: just multiply the mean and variance of a single die by the number of dice. Symbolically, if you have A dice, where each of which has individual mean \mu_1 and variance \sigma_1^2, then the mean and variance of their sum are

\mu_A = A \mu_1

\sigma_A^2 = A \sigma_1^2

\sigma_A = \sqrt{A} \sigma_1

The standard deviation is equal to the square root of the variance. Therefore, it grows slower than proportionally with the number of dice. If you quadruple the number of dice, the mean and variance also quadruple, but the standard deviation only doubles.

Exploding dice

This even applies to exploding dice. However, it’s trickier to compute the mean and variance of an exploding die. The easy way is to use AnyDice or this table I’ve computed. See the appendix if you want to actually go through the math.

Pros and cons

Pros:

  • Exploding dice means there’s always a chance to succeed. This is particularly impactful for small dice pools.
  • Exploding can be fun!

Cons:

  • Exploding is an extra rule to keep track of.
  • Exploding takes time to roll. This is especially true for dice pools, where large pools can easily result in multiple stages of explosions.

Exalted 2e uses an intermediate solution of counting the top face as two successes. This only increases the maximum outcome by a finite amount, but doesn’t require any additional rolls.

Exploding success-counting dice on AnyDice

By default, AnyDice explodes all highest faces of a die. However, for success-counting dice, not all of the succeeding faces may explode. A solution is to separate the result of the die into the number of successes contributed by non-exploding rolls of the die and the number of successes contributed by exploding rolls of the die.

For example, consider the default New World of Darkness die: a d10, counting 8+ as a success and exploding 10s. This can be expressed in AnyDice as:

NWOD: (d9>=8) + [explode d10>=10]

The first part is the non-exploding part: the first nine faces don’t explode, and 8+ on those counts as a success. Exactly one of these faces will be rolled per die. The second part is the exploding part: each 10 contributes 1 success directly and explodes.

Don’t exploding dice break the central limit theorem?

At first glance, it may look like exploding dice break the central limit theorem. The tail of a single exploding die falls off geometrically, so certainly the sum of multiple exploding dice cannot fall off faster than geometrically. But the tail of a Gaussian distribution falls off faster than geometrically, so how can the sum of exploding dice converge to a Gaussian distribution?

The answer is that the central limit theorem is defined in terms of the normalized Gaussian distribution. As we add dice to the pool, the standard deviation increases, so the half-life of the geometric distribution measured in standard deviations shrinks towards zero.

Exchanging a standard die for several success-counting dice

Since both variance and mean are additive, as the size of the dice pool increases, the ratio between them remains constant. This introduces the possibility of exchanging a standard die for several success-counting dice with the same or similar variance-to-mean ratio. As per the central limit theorem, as long as we are still rolling enough dice, this exchange will not noticeably affect the shape of the curve, while allowing us to roll fewer dice.

Another way of looking at this is as a modification of the concept used by West End Game’s D6 System. (See also OpenD6.) In that system, a standard d6 (i.e. 1-6 counts as 1-6 “successes”) is exchanged for every three pips, with the remainder of 0, 1 or 2 pips becoming a flat number of “successes”. This exchange doesn’t quite preserve the mean (the mean of a d6 is 3.5 rather than the 3 it replaces) and the d6 adds variance while the flat modifier has no variance whatsoever. However, the former helps compensate for the latter: the higher mean of the d6 helps ensure that the negative side of its extra variance doesn’t result in worse probabilities the flat +2 it was upgraded from.

Here we are using a similar concept, but replacing the flat modifier with a number of success-counting dice.

In fact, there are some pairings of standard dice and multiple success-counting dice where the two match exactly in both mean and variance. Here are some examples:

Standard dieSuccess-counting poolMean per pool die
d4 successes5d6, counting each 4+ as a success
(Burning Wheel)
1/2
d5 successes9d6, counting each 5+ as a success
(Shadowrun 4e)
1/3
d6 successes7d12, counting each 8+ as a success and 12 as two successes1/2
d8 successes9d6, counting each 5 as a success and 6 as two successes1/2

So for example, each 5 Burning Wheel (default) dice could be exchanged for d4 successes, and the progression would go like this:

  1. 1 die pool
  2. 2 die pool
  3. 3 die pool
  4. 4 die pool
  5. 1d4 successes
  6. 1d4 successes + 1 die pool
  7. 1d4 successes + 2 die pool
  8. 1d4 successes + 3 die pool
  9. 1d4 successes + 4 die pool
  10. 2d4 successes
  11. 2d4 successes + 1 die pool…

Here this is on AnyDice.

There are more possibilities if we relax our criteria, picking a standard die with a slightly higher mean and similar variance-to-mean ratio to the dice pool it exchanges for. Like in the D6 System, the higher mean will help ensure that the standard die is a upgrade from the previous step across most of the range of possible outcomes.

Here are some examples:

Standard die Success-counting poolMean per pool die
d6 successes5d6, counting each 4+ as a success and 6 as two successes2/3
d6 successes5d6, counting each 4+ as a success and 6 explodes3/5
d6 successes10d10, counting each 8+ as a success and 10 explodes
(New World of Darkness)
1/3
d8 successes10d10, counting each 8+ as a success and 10 as two successes2/5

Pros and cons

Pros of this technique:

  • Compared to a normal success-counting pool, this reduces the number of die rolls when the pool size gets large.
  • Compared to a D6 System-like approach, this expresses everything in terms of physical dice.

Cons of this technique:

  • Increases complexity.
  • Compared to a normal success-counting pool, this is no longer simply more dice = better. It’s also not more faces = better.
  • Prevents or at least complicates mechanics that work directly on the success-counting dice, e.g. changing the target number or explosion chance of each die.
  • Slows convergence to a Gaussian shape. For example, 1d5 successes might not be considered quite satisfactory (even apart from not being a standard die size) to replace 9 Shadowrun 4e dice, being unable to roll 6 or more successes, though the exchange looks better as the number of dice increases. If desired, this could be ameliorated by requiring that at least two standard dice be used if any are used, or expressing the exchange as a character option rather than being mandatory.
    • An aside: I keep hearing that the most important thing about a bell curve compared to a uniform distribution is that it clusters results towards the center. This is only true if one insists on matching the range (which for a perfect Gaussian distribution would be infinite!) rather than something like the CCDF (“At Least” on AnyDice) around the median, or the standard distribution. Then the most important thing about the bell curve is that it has longer tails, which can be seen in the AnyDice linked above.

To be honest, I think this is likely a hard sell in most cases, but maybe someone who wants to run a success-counting dice pool with a high stat ceiling will find it useful.

Table of values

Here’s a table of mean, variance, standard deviation, variance-mean ratio, and standard deviation-mean ratio for all success-counting dice that fit the following criteria:

  • Based on a d3, d4, d6, d8, d10, or d12.
  • At least one face with 0 successes.
  • At least one face with 1 success.
  • Up to one of the following:
    • Bottom face counts as -1 success.
    • Top face counts as 2 successes.
    • Top face explodes.

Standard dice are also included for comparison.

A second sheet contains dice that explode on more than 1 face.

You can use Data > Filter views to sort and filter.

Next time, we’ll once again transform this type of system into a fixed-die system with similar probabilities, and see what this tells us about the granularity and convergence to a Gaussian as the size of the dice pool increases.


Appendix: computing the mean and variance of exploding dice

The strategy of splitting the die into a non-exploding and exploding part can be also used to compute the mean and variance: simply compute the mean and variance of the two parts separately, then add them together.

In the cases we’re considering here, the non-exploding faces either succeed or not, forming a Bernoulli distribution. If p_\text{n} is the chance of the die rolling a success when it doesn’t explode, then the mean and variance of the non-exploding part is:

\mu_{1\text{n}} = p_\text{n}

\sigma_{1\text{n}}^2 = p_\text{n} \cdot \left(1 - p_\text{n} \right)

How about the exploding faces? This is described by a geometric distribution. Let p_\text{x} be the chance of the die not exploding and assume that each exploding face contributes one success directly. Then the mean and variance of the exploding part is:

\mu_{1\text{x}} = \frac{1 -   p_\text{x} }{ p_\text{x} }

\sigma_{1\text{x}}^2 = \frac{1 -   p_\text{x} }{ p_\text{x} ^2}

Example: New World of Darkness

This is a d10, counting 8+ as a success and exploding 10s.

The non-exploding part are the 1-9 faces. 8 and 9 count as one success. Therefore the mean and variance of this part is a Bernoulli distribution with a \frac{2}{9} chance of success.

\mu_{1\text{n}} = \frac{2}{9}

\sigma_{1\text{n}}^2 = \frac{2}{9} \cdot \frac{7}{9} = \frac{14}{81}

Now for the exploding part. The chance of not exploding is p_\text{n} = \frac{9}{10}. Therefore:

\mu_{1\text{x}} = \frac{1/10}{9/10} = \frac{1}{9}

\sigma_{1\text{x}}^2 = \frac{1/10}{\left(9/10\right)^2} = \frac{10}{81}

Add these together, and we have the total mean and variance for the die as \mu_1 = \frac{1}{3} and \sigma_1^2 = \frac{8}{27} respectively. The standard deviation is the square root of the variance, or \sigma_1 \approx 0.544.

Leave a comment