I am trying to make a spreadsheet to track encounters, and I was wondering if there is any generalised formula I can use to calculate the average XP for any given Challenge Rating, or is it like character advancement in that there's no consistent formula for such? An approximation is also acceptible.
3 Answers
As pointed out by @Thomas Markov, the Table is odd. I expect that some rounding occurred to get "nice-looking" numbers, plus 2 bumps (CR 17 and CR 20), and an acceleration of the growth rate post CR 20.
I expected a quadratic curve, so went looking for an arithmetic progression, and it turns out that the increase from CR N-1 to CR N is close to (N + N / 7) * 100
, using integer division on N.
With an offset, we get the closed formula for CR N: .
CR | Actual XP | Predicted XP | Error |
---|---|---|---|
1 | 200 | 200 | 0 |
2 | 450 | 400 | -50 |
3 | 700 | 700 | 0 |
4 | 1,100 | 1,100 | 0 |
5 | 1,800 | 1,600 | -200 |
6 | 2,300 | 2,200 | -100 |
7 | 2,900 | 3,000 | +100 |
8 | 3,900 | 3,900 | 0 |
9 | 5,000 | 4,900 | -100 |
10 | 5,900 | 6,000 | +100 |
11 | 7,200 | 7,200 | 0 |
12 | 8,400 | 8,500 | +100 |
13 | 10,000 | 9,900 | -100 |
14 | 11,500 | 11,500 | 0 |
15 | 13,000 | 13,200 | +200 |
16 | 15,000 | 15,000 | 0 |
From there on, however, the formula gets much more inaccurate:
- There's a weird +1,000 bonus for CR 17.
- There's another +1,000 bonus for CR 20.
- The rate of growth increase from CR 21 onward.
I suppose further tweaks to the formula could fold in the bumps and increase in rate of growth, but at this point I expect it's just easier to use a look-up table.
-
1\$\begingroup\$ Have you tried looking to see if there is some external factor involved? Such as how many combats are expected between levels? Most levels need a different amount of XP and it sounds to me like that might have something to do with it. \$\endgroup\$ Commented Oct 24, 2021 at 12:41
-
\$\begingroup\$ Thanks, this answers the question exactly. \$\endgroup\$ Commented Oct 24, 2021 at 14:17
-
1\$\begingroup\$ @SeriousBri: That's an interesting observation, the experience thresholds also show some kind of tailoring, unfortunately, so it would take some experimentation to derive a formula back: if you divide the increase in level by the square of the new level, you get as low as 65 (from 1 to 2) and as high as 208 (from 5 to 6). It's messy :( \$\endgroup\$ Commented Oct 24, 2021 at 17:28
-
\$\begingroup\$ If you look at the DMG monster building math, at level 20+ the HP/level (etc) scales way up. I suspect mapping HP/Damage to a different value, then mapping that value to XP and to Level, would work better. \$\endgroup\$– YakkCommented Oct 25, 2021 at 18:08
-
\$\begingroup\$ Also, the raw differences have a bunch more pattern than your version does... \$\endgroup\$– YakkCommented Oct 25, 2021 at 18:12
Consult the "Experience Points by Challenge Rating" table in the Monster Manual and set up a VLOOKUP.
Page 9 of the Monster Manual has a table that tells you the exact XP of a monster of a given challenge rating. This table can also be found here for free in the Basic Rules
To integrate this into a spreadsheet, you can copy this reference table into your sheet as two columns, and use a VLOOKUP to pull the XP values for your chosen monsters. So you would first have your CR/XP reference table like this:
CR | XP |
---|---|
0 | 0 |
1/8 | 25 |
1/4 | 50 |
1/2 | 100 |
1 | 200 |
2 | 450 |
3 | 700 |
Then, you could reference this table using VLOOKUP. By inputting the CR on the left, we can have the XP calculated automatically by referencing the above table:
A | B | |
---|---|---|
1 | CR | XP |
2 | 3 | 700 |
Assuming the reference table is in the cell range D2:E31
, the formula in cell B2 looks like:
=VLOOKUP(A2,$D$2:$E$31,2,FALSE)
A2
in the first argument means "check the reference table for the value in A2
", the second argument points to the reference table range, the third argument 2
says "once you have found A2
in the left most column of the table, grab the value in that row from column 2
", and the fourth argument tells the function to find an exact match for A2
in the reference table.
Is there a closed form expression for the table? Probably not, but I don't think we need one to do what we need to do with spreadsheets.
-
\$\begingroup\$ Oh, I'm using org-mode's spreadsheet functionality, by the way. \$\endgroup\$ Commented Oct 24, 2021 at 1:11
-
1\$\begingroup\$ I think the literal answer to the question is no, there isn't an equation (other than a best fit line approximation). But, just like the character advancement table, this is easily handled with a lookup table as discussed in this answer. \$\endgroup\$ Commented Oct 24, 2021 at 2:24
-
2\$\begingroup\$ Technically this is not answering the question that was asked. The question is whether there exists a generalized formula, not a way to make a lookup table. Is there something like XP = n+(CR*x) where you specify what n and x are? The answer may be, No, there's no such formula. But that's the question being asked, technically at least. \$\endgroup\$ Commented Oct 24, 2021 at 2:31
-
3\$\begingroup\$ You can certainly derive an explicit formula using Langrange interpolation, but the result's not going to be pretty. \$\endgroup\$– jwodderCommented Oct 24, 2021 at 2:51
-
2\$\begingroup\$ @ValleyLad Maybe it doesn’t directly answer the explicit question as written in the post, but it aims to solve the problem presented in the post, rather than suggest the solution asked for. \$\endgroup\$ Commented Oct 24, 2021 at 12:55
We know more than just level and XP. We know the tier structure of 5e, and we know the DMG monster building rules.
CR | Actual XP | Change in XP | Tier | Notes |
---|---|---|---|---|
1 | 200 | 200 | 1 | |
2 | 450 | 250 | 1 | |
3 | 700 | 250 | 1 | |
4 | 1,100 | 400 | 1 | |
5 | 1,800 | 700 | 2 | T2 is a large PC power bump (2nd attack, 3rd level spells) |
6 | 2,300 | 500 | 2 | |
7 | 2,900 | 600 | 2 | |
8 | 3,900 | 1000 | 2 | |
9 | 5,000 | 1100 | 2 | |
10 | 5,900 | 900 | 2 | |
11 | 7,200 | 1300 | 3 | 1500/level with smoothing |
12 | 8,400 | 1200 | 3 | |
13 | 10,000 | 1600 | 3 | |
14 | 11,500 | 1500 | 3 | |
15 | 13,000 | 1500 | 3 | |
16 | 15,000 | 1500 | 3 | |
17 | 18,000 | 3000 | 4 | 2500/level with smoothing |
18 | 20,000 | 2000 | 4 | |
19 | 22,000 | 2000 | 4 | |
20 | 25,000 | 3000 | 4 | |
21 | 33,000 | 8000 | 5 | 8000/level |
22 | 41,000 | 8000 | 5 | |
23 | 50,000 | 9000 | 5 | |
24 | 62,000 | 12000 | 5 | |
25 | 75,000 | 13000 | 6 | 15000/level |
26 | 90,000 | 15000 | 6 | |
27 | 105,000 | 15000 | 6 | |
28 | 120,000 | 15000 | 6 | |
29 | 135,000 | 15000 | 6 | |
30 | 155,000 | 20000 | 6 | extra little kick |
We can break it down into 4-6 level ranges: L 1-3 is +200 /level ish L 4-7 is +500 /level ish L 8-11 is +1000 /level ish L 12-16 is +1500 /level ish L 17-20 is +2500 /level ish L 21-25 is +8000 /level ish L 26-30 is +15000/level ish
Initially the increase in XP/CR doubles. In T3/T4 each window only gets about +50% XP/CR. Then after CR20, things change. If you look at monster building guidelines, CR 20+ creatures have a larger gap in HP and Damage per point of CR than pre-CR 20 creatures do; they appear to have just compressed things. That would account for a change in the curve's shape (on top of what would be "natural").
Going to the DMG's CR calculator, each CR adds 15 HP, and 6 damage per round, plus a small amount of AC/ATK/DC every few CR.
CR under 1 and 20+ aren't quite this neat.
In the CR 1 to 19 range, the CR's HP column caps out at 10+(CR+4)*15 (and the least value is 11+(CR+3)*15), and the damage at 2+(CR+1)6 (and the least value is 3+CR6).
At CR 20+, HP goes up by 45 per CR and damage by 16, exactly 3x what you gained from 1 to 19.
If we map CR 1 to 19 to 1.5 to 19.5 in terms of HP/damage, then CR 20 is 21.5, CR 21 is 24.5 all the way up to CR 30 is 51.5.
That explains the anomaly at level 20 and above.
In short, I think that monsters and PCs where balanced with a presumed level of HP and damage output. CR X creatures where designed to be a certain amount difficult for Level X PCs.
We can then look at how tough CR X+/-Y creatures are compared to CR X creatures. How many more/fewer resources will they need to be defeated?
Standard encounters are worth 1 unit of XP. Easy are 1/2 of that, Hard 1.5x that, and Deadly 2x that. Playtesting (or models) tells you where these thresholds lie.
A CR 2 creature is 2.25x CR 1 XP; it is beyond deadly. It being 400 instead would put it at deadly, and state it was an appropriate encounter for 4 level 1 PCs. Instead, it is a hard to deadly encounter for 5 level 1 PCs.
That kind of tweaking (especially at low levels) wouldn't be expressed in a simple formula.
I mean, there is no reason why level 10 is 5900 instead of 6000, unless they where trying to state that it was a deadly or hard encounter for some other level of creature, and that 100 points mattered; 1.6% more or less XP is not usually worth talking about. Or maybe it was just a joke, to make the table less smooth.
Take this section:
CR | Actual XP | Change in XP | Tier | Tweaked | Tweaked Change in XP |
---|---|---|---|---|---|
5 | 1,800 | 700 | 2 | 1800 | 700 |
6 | 2,300 | 500 | 2 | 2400 | 600 |
7 | 2,900 | 600 | 2 | 3000 | 600 |
8 | 3,900 | 1000 | 2 | 4000 | 1000 |
9 | 5,000 | 1100 | 2 | 5000 | 1000 |
10 | 5,900 | 900 | 2 | 6000 | 1000 |
11 | 7,200 | 1300 | 3 | 7200 | 1200 |
12 | 8,400 | 1200 | 3 | 8400 | 1200 |
13 | 10,000 | 1600 | 3 | 10000 | 1600 |
it would be hard to notice, in play, the difference in the original and the tweaked table, except in corner cases of "does this count as a hard encounter for X level Y PCs".
The same "simplified" can be done for L 1 to 5:
CR | Actual XP | Change in XP | Tier | Tweaked | Tweaked Delta |
---|---|---|---|---|---|
1 | 200 | 200 | 1 | 200 | 200 |
2 | 450 | 250 | 1 | 400 | 200 |
3 | 700 | 250 | 1 | 700 | 300 |
4 | 1,100 | 400 | 1 | 1200 | 500 |
5 | 1,800 | 700 | 2 | 1800 | 600 |
a slightly smoother curve that is at most 100 points off the actual XP table.
Then you playtest, and find that "no, 4 L 1 PCs vs a CR 2 is a bit too hard", so you boost CR 2 XP to 250. And similar tests drop CR 4 down to 1100.