[RPG] the statistical difference, if there is one, between attacking twice (action and bonus action) and attacking once with advantage

advantage-and-disadvantagednd-5eoptimizationsneak-attackstatistics

In our 5e campaign, I'm playing an 8th-level Rogue (Arcane Trickster) with the Crossbow Expert feat, which (among other things) means I can shoot twice in one turn: once as a bonus action and once as an action.

We're also using the alternative rules from TCoE, which means I can aim as a bonus action and shoot with advantage as an action.

Is there a statistical difference between rolling twice and rolling once with advantage? If so, what is it?

I'd love to have the numbers for each level, but if that's not in the cards, I'd love at least 8th and 9th level.

These are my stats:

Str 9
Dex 20
Con 13
Int 19
Wis 10
Cha 12

I suppose if there's a difference between the statistics if there’s Sneak Attack, let’s do 1) I have situational Sneak Attack for the case in which I shoot twice—let's say an ally is within 5 feet of the target—and 2) I don't have Sneak Attack for the case in which I shoot twice.

Best Answer

It depends on your situation (typically, getting Sneak Attack is key)

Let's get something out of the way first: in the simple analysis, attacking twice is usually much better than attacking once with advantage. In both situations, you roll two d20s: when you attack twice, you hit each time one rolls a hit. On a single attack with advantage, you hit if either (or both) roll a hit. Thus, usually, attacking with advantage gives you the possibility of "wasting" the second die (i.e., if they both roll a hit you don't do any extra damage). Name0's answer covers this well, and it's always worth keeping in mind.

That being said, Rogues have a class feature that makes advantage or disadvantage particularly important: Sneak Attack. They can deal Sneak Attack damage if they attack with advantage or if their target has an enemy within 5 feet. But the Rogue can only deal Sneak Attack if they don't have disadvantage on their attack roll (see Sneak Attack, PHB, p. 96). This gives us four different interesting scenarios:

  1. Attacking normally with an ally in range of your target
  2. Attacking normally with no ally in range
  3. Attacking with disadvantage with an ally in range
  4. Attacking with disadvantage with no ally in range

(Here "normally" means your standard unaimed attack has neither advantage nor disadvantage, and your aimed attack has advantage. In cases 3 and 4, your standard unaimed attack has disadvantage, and your aimed attack has neither).

The most useful statistic to track here is "expected damage," or how much damage you will do on an average turn. We calculate expected damage by multiplying the possible damage by how likely you are to deal that much. For simplicity's sake, we'll assume you hit on a roll of 8 or better (which is often the case for a creature whose CR matches your level).

NOTE ON CRITS: I'm omitting critical hits from the math below, because some of the equations would have become confusing large with them factored in, but that won't change the overall assessment of the strategies under the stated assumptions (requiring a d20 roll of 8 or better to hit). I'll give an overview of the analysis with crits and edge-case AC values in a note at the end.

1.) You have an ally in range of your target, and attack normally

So in this case, every attack of yours could do Sneak Attack damage (4d6 for a level 8 character, average 14 damage), but you only get to do that once a turn. Your standard attack will do 1d6+5 damage (average 8.5)

  • Expected damage unaimed (two attacks)= =(8.5+14+8.5)(13/20)2+2(8.5+14)(13/20)(7/20)= 23.335
  • Expected damage aimed (one attack) = (8.5+14)*(1-(7/20)2)= 19.74375

So in this case, you'll do more average damage by taking two attacks. Not by an awful lot, but every little bit helps.

2.) You have no ally in range of your target, and attack normally

In this case, the only way you can get Sneak Attack damage is to attack with Advantage. This changes the math considerably.

  • Expected damage unaimed (two attacks)= (8.5)*(13/20)*2 = 11.05
  • Expected damage aimed (one attack) = 19.74375 (hasn't changed)

This time, you'll do much more damage on average if you aim than attacking twice.

3.) Attacking with disadvantage with an ally in range

In this case, you are attacking with disadvantage if you attack twice. Maybe you are restrained, or the enemy is invisible, or you or the enemy are prone. In any event, your ally won't give you Sneak Attack damage unless you get rid of that disadvantage, such as by aiming.

  • Expected damage unaimed (two attacks)= = 2*(8.5)*(13/20)2= 7.1825
  • Expected damage aimed (one attack) = (8.5+14)*(13/20)= 14.625

Again, Sneak Attack has saved the day, and made aiming a much better choice. But what if you can't get Sneak Attack no matter what?

4.) Attacking with disadvantage with no ally in range

In this case, you can't use Sneak Attack at all. But you can increase your chances of hitting by aiming. How much will it change expected damage?

  • Expected damage unaimed (two attacks) = 7.1825 (same as case 3)
  • Expected damage aimed (one attack) = 8.5*(13/20) = 5.525

In this case, you'll do more damage on average by attacking twice, even though each of those attacks is less likely to hit.

A quick aside about opportunity costs

The question was about "the statistical difference... between rolling d20 twice (action and bonus action) and rolling once with advantage," so all the above calculations have focused on exactly those two options. But it's worth noting that there are some major differences between aiming and not aiming that are non-quantitative, and should be taken into consideration. These center around the opportunity cost of using your bonus action.

For a rogue, a bonus action can be very valuable. The rogue's Cunning Action feature allows them to use a bonus action to either Dash, Disengage, or Hide. All of these options can be very useful in combat, especially for defensive purposes (dashing to make an enemy need to use more than their standard movement to reach you, disengaging to move past multiple enemies to a safer location, hiding so that you are harder to target, etc.). And an Arcane Trickster rogue like your character has other useful bonus action options as well, such as using their Mage Hand or casting a bonus action spell (if you know one).

Now for your rogue, both aiming and attacking twice use your bonus action, so it might seem like both options have the same "opportunity cost"; but that's not quite the case. For one thing, aiming with Steady Aim (TCoE, p. 62) requires you to not have moved in this turn, and sets your speed to 0 until the turn ends, thus reducing your mobility. And secondly, aiming requires you to use your bonus action before you make your attack. Contrastingly, if you attack normally (without aiming), and deal a good amount of damage (for example, successfully using Sneak Attack), you have the option of forgoing a second attack (which, in this example, is guaranteed to not deal Sneak Attack damage anyway), and using your bonus action for some other purpose (e.g. Cunning Action), or attacking again if you wish (e.g. if you are in a secure position, and don't see the need to Hide). But when you use Steady Aim, you are committing your mobility and versatility to an attack, and can't change your mind depending on that attack's outcome.

This is not to say that aiming is strictly worse than attacking twice, or attacking once and using cunning action. All these options must be considered as suits your particular situation. But it points out that there are non-quantitative benefits to a bonus action that should be taken into account when you consider your options.

Enough with the math and asides! So what should I do?!

TLDR version: From a purely Damage-Per-Round perspective, if you need to aim to get Sneak Attack Damage, do. Otherwise, attacking twice is the way to go. And keep in mind, if a single attack could do satisfactory damage (i.e. if you have a chance to use Sneak Attack with a single attack), you might want to attack without aiming, and then use your bonus action for something else (like Cunning Action) if you hit, or attack again with the bonus action if you miss.

Of course, this does oversimplify some things: maybe your enemy has a particularly high AC (where you're unlikely to hit normally), or really low HP (where dealing lots of damage may be overkill, and it's better to deal smaller amounts of damage to multiple targets). Factors like these can change the math. But in general, this is a decent base case to explore.

NOTE ON EXCEPTIONS: Like I said before, I omitted the calculations of critical hit damage because the equations became longer than would be appropriate for this forum, and omitted calculations of different probabilities to hit because a target of 8 on a d20 is a good test case. But I have done the math, and for anyone who is curious, crits do not change the relative value of these strategies in terms of which has the higher expected damage per round, but variable AC values do in only one case. Specifically, exclusively in case #4 (where normal attacks have disadvantage and there is no ally in range of your enemy), you now get higher average damage aiming than attacking twice if-and-only-if the target to hit on a d20 is 12 or higher (e.g. an AC of 20 or higher with this 8th level character). These differences between the two strategies (aiming and attacking once or attacking twice) are very slight for those higher AC values, almost universally just one point of expected damage higher per round on average: but the difference does exist. As stated in the title, the optimal strategy will depend on your situation: there is no such thing as an universally optimal strategy. The math reveals helpful trends, but remember that you'll need to fit your actions to the specific situation.