Conjoint analysis is a widely used approach to elicit respondents’ preferences. During (e.g. choice-based) conjoint analysis, respondents are asked to choose between several product alternatives. Based on the choices of the respondents, respondents’ utilities for specific product attributes can then be calculated.
When it comes to the price attribute of a certain product, however, market researchers are often not only interested in the utility of a given price level to a consumer, but also in how much a respondent would be willing to pay (WTP) for a specific product in absolute terms.
As WTP is not a direct output of conjoint analysis, it has to be calculated additionally. Following the literature on conjoint analysis, we present a possible approach of how to calculate such WTP data out of conjoint utilities.
Data output of (e.g. choice-based) conjoint analysis comes generally in the form of utility values for specific attribute levels.
How can we use such data to get WTP for a specific product for each respondent? In the literature, the following relationship between utility values has been proposed (see Kohli and Mahajan 1991).
u_product + u_price >= u_threshold + k
u_product: Total utility of the product (excluding utility of price) to the respondent
u_price:Utility of a certain price level
u_threshold: The total utility of a certain threshold (e.g. the no choice option in choice-based conjoint)
k: Some positive number
In choice-based conjoint, the utility value of the “no choice” option could be used as the threshold u_threshold. u_product represents the total utility for the specific product the market researcher is interested in, excluding utility of price. u_price holds the utility of one of the specific price levels.
The challenge is now to find a price u_price, such that equation (1) holds. Given a large amount of conjoint data, this can best be done using some sort of program that handles that job for (e.g. Java, C or whatever language you prefer). An quick and dirty algorithm that solves the presented problem could look as follows:
- Read utility data and the definition of the specific product in question
- Calculate the utility of the specific product for the respondent (u_product)
- Iterate over all possibe product-price utility relations for the specific product and the respondent and calculate their total utility (total_utility = u_product + u_price)
- Sort all product-price utility relations calculated in step 3 by their total utility (see Table 1)
- Seek for the first product-price relation that satisfies equation (1), use k as buffer (k = u_threshold – (u_product + u_price))
=> now you know the lower and upper bound of u_price
- Use k to (linear) interpolate between the lower and upper bound of u_price to get the correct value of u_price that satisfies (u_product + u_price = u_threshold)
- Calculate WTP based on the value of u_price
- Jump to step 2 until all respondents are proceeded.
Consider a respondent with a utility of the none option (u_threshold in our case) of 4.158. Sample data that might result after step 4 is shown in table 1.
Possible output after step 4 (using 13 price levels):Product utilities for product a1=1, a2=1, a3=2, a4=1 for respondent 38; u_threshold: 4.158
u_product=1.58, u_price= 6.82, u_total=8.41
u_product=1.58, u_price= 5.83, u_total=7.41
u_product=1.58, u_price= 4.15, u_total=5.73
u_product=1.58, u_price= 3.01, u_total=4.59
u_product=1.58, u_price= 2.08, u_total=3.66
u_product=1.58, u_price= 0.46, u_total=2.04
u_product=1.58, u_price= 0.02, u_total=1.60
u_product=1.58, u_price= -0.56, u_total=1.02
u_product=1.58, u_price= -0.96, u_total=0.62
u_product=1.58, u_price= -1.37, u_total=0.21
u_product=1.58, u_price= -4.67, u_total=-3.08
u_product=1.58, u_price= -6.26, u_total=-4.68
u_product=1.58, u_price= -8.53, u_total=-6.95
u_price that satisfies equation (1): 3.16; resulting WTP for respondent 38, 4.82 (USD)
Given an u_threshold of 4.158 we find that u_price has to be between 2.08 and 3.01. After linear interpolation we find an u_price that satisfies equation (1) as 3.16. It is then straightforward to calculate the maximum WTP, which is in our example 4.82 USD.
How do you calculate WTP out of conjoint analysis data? Any comments are highly appreciated!
PS. We have implemented the algorithm using Java. Please contact us if you are interested in the detailed code.
|Author: Reto Hofstetter|
Kohli, Rajeev, and Mahajan, Vijay (1991), A Reservation-Price Model for Optimal Pricing of Multiattribute Products in Conjoint Analysis, Journal of Marketing Research, 28 (August), S. 347-354.