In Call of Cthulhu 7th edition, rolls are made using percentile dice (one standard d10 and one 10s d10). A roll is considered successful if it is less than or equal to a given number for a stat or skill.

There are two methods for increasing the difficulty of a roll.

First, we can reduce the threshold by a factor of 2 or 5. A "Hard" roll must be at or below half the value of a stat or skill, and an "Extreme" roll must be at or below below a fifth of that same value. All numbers round down.

The second method is to add a number of penalty dice. Penalty dice are additional 10s d10s, and a roll uses the highest possible percentile value from all dice rolled. (a 00 and a 0 together are 100, which is the worst possible roll)

I am curious what the dice math looks like for the various combinations of these tools. Does one method make rolls harder than the other? What about combinations of the two?

How do Hard or Extreme rolls vs increasing penalty dice (or a combination thereof) affect the odds of success or failure?

  • \$\begingroup\$ Do the penalty dice get rolled in pairs (so that each pair is basically just a d100 roll), and then the highest pair is taken, or do you pair the highest standard d10 with the highest 10s d10? \$\endgroup\$ May 18, 2021 at 14:15
  • 1
    \$\begingroup\$ @IlmariKaronen only one standard d10 is rolled and you select the highest 10s d10 to go with it \$\endgroup\$ May 18, 2021 at 14:16

2 Answers 2


Let's try modelling this mechanic with AnyDice.

To start off, let me note that the CoC 7e bonus / penalty dice mechanic is a bit awkward to model directly in AnyDice, because the choice of "best" / "worst" tens die depends on the value of the ones die: if you roll a 0 on the ones die, the best possible roll on the tens die is 10, whereas otherwise it's 00.

However, it turns out that there is a mathematically equivalent variant mechanic that is much easier to work with in AnyDice: instead of numbering the ones die from 0 to 9 and treating 0 + 00 = 100 as a special case, just number the ones die from 1 to 10 and add it directly to the lowest / highest tens die.

(Formal proof of equivalence left as an exercise. As a quick proof sketch, note that there are two cases depending on what you roll on the ones die: if you roll anything but 0/10, the result will be the same using either mechanic anyway; if you do roll a 0/10 on the ones die, you can relabel the sides of the tens dice before rolling them — basically mapping 00 to 90 and subtracting 10 from all other sides — so that the result using the variant mechanic with the relabeled dice will be the same as using the official mechanic with the unrelabeled dice. Since all sides of the dice are supposed to be equally likely and interchangeable, this relabeling will not change the probabilities of the outcomes.)

Using this simplified but equivalent version of the dice rolling mechanic, we can model a CoC 7e roll with N penalty dice in AnyDice simply with:

TENS: 10 * d{0..9}
output d10 + [highest 1 of (N+1)dTENS]

(Conversely, replacing highest with lowest gives a roll with N bonus dice instead.)

To find out the probability of succeeding on such a roll with a given skill or stat, just plot the results of the code above (for the appropriate value of N) in AnyDice using "At Most" mode and look up the probability corresponding to your skill/stat in the plot.

What about hard and extreme rolls, then? You could simply use the same code as for normal rolls, and just look up the probability corresponding to your skill or stat divided by 2 or 5 instead. (You did write those down on your character sheet, right?) But it would be nice to have a direct graphical comparison.

One way to do that is to multiply the result of the roll by 2 or 5 instead of dividing the target value. (Again, showing that this is mathematically equivalent is left as an exercise.) For plotting convenience, it's also a good idea to clamp the result to at most 100 so that AnyDice's graph mode won't needlessly widen the range of the graph.

(Also, since the range of possible rolls starts from 1, AnyDice's graph plotter gets a bit silly and decides to place tick marks at 1, 11, 21, 31, etc. instead of at 0, 10, 20, 30, etc. One way to fix that is to add a dummy output 0 statement at the end of the code.)

Putting all that together, here's the final version of the code (for some more or less arbitrary value of "final", anyway):

TENS: 10 * d{0..9}

output d10 + dTENS named "normal roll"

loop N over {1..5} {
  output d10 + [highest 1 of (N+1)dTENS] named "normal, [N] penalty"
  \ output d10 + [lowest 1 of (N+1)dTENS] named "normal, [N] bonus" \

output [lowest of 100 and 2 * (d10 + dTENS)] named "hard roll"
output [lowest of 100 and 5 * (d10 + dTENS)] named "extreme roll"

output 0 named "" \ dummy output to fix graph tick positions \

This code calculates the probability distributions of results for normal rolls with 0 to 5 penalty dice and for hard and extreme rolls with no penalties. (There's also a line for rolls with 1 to 5 bonus dice as well, but I've commented it out with backslashes to reduce clutter. You can uncomment it if you want.)

The output of this program is probably best viewed in Graph + At Most mode (which the link above should take you directly to), and should look something like this:

AnyDice graph screenshot

Looking at where the graphs intersect, you can see that penalty dice are really punishing for low skill / stat values. If your skill / stat is below 50, a normal roll with one penalty die is harder than a hard roll, and if it's below 20 it's even harder than an extreme roll. With two penalty dice the crossover points are at about 70 and 44 respectively, and with three penalty dice they're around 79 and 59 or so.

(If you wanted to know the exact thresholds, you could switch from Graph mode to Export mode and compare the exact numerical probability values. But for most practical purposes just eyeballing it should be good enough, as small differences in probability of a fraction of a percent won't really be noticeable in play anyway.)


If we assume that the target skill value is P% (be that 95% or 5%), the corresponding probability of success is p (basically \$P/100\$). From here on, I will discuss probabilities (with \$0 \le p \le 1\$), rather than percentages.

That means that the static modifier makes the probability \$p/2\$ or \$p/5\$, scaling nicely all the way through from low to high skill values.

Meanwhile, the extra penalty dice has a larger effect on low skills than it does on high skills. The probability of success with N penalty dice is \$p^N\$, for two penalty dice, this takes a 90% success chance to 81%, a 50% chance to 25%, and a 10% chance to 1%. The effect is more pronounced the more penalty dice you add.

Combining the two would probably be extremely punishing, especially with the "extreme" modifier. The Hard takes the 1%-100% to a 0%-50%, meaning that a single penalty die gives (at most) a 25% chance of success (if starting from 100% chance of success), and for the Extreme difficulty, all the way down to 4% (for starting at 100%).

  • \$\begingroup\$ The success probabilities with \$N\$ penalty dice aren't exactly \$p^N\$, since the CoC 7e penalty mechanic isn't "roll \$N{+}1\$ d100 and take highest" but (effectively) "roll \$N{+}1\$ d10, take highest, subtract one, multiply by 10 and add d10". But the two distributions are quite close to each other for practical values of \$N\$, so either one is still a pretty good approximation for the other. \$\endgroup\$ May 18, 2021 at 15:51
  • \$\begingroup\$ Yeah, I was toying with the idea of making the estimate more precise, but then decided that the difference is probably in the "rounding error" category. \$\endgroup\$
    – Vatine
    May 19, 2021 at 8:38

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .