The Colors of Magic - Available Now

August 30, 2019

Drama Pushing Haggling Mechanic for 5e D&D

Source: Pexels, "Public Domain Pictures"


When you haggle with a contact of some kind (merchant, service provider, dragon, etc.) to get a little more out of a deal, roll Charisma (Persuasion) or Charisma (Deception).  Depends on your approach.  Heck, Wisdom (Insight) might even be appropriate.

The DC is fifteen plus the order of magnitude of the sale (number of digits). For instance, a 2,000gp sale is DC 19.  Or if you're not haggling over money, maybe the DC is ten more than the Challenge Rating of the encounter, or ten more than the Charisma (Insight) or (Persuasion) or (Deception) skill of your contact.  Your DM will figure that out.

  • If you succeed, you get something extra.  It might be a 10% savings, something else of value, or a piece of valuable information.  Maybe it's a good reputation in town, or extra concessions on a treaty.  It could even be a mysterious magic item, a potion, or a follower.  The DM will usually pick what you get.  If the DM can't figure out something cool, they might ask you to suggest something.  If all else fails, some gold pieces are always appropriate.


  • If you fail, but not by more than 5, you still get something extra, but it comes with a hitch.  Maybe dangerous people or monsters are after it.  Maybe to get it, you have to do your contact a favor.  Maybe it's going to take an inconvenient amount of time to get everything in order.  Maybe it winds up drawing unwanted attention.  It could be cursed or haunted.


  • If you fail by more than 5, you've opened the door to trouble.  Maybe you get ripped off and think it's a good deal.  Maybe you get sold shoddy goods without realizing it.  Maybe some or all the hitches above happen, but without getting anything extra to sweeten the pot.  Perhaps you've walked right into a trap.  Maybe it's time to roll initiative.

In this situation, if multiple people are involved in the negotiations, don't use the Help mechanic.  Use a Group Check instead.