Calculating Maximum Willingness to Pay (WTP) out of Conjoint Analysis Utilities


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.

The Procedure

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:

  1. Read utility data and the definition of the specific product in question
  2. Calculate the utility of the specific product for the respondent (u_product)
  3. 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)
  4. Sort all product-price utility relations calculated in step 3 by their total utility (see Table 1)
  5. 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
  6. 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)
  7. Calculate WTP based on the value of u_price
  8. 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.

<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.

Bookmark this page...

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.


28 Responses to “Calculating Maximum Willingness to Pay (WTP) out of Conjoint Analysis Utilities”

  1. Deepshikha Mouza Says:

    Hi I have some conjoint Ananlysis at the Summary level with part-worth utilities butthey are not summing up to Zero.Is that fine?

  2. mrpricing Says:

    Hi Deepshikha,

    conjoint utilities are scaled to sum to zero within each attribute. If yours do not sum up to zero, there seems to be a problem. But difficult to judge not knowing your study. Which software package are you using for the Conjoint Analysis?

    Keep in touch.

  3. Jan-willem Says:

    In my choice based conjoint study I didn’t use a non option. Can I still use this formula to calculate the WTP.

    kind regards,

  4. mrpricing Says:

    Hi Jan-Willem,

    as threshold you can also use some competing product, if you didn’t use a none-choice option.

    Good luck with your study.


  5. Jan-willem Says:

    In my case that’s a little bit difficult because my conjoint study is about a service (Acces to the General Practitioner). I could’nt think of a ‘competing service’. Is there maybe another option. Thanks for your help.

    kind regards,

  6. mrpricing Says:

    Hi Jan-Willem,

    thats difficult to judge, not knowing your study. Did you only use one service or several different services for your Conjoint? Which Software did you use?

    Best wishes

  7. Jan-willem Says:

    Hi Klaus,

    For my study I use Sawtooth Software. I measured in three different GP practices (GP=general practitioners). My attributes were: Time to appointment, Choice of time, Access by telephone, Time with GP, Availability of extra medical services and Extra costs. I want to thank you for your help so far.


  8. mrpricing Says:

    Hi Jan-Willem,

    no problem. To find out the WTP you have to take a look at one combination of your attributes (time, acess, etc) and consider it as the product for which you want to find consumer’s WTP. Then you have to determine another combination of these attributes as the competing product and which you will use as a threshold to determine consumer’s WTP following our outlined procedure. That should work. For further explanaitons just have a look at Kohli/Mahajan 1991.

    Good luck

  9. Monica Says:

    hi! I have a different problem regarding conjoint, maybe you can help me. I used full profile approach, but I had 2 product attributes (out of 4)where I used 3 levels (1=very low, 3=medium and 5=very high) when instead I would have needed 5 (1=very low, 2=low, 3=medium, 4=high, 5=very high).

    can I somehow calculate myself the part utilities for the 2 levels I didn’t include?.. taking into consideration that I already have (from the conjoint) the utilities for the other 3?

    thank you very much and good luck with yor study,

  10. Abhinav Says:

    Are you aware of willingness to pay studies in the area of B2B? Most marketing research focuses on B2C market but I fail to find any details for my customers who server big businesses.


  11. mrpricing Says:

    Hi Abhinav,

    to our knowledge there are no WTP studies in a B2B context, basically all studies we know of are in a B2C context. So there is plenty of room for further research in this area.


  12. Chris Bronson Says:

    Hi Mrpricing,

    When not having a “no choice” utility value, would it make sense to take the constant of the SPSS utility function as WTP threshold?



  13. yimin Says:

    Hello, Experts,

    I have a question: why can’t I get the same u_price value, 3.16, as the example author posted? what’s the k value?

    Can anybody walk me through the calculation? Thanks a lot!
    if u_product + u_price = u_threshold, u_product=1.58, u_price should be 4.158-1.58=2.578.


  14. Alexwebmaster Says:

    Hello webmaster
    I would like to share with you a link to your site
    write me here

  15. CBC2WTP Tool is Online « Pricing Blog Says:

    […] […]

  16. soulrider Says:

    Dear readers, we have just made our wtp calculation tool freely available. Check it out here:

    Choice Based Conjoint to Willingness to Pay Converter Tool

  17. LDS Says:


    Thanks for posting this. I used latent gold for analysis of choice data without a none option. i looked at stream management attributes with cost as an attribute. is it possible to use your method for wtp analysis?

  18. Baka Says:


    I find 2.578 too .. where is the mistake ?
    I’m not sure to understand the k value…

    can someone help me ?


  19. Calculating The Right Price | Says:

    […] Calculating Maximum Willingness to Pay (WTP) out of Conjoint Analysis Utilities […]

  20. Manasi Says:


    When you say linear interpolation, what exactly do you mean? After I found out the range within which my price utility could lie, what am I supposed to plot?


  21. Jan Says:

    first of all thanks for the great page and useful tool. yet i am confused how to determine dollar valuations for each attribute level, as the tool only provides a value for specific products (combination of certain attribute levels). in terms of your sample data: how much are consumers willing to pay for brand1? for compact2? thanks for your help. jan

  22. conjoint analysis Says:

    nice blog.. liked it very much….can someone give me some other related blog address..???neways appreciated..!!!

  23. Sartaj Bedi Says:

    I run a restaurant and am trying to determine the willingness to pay for wines and other categories.
    I also am trying to assess thresholds level of WTP for each category and the point when the customer may switch.

    eg if you price spirits too high then customer may choose to have beer.
    or if you price wines too hiugh customer may choose to have wine by glass only.

    Please advise as to how can I conduct a conjoint analysis. or where can I read about it.

  24. Ludie Frederiksen Says:

    A Excellent write up, I will be sure to save this in my Newsvine account. Have a good day.

  25. Brent Says:

    Do you know of any cloud or internet-based conjoint analysis tools? I have the results from a survey-based CBC study and need to run the conjoint analysis on the coded result variables.


  26. Vlad Says:

    How can the tool you provide can be used in cases of conditional pricing scenarios. I have conducted a CBC experiment where the price of certain products differ by type of brand and weight. So, for price I used 5 levels (current price, +/-5% of current price, +/-10% of current price), but actually each respondent saw different prices according to different brand-weight combination. Is it possible to estimate the WTP based on the real price?
    Many thanks,

  27. Linda Says:


    I was wondering how to calculate the standard deviation of the WTP estimates if both coefficients are kept fixed? Is bootstrapping the only answer?

    Thanks very much for any thoughts and advice

  28. Summer Camps Says:

    You you could change the post subject Calculating Maximum Willingness to Pay (WTP) out of Conjoint Analysis Utilities Pricing Blog to something more specific for your subject you write. I loved the blog post nevertheless.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: