In a situation where a player is negotiating a price with an NPC, what skill proficiencies would apply? And how would you convert the skill check's result into a final price?
The guidelines for Social Interaction (DMG, pp. 244-245) can be used for bargaining. The general procedure would be:
- Determine the NPC's initial attitude, either hostile, indifferent, or friendly. For merchants that player characters are likely to be bartering with, indifferent seems appropriate in most cases. (Indifference doesn't mean rudeness; it means they aren't willing to sacrifice much for the players).
- Allow the conversation to run its course; the player can attempt to influence the NPC's attitude by appealing to its bonds, flaws, ideals, or simple self-interest. Allow the player to make a Wisdom (Insight) roll to determine some of these characteristics, which might guide them in how they interact with the NPC.
- Decide the NPC's final attitude, and based on what the player is asking for, a DC for an ability check; the table on p.245 of the DMG has suggestions (generally, for an indifferent NPC to offer a discount or bargain that is slightly favorable to the player would be DC 20).
- Based on the tenor of the conversation, the player makes a Charisma check, applying one of Deception, Intimidation, or Persuasion. If other characters have assisted in the conversation, the check may have advantage; if they have significantly hindered the conversation, it may have disadvantage.
If the check is successful, the characters get what they want; if it is unsuccessful, they don't. The interaction rules are expressed in terms of what the NPC is willing to risk or sacrifice for the players, which in the context of bargaining or bartering, would mean how unfavorable an exchange they will concede to make. The general categories are "no sacrifices", "minor sacrifices", or "significant sacrifices"; the DM would have to determine what those equate to in the context of the specific negotiation.
It's important to note that the input to the interaction process is the players asking for something, and the output is whether the NPC is willing to give that to them. So it's up to the players to propose whatever lower price or favorable trade they want; just saying "Roll Persuasion to get a lower price?" isn't sufficient by default. If the players ask for something very unreasonable, that can immediately move the NPC's attitude to hostile; conversely, when dealing with an NPC that has a long history of positive interactions with the players, a starting attitude of friendly could be appropriate.
For interactions with typical merchants, it's reasonable to assume that everyone they deal with is trying to negotiate better prices, and they will only offer meaningful discounts when they have a good reason to, regardless of how persuasive the player is.
As far as determining the characteristics (bonds, flaws, ideals, or other quirks) of the NPC, the DM can use the tables on the DMG pp. 89-90 to determine these, along with appearance, mannerisms, and other features.
The interaction process can be iterative, repeating the general steps above; or, the DM can declare that the NPC isn't interested in further negotiations.
Above all, the DM should remember some overarching principles of the game:
- Don't let anything be determined by dice roll unless all possible outcomes are acceptable.
- You can just declare some things as immediate failures. If a player asks if they can make a Persuasion check to have an armorer give them a sword for free, "that's not going to work" is a perfectly acceptable answer.
- Feel free to gloss over interactions that don't move the plot forward, or aren't entertaining. If the game is approaching a period of downtime, and a player wants to repeatedly try and barter for every purchase they make, you can fast-forward past that: You haggle through all your purchases, but not enough to make a difference overall, and you end up buying what you need for the list prices. Three days later, after you have all rested ...
I normally control bartering with my players through a Charisma (Persuasion) Contest with the NPC/Player with whom he is bartering. The biggest reason for this, compared to just using a Charisma check against a DC, is that bartering isn't so much about success or failure, as the magnitude of said success or failure.
Once the Contest is complete, you can use the difference in the results to change the price of the item or service that they are bartering about. Here is a table you might use to get an approximation of how much you would lower/increase the price of an item:
Contest Result Price Difference (%) −20 +100 −15 +75 −10 +50 −5 +25 5 −10 10 −25 15 −50 20 −75
I am assuming that you have already found what the average price would be for the item/service in question.
Example: If Jack gets a 17 on his final Charisma (Persuasion) check, while a blacksmith gets an 11 when bartering for a longsword (valued at 15 gp), the final price would be 13 gp and 5 sp (17 − 11 is 6, rounded down to 5, meaning a −10% to the price: 0.9 × 15 gp = 13.5 gp).
Optional Strategies: If one of my players wants to try lying or intimidating to give himself an advantage, I use the following methods to affect the contest:
Lying. If a character tries to use lying/Charisma (Deception) to influence the bartering, whatever character tries to lie makes a Charisma (Deception) check against his opponent's Wisdom (Insight) check. The player then gets a bonus (or penalty) to the main Charisma (Persuasion) Contest equal to half of the difference between the check results. Example: If a rogue gets a 19 on his Charisma (Deception) check, which is opposed by an Wisdom (Insight) check of 12, the rogue gets a +3 bonus to his Charisma (Persuasion) check.
Intimidating. Similarly a player can try to intimidate his opponent to get advantage, in which case you would have a Charisma (Intimidation) vs. Charisma (Intimidation) skill contest, with half of the difference going to the winner as an advantage to the Charisma (Persuasion) contest.