In SoPHIE it is also possible to simulate bargaining. For this purpose, there is the Bargaining step type, which is explained below. Bargaining steps can be used to exchange offers as well as text messages. The structure is similar to the text chat, with some extensions.

Preparation and Interaction

As with text chat, the bargaining step first requires variables to be set for the participants in the Participant Variables tab. These variables are the names, avatars and the color of the text that the participants can choose. The corresponding values for the variables must first be defined in a previous step. Detailed instructions on how to do this can be found in the text chat documentation under the Preparation section.

After the variables have been set, the Interaction tab can be used to specify which participants negotiate with each other, who starts, and whether the offers should alternate. Also, as with text chat, it is possible to select whether the interaction members should be displayed when bargaining and if there should be an alert when sending messages.

Interaction Tab Bargaining


The options for the actual bargaining can be configured in the bargaining tab. Here, a lower and upper limit for offers can be set. In addition, there are the setting options “divisible by” and “float precision” to further limit the possible offers.

Furthermore, in the chat tab it can be decided whether the participants can chat or only exchange offers. This is done via the “Activate Messaging” button. Besides, it is possible to determine the maximum length of the messages.

Bargaining Tab

Last but not least, it can be selected whether the participants are allowed to combine offers with their text messages. This can be set by clicking the “Message with Offer” button. In the example below, all three options (text and offers, text only and offers only) are shown.

Bargaining Example

Data Report

The data generated through chat communication is not saved in variables, unlike most of the other information in SoPHIE. Therefore, the simplechat API is provided, to retrieve data from the database. Detailed instructions including sample code for the simplechat API can be found in the text chat documentation.

The remaining data is stored in the variables. These can be retrieved by selecting the “Variables” tab under “Session Details”. There you then have the possibility to select different output and filter options. In the variables you will find different data about the bargaining. These include the variables _accepted and _result, which contain once as integer and once as string whether an offer was accepted or not. In addition, the variable _price lists the price at which the offer was accepted. Furthermore, the variables Procedural Context and Person Context assign the negotiations to the respective groups and rounds. In the extended variables, which can be called by removing the checkmark “Exclude System Variable”, the variable _lastOfferBy records which participant has submitted the last offer. In addition, other variables are displayed which are not explicitly mentioned here.

Bargaining Variables

Bargaining Multi

The Bargaining Multi step is an extension of the normal Bargaining step. The extension is that more information can be included in the negotiation. For example, two products or one good with two attributes can be negotiated. The only difference in the setup of this step from the normal Bargaining step is that more selection options are available in the Bargaining tab. Under the item “Display Option Parameter 2” it is possible to decide in which form the additional parameter should be displayed. You can decide whether the additional information to be bargained for should be provided in the form of Number Input Fields or Radio Buttons. The additional information is stored in the variables in the same way as it was named before (e.g. if the variable was named “Price 2”, then it is stored in the variables under _price2).

Bargaining Multi