Background Theory
Broadly when choosing to optimise damage in a single round there are five variables you need to take account of:
- Average damage per round (I’m assuming that chance to hit has been rolled up into this variable)
- Damage variance
- Damage immunities/vulnerabilities
- Enemy HP
- Have you Crit’d (This fact significantly increases the math required.)
When you optimise DPR, you are optimising only one/two of these five potential variables (Criting can alter the ADPR).
If you are only rolling one dice, your damage variance on that attack will be relatively high.
To reduce the variance of the attack there are three broad strategies:
- Increase the static damage for the attack (as in your firebolt vs dagger example) — Larger static variables weight it towards average damage.
- Reduce the damage die (as in your firebolt vs dagger example) — Smaller dice have a lower variance.
- Increase the number of dice you use in the attack (the more dice you roll, the more likely you are to get the average damage for a given attack) - This is an application of the law of large numbers.
In the situation where there is a damage type resistance/vulnerability then the choice between the two becomes clearer as you will be halving/doubling the result from the damage dice which will decrease/increase your DPR.
To answer whether or not you are more likely to beat a specific enemy depends on the HP, and variability in that enemies HP (determined by their hit dice). The same two considerations apply here.
If you are fighting an enemy with a large amount of hit dice, then by the same application of the law of large numbers you are more likely to be fighting an average specemin of the enemy.
Similarly if you are fighting an enemy with a large fixed HP component then you are similarly more likely fighting an average enemy.
Application to your example
The Firebolt has a range of damage values when it hits of 1-10 (with a 10% chance of each)
The dagger has a different range of damage values when it hits 4-7 (with a 25% chance of each).
A Goblin’s HP is calculated by rolling 2d6 (the 7 HP in the Monster Manual is simply the average value of this distribution). This gives the Goblin Monster a range of Hit Point values between 2 & 12 HP (obviously the extremes of 2 and 12 are pretty unlikely).
Both attacks have a 45% chance of a non-critical hit and a 5% chance of a critical hit.
The rest of this analysis will assume that we have hit (that makes the math slightly earier, and we can convert it into number of rounds by using this information later).
As a result, when we hit that translates to a 90% of hits are a non-crit, and 10% are a crit.
I’m also going to assume, for simplicities sake, that we are doubling the result of the dice when we crit, instead of doubling the number of dice we roll.
Vanilla Attacks
1 Hit to Kill
Taking your specific example of a Goblin (7 HP). When our attacks hit
- The Firebolt has a 40% chance of killing the Goblin in 1 non-critical hit (7–10)
- The Firebolt also has a 70% chance of killing the Goblin in 1 critical hit (4–10) x 2
- The dagger has a 25% chance of killing the Goblin in 1 non-critical hit (4 + 3)
- The dagger has a 75% chance of killing the Goblin in 1 critical hit ( 2 x (2–4) + 3)
Taking all of this into account, the 1 hit kill percentages are:
- Firebolt: 40% * 90% + 70% * 10% = 43%
- Dagger: 25% * 90% + 75% * 10% = 30%
3 Hits or more to Kill
At the other extreme, the chance of it taking more than two hits to fell the Goblin.
- Dagger: 0% (Even if we roll the minimum non-crit damage two hits will kill it.)
- Firebolt: We have to roll a total of 6 or less between the first two hits. With crits this is a more complicated piece of maths.
Ways we can get this total with Firebolt
2 x Crits:
- 1 x 2 + 1 x 2: ( 10% * 10% * 10% * 10% )
- 1 x 2 + 2 x 2: ( 10% * 10% * 10% * 10% )
- 2 x 2 + 1 x 2: ( 10% * 10% * 10% * 10% )
1 x Crit:
- 1 x 2 + 1: ( 10% * 10% * 10% * 90% )
- 1 x 2 + 2: ( 10% * 10% * 10% * 90% )
- 1 x 2 + 3: ( 10% * 10% * 10% * 90% )
- 1 x 2 + 4: ( 10% * 10% * 10% * 90% )
- 1 + 1 x 2: ( 10% * 90% * 10% * 10% )
- 2 + 1 x 2: ( 10% * 90% * 10% * 10% )
- 3 + 1 x 2: ( 10% * 90% * 10% * 10% )
- 4 + 1 x 2: ( 10% * 90% * 10% * 10% )
- 2 x 2 + 1: ( 10% * 10% * 10% * 90% )
- 2 x 2 + 2: ( 10% * 10% * 10% * 90% )
- 1 + 2 x 2: ( 10% * 90% * 10% * 10% )
- 2 + 2 x 2: ( 10% * 90% * 10% * 10% )
0 x Crits:
- 1 + 1: ( 10% * 90% * 10% * 90% )
- 1 + 2: ( 10% * 90% * 10% * 90% )
- 1 + 3: ( 10% * 90% * 10% * 90% )
- 1 + 4: ( 10% * 90% * 10% * 90% )
- 1 + 5: ( 10% * 90% * 10% * 90% )
- 2 + 1: ( 10% * 90% * 10% * 90% )
- 2 + 2: ( 10% * 90% * 10% * 90% )
- 2 + 3: ( 10% * 90% * 10% * 90% )
- 2 + 4: ( 10% * 90% * 10% * 90% )
- 3 + 1: ( 10% * 90% * 10% * 90% )
- 3 + 2: ( 10% * 90% * 10% * 90% )
- 3 + 3: ( 10% * 90% * 10% * 90% )
- 4 + 1: ( 10% * 90% * 10% * 90% )
- 4 + 2: ( 10% * 90% * 10% * 90% )
- 5 + 1: ( 10% * 90% * 10% * 90% )
All of that is:
- 3 * ( 10% * 10% * 10% * 10% ) + 12 * ( 10% * 10% * 10% * 90% ) + 15 * ( 10% * 90% * 10% * 90% )
Which totals to 13.26%
Final Totals
As a result the probabilities of killing the Goblin with a repeated attack type are:
1 hit to kill:
- Firebolt: 43%
- Dagger: 30%
2 hits or less to kill:
- Firebolt: 86.74%
- Dagger: 100%
3+ hits or more to kill:
- Firebolt: 13.26%
- Dagger: 0%
Mix & Match
This is of course assuming you don’t mix and match attacks.
If we allow mixing and matching your choices change. For example, if you hit with the Firebolt or the Dagger for 6 damage, it doesn’t matter which attack you hit with next.
Similarly if you hit with the firebolt for 3 or more (80% probability for the hit), using the dagger next hit guarantees the kill.
If you hit with the firebolt for 1 on the first hit (10%) then your probabilities are:
- Firebolt: 50% (6 - 10) * 90% + 80% (6 - 20) * 10% = 53%
- Dagger: 50% (6 - 7) * 90% + 75% (7 - 11) * 10% = 52.5%
The Dagger’s smaller variance will probably give it enough to pip the Firebolt (but it’s close).
If you hit with the firebolt for 2 damage on the first hit (10%*90% + 10%*10% = 10%) then your probabilities are:
- Firebolt: 60% (5 - 10) * 90% + 80% (6 - 20) * 10% = 62%
- Dagger: 75% (5 - 7) * 90% + 100% (4 - 11) * 10% = 77.5%
You can see where this is trending…
Consolidated Percentages
1 Hit to Kill
- Firebolt: 43%
- Dagger: 30%
2 Hits or less to Kill
- Firebolt, then Dagger: (80%*90% + 90%*10%) * 100% + 10% * 52.5% + 10% * 77.5% = 94%
- 2 x Firebolt: 86.74%
- 2 x Dagger: 100%
- Dagger then Firebolt (we don't care as doing this would be stupid)
3 Hits or less to Kill
- Firebolt, Dagger, Dagger: 100%
3 Hits or more to Kill
Strategy against a 7 HP Goblin
Hit with Firebolt first, as it gives you a better chance of one-shot killing the Goblin.
With two hits the probabilities of killing the Goblin are:
Firebolt + Dagger = 94%
Dagger + Dagger = 100%
If you hit with the Firebolt on your first hit, and it doesn't kill the Goblin (and the Goblin has 7HP) then you are better off switching your second attack to be the dagger, as you have a higher (and less variable) probability of killing the Goblin with the Dagger on the second hit.
Given that the increase of kill % with 1 hit on a Firebolt (13%) is greater than the decrease (6%) in % we get over two rounds from not doing Dagger, Dagger, Optimal play is to do Firebolt + Dagger.
On average how many rounds does it take for you to hit the Goblin?
We effectively have repeated trials to success of a iid Bernoulli random variables with p=0.5. The expected waiting time until a success (a hit) for this type of process is given by the expected value of a Geometric distribution, with p=0.5.
E[Rounds to Hit] = 1/0.5 = 2 rounds.
Thus the expected rounds to get 2 hits is 4.
Conclusion
This sort of spread will change depending on the actual HP of the Goblin.
- Lower than 7 HP will lean towards you using the Dagger for both attacks (6HP is the point where the one shot probabilities for both Firebolt and Dagger are close enough (53% vs 52.5%) that the consistency of the Dagger leans in its favour).
- Higher than 7HP Firebolt first (and potentially 2nd) Dagger later will be the better combo.
It varies with enemies' hit points, up to turn 8
The actual damage dealt is usually not the thing we are interested in. A often more useful metric is how many (more) things will this let us kill reduce to 0 hit points. A major point here is that dealing 2d8 extra damage to something that would die to an extra 1d4 is wasteful. The problem is that how quickly something will die depends on how many hit points it has, so our result is going depend on that.
So we need to compare how many enemies with a given hit point total and AC we can kill on average over a number of turns using each of two methods: an extra 1d4 on each attack or dealing an extra 2d8 on the first hit. For each of these methods we're ignoring other attacks being made etc., but that would make the modelling completely unfeasible.
Trying to do this analytically makes by brain hurt, so instead I'll be using simulation. The basic idea is to simulate the given scenario, note how many kills we get, and average across many, many runs of the simulation. My Python code here. A couple of notes:
I simulated crits, but not the paladin waiting on a crit to use their Divine Smite. The Smite is always used on the first hit.
The last enemy attacked is counted as a partial kill, with the fraction being their fraction of lost hit points.
I've run this with 1M tries for each data point (yes, this gives quite long run times), effective AC 8 (equivalent to AC 14 with +6 to hit), and using a d8 damage weapon (longsword, warhammer, etc.). Hit points were chosen with a scaling resolution from 5 to 120. (5, 6, 7, 8, 9, 10, 12, 15, 18, 22, 26, 30, 35, 40, 50, 60, 70, 80, 90, 100, 120.)
This can we generate two tables for the average killrate of each method as a function of number of turns and enemy hitpoints. From this we can obtain the relative difference between the two as a function of the two variables. In the below table a positive value (green) means using divine favor has a higher killrate, and a negative (red) means using Divine Smite is better. The plot of the relative rates can be viewed at one's own leisure, it's a bit messy.
There are a few things to observe from the above results. As enemy hit points become very high, the turnover point becomes 6 which agrees with considerations of damage only. This makes sense as little to no damage is lost as a result of the target dying.
At 15 enemy hit points divine favor becomes particularly poor, being more efficient only after 8 rounds. This is presumably because the enemy is just left at very few hit points quite often. Below 15 hit points favor becomes better earlier. This is presumably because the added d4 is often sufficient to kill of enemies where the normal post-Smite attacks do not. At 6 hit points favor is always better (assuming more than one turn) as any hit is guaranteed to kill with favor, but has a chance not to post-Smite. For 5 hit points either method does nothing, because a normal hit is guaranteed to kill the target. Whether the result is positive or negative for 5 hit points is down to noise/chance.
The above method only considers the paladin attacking the enemies. Trying to factor in party members makes the simulation both trickier (more things to calculate) and more specific (need to set attack options for each party member). In general when also considering the enemies potentially being attacked by others, each hit point would have contributions from lower hit points of the paladin only consideration.
Best Answer
CR 11 and CR ≥ 15
I've constructed this table from this spreadsheet of Monster Manual data. Using a pivot table, I show the average, max, and standard deviation within each CR of the average damage per hit. CR 11 comes in at 23.4 avg dam/hit with higher than average variance due to the Remorhaz boasting a walloping 50.5 damager per hit with its bite attack. Then, from CR 15 and up, the average damage per hit for each CR is greater than or equal to 21 (CR 18 is exactly 21.0).
CR 7 gets an honorable mention, coming in just under due to the mind flayer's Extract Brain attack (averaging 55 dam/hit) being included in my analysis.
And some bar charts because charts are cool: