# Conjoint Analysis Concept Card: [Product, study or course]

> A concept card on conjoint analysis for the MBA marketing analytics elective: ratings-based conjoint estimated by
> regression, choice-based conjoint (CBC) estimated with the multinomial logit model, part-worths, attribute importance,
> willingness to pay, market simulators and price optimisation, and the limits that decide whether a study can be
> trusted. It is for second-year MBA students in marketing analytics, pricing or product management, and for managers
> who commission conjoint studies or must act on them. It builds on the core cards `mba/mba-pricing-card` (value-based
> pricing and the markup rule) and `mba/mba-stp-positioning-card` (needs-based segmentation) and links to them instead
> of re-teaching them. Source basis: Luce and Tukey (1964), Green and Rao (1971), Green and Srinivasan (1978, 1990),
> Luce (1959), McFadden (1974), Louviere and Woodworth (1983), Allenby and Rossi (1998) and Ding, Grewal and Liechty
> (2005), written up in original words with fictional Northfield Outdoor Co. data. Every number was computed in Python
> (numpy, scipy, statsmodels) and is shown with its Excel equivalent where Excel can compute it.
> Replace every [bracketed] value and every row marked *Example*.

<!--
Guidance: How to use this template
- Read "The idea in plain language" and "Formulas and notation" first, then rebuild Worked example A in a spreadsheet:
  the LINEST output for the ratings study and the share simulator for the choice study.
- Run the Python block once; it simulates the choice data with a fixed seed and must print the same estimates.
- Fill every [ ] in Worked example B before you check the answer key, then do Exercise C on your own.
- Replace the Fastpack attributes with your own product only after the examples work for you. Log every self-test
  miss in mba/mba-error-log.
- Related templates: mba/mba-marketing-analytics-guide, mba/mba-segmentation-clustering-card,
  mba/mba-marketing-experiments-card, mba/mba-new-product-diffusion-card, mba/mba-brand-equity-card,
  mba/mba-pricing-card, mba/mba-demand-elasticity-card, mba/mba-stp-positioning-card, mba/mba-marketing-guide,
  mba/mba-regression-for-managers-card, mba/mba-customer-lifetime-value-card, academic/stats-logistic-regression,
  academic/stats-estimation-mle, academic/stats-experiment-design, academic/stats-sampling-plan,
  business/market-research-report.
-->

## Document control

<!-- Guidance: Record the design, the sample and the estimation method, so a reviewer can reproduce every part-worth and every simulated share. -->

| Field | Value |
|---|---|
| Document ID | [MA-CJ-001] |
| Course or project | [Marketing analytics elective / Fastpack pricing study] |
| Learner or analyst | [Your name] |
| Decision owner | [@owner] |
| Reviewed by | [Study group / research lead] |
| Study type | [Ratings-based full profile / choice-based conjoint with a "none" option] |
| Sample | [300 trail runners, 10 tasks each (fictional) / your sample and source] |
| Software | Excel (LINEST, SUMPRODUCT, EXP); Python 3 with numpy, scipy and statsmodels |
| Last updated | YYYY-MM-DD |
| Version | [0.1] |
| Classification | [Course work / internal] |

## Contents

1. When to use it
2. The idea in plain language
3. Formulas and notation
4. Assumptions and limits
5. How managers use it in practice
6. The study process
7. Worked example A (fully solved): the Fastpack running pack
8. Worked example B (half solved): Rival A responds
9. Exercise C (unsolved): a cheaper Fastpack version
10. Connections to other cards
11. Common mistakes and misconceptions
12. Self-test questions
13. My notes and next steps
14. Sources and further reading
15. Answer key
16. Revision history
17. Standard and licence note

## When to use it

<!-- Guidance: Write the decision the study must inform in one sentence before you choose attributes. A conjoint study without a decision produces a large table of part-worths and no action. -->

**One-sentence rule:** use conjoint analysis when a decision depends on how customers trade off several product
features against each other and against price, and when you cannot observe those trade-offs in market data because
the product, the feature or the price point does not exist yet.

| Good uses | Poor uses |
|---|---|
| Choosing the feature set and price of a new product before launch | Products bought mainly on emotion or social signalling that a feature list cannot describe |
| Estimating willingness to pay for a feature (a longer guarantee, a lighter build) | Forecasting absolute sales volume without calibration to real purchase data |
| Simulating share against named competitors, including their likely responses | Attributes that respondents cannot judge from a description (taste, fit, feel) unless shown physically |
| Finding needs-based segments from part-worths (see `mba/mba-segmentation-clustering-card`) | Markets where distribution and awareness, not product design, decide the sale |
| Sizing the value of a brand name over an unbranded equivalent (see `mba/mba-brand-equity-card`) | Many attributes (more than about 6 to 8 in one full-profile task): respondents simplify and the data degrade |

In practice conjoint is the workhorse of product and pricing research: it turns "which features matter most?", a
question respondents answer badly when asked directly, into a set of realistic choices they answer well.

## The idea in plain language

<!-- Guidance: Practise explaining part-worths and willingness to pay to a non-specialist in under a minute, using one row of your own study. -->

Ask runners which matters more, a light pack or a low price, and most will say "both". Show them three packs that
differ in weight, guarantee, brand and price and ask which they would buy, and their choice reveals the trade-off.
Conjoint analysis is built on that observation: the overall value of a product is decomposed into the **part-worth**
utilities of its attribute levels, estimated from many evaluations of whole products. The term comes from conjoint
measurement in mathematical psychology (Luce and Tukey 1964): measuring the separate contributions of several factors
that are only observed jointly. Green and Rao (1971) brought it into marketing research, and Green and Srinivasan
(1978, 1990) set out the practice that most studies still follow.

There are two families of studies:

1. **Ratings-based (traditional) conjoint.** Each respondent rates or ranks a set of full product profiles. A
   regression of the ratings on dummy variables for the attribute levels gives that respondent's part-worths. It is
   transparent and can be run in Excel, which is why courses start with it.
2. **Choice-based conjoint (CBC).** Each respondent sees several choice tasks, each with three or four product
   alternatives and often a "none of these" option, and picks one. The choices are modelled with the multinomial logit
   model of random utility theory (Luce 1959; McFadden 1974), and the method was brought into marketing by Louviere
   and Woodworth (1983). Choosing is closer to real buying than rating, the "none" option measures whether people would
   buy at all, and the model predicts shares directly. CBC is the default in commercial practice today.

From part-worths a manager gets four things: the **relative importance** of each attribute over the ranges tested,
the **willingness to pay** (WTP) for a feature, a **market simulator** that predicts preference shares for any
combination of products, and, combined with costs, a **profit-maximising design and price**. The simulator is what
makes conjoint a decision tool rather than a descriptive survey.

The two big cautions are equally simple. First, respondents are making hypothetical choices about described products:
the answers can be biased towards features and away from price unless the study is designed carefully (realistic
tasks, incentive alignment as in Ding, Grewal and Liechty 2005). Second, people differ: an average part-worth hides
segments with very different trade-offs, and the plain logit model has a property (independence of irrelevant
alternatives) that can make its share predictions unrealistic. Modern practice estimates individual or segment-level
part-worths with hierarchical Bayes or latent class models (Allenby and Rossi 1998) for that reason.

## Formulas and notation

<!-- Guidance: Be able to write the logit share formula and the WTP formula from memory, and to say what each symbol means in money terms. -->

**Ratings-based model** (one respondent, profiles $j = 1, \dots, J$, dummy coding with one base level per attribute):

$$r_j = \beta_0 + \sum_{k=1}^{K} \sum_{l=2}^{L_k} \beta_{kl}\, d_{jkl} + \varepsilon_j$$

**Attribute importance** over the levels tested (the base level counts with $\beta_{k1} = 0$):

$$I_k = \frac{\max_l \beta_{kl} - \min_l \beta_{kl}}{\sum_{k'=1}^{K} \left( \max_l \beta_{k'l} - \min_l \beta_{k'l} \right)}$$

**Choice-based model** (multinomial logit). Respondent $i$ in a task chooses among alternatives $m = 1, \dots, M$:

$$U_{im} = V_{im} + \varepsilon_{im}, \qquad V_{im} = \mathbf{x}_{im}'\boldsymbol{\beta}, \qquad P_{im} = \frac{e^{V_{im}}}{\sum_{m'=1}^{M} e^{V_{im'}}}$$

With independent extreme value (Gumbel) errors this is the conditional logit of McFadden (1974). The model is
estimated by maximum likelihood:

$$\ln L(\boldsymbol{\beta}) = \sum_{t} \ln P_{t, c_t}, \qquad \rho^2 = 1 - \frac{\ln L(\hat{\boldsymbol{\beta}})}{\ln L(\mathbf{0})}$$

**Willingness to pay** for moving attribute $k$ from its base level to level $l$, with a linear price term:

$$\text{WTP}_{kl} = -\frac{\beta_{kl}}{\beta_{\text{price}}}$$

**Own and cross price elasticity** of a logit share:

$$\eta_{mm} = \beta_{\text{price}}\, p_m \,(1 - P_m), \qquad \eta_{nm} = -\beta_{\text{price}}\, p_m\, P_m \;\; (n \neq m)$$

| Symbol | Meaning | Fastpack example |
|---|---|---|
| $r_j$ | Rating of profile $j$ (0 to 10) | 9 for the 450 g, 3-year, USD 165 pack |
| $d_{jkl}$ | 1 if profile $j$ has level $l$ of attribute $k$, else 0 | 1 if the pack weighs 450 g |
| $\beta_{kl}$ | Part-worth of level $l$ relative to the base level of attribute $k$ | 0.9300 utils for 450 g against 750 g (CBC) |
| $I_k$ | Relative importance of attribute $k$, over the ranges tested | 49.7% for weight (ratings study) |
| $V_{im}$ | Deterministic (observed) utility of alternative $m$ | -1.877 for Fastpack at USD 165 |
| $\varepsilon_{im}$ | Unobserved utility, i.i.d. Gumbel in the logit model | |
| $P_{im}$ | Probability that alternative $m$ is chosen (share of preference) | 39.6% for Fastpack |
| $\beta_{\text{price}}$ | Utility per USD of price (negative) | -0.0201 |
| $\text{WTP}_{kl}$ | Money value of a level change, in USD | USD 25.35 for the 3-year guarantee |
| $\rho^2$ | McFadden's pseudo R-squared, fit against a model with all utilities zero | 0.0941 |
| $\eta_{mm}$ | Own-price elasticity of the share of alternative $m$ | -2.00 at USD 165 |

Two properties follow from the logit formula. Only utility **differences** matter (adding a constant to every
alternative leaves the shares unchanged), and the ratio of any two shares, $P_m / P_n = e^{V_m - V_n}$, does not
depend on the other alternatives. That second property is the **independence of irrelevant alternatives** (IIA), and
it is the reason the plain logit simulator can mispredict when a new product is a close substitute for one existing
product.

**Excel equivalents.** Ratings model: `=LINEST(F2:F19,A2:E19,TRUE,TRUE)` (coefficients come out in reverse column
order with the intercept last). Utility of one alternative: `=SUMPRODUCT($B$1:$H$1,B2:H2)` with the coefficients in
row 1. Share of preference with the four utilities in `I2:I5`: `=EXP(I2)/SUMPRODUCT(EXP($I$2:$I$5))`. WTP:
`=-B1/G1`. Excel has no built-in multinomial logit; Solver can maximise the log-likelihood for a small study, but for
real CBC data use statistical software.

## Assumptions and limits

<!-- Guidance: For each limit, write one sentence on how your own study handles it. A reviewer will ask. -->

| Assumption | What it means | What to do when it fails |
|---|---|---|
| Compensatory, additive utility | A strength on one attribute can make up for a weakness on another | Test for interactions you have reason to expect (brand by price); screen out "must-have" levels with a pre-question |
| Attributes and levels are realistic and understood | Respondents picture the same thing you do | Pre-test with 10 to 15 interviews; use physical samples or images for sensory attributes |
| Levels span the realistic range | Part-worths and importance depend on the range tested | Never compare importance across studies with different ranges |
| Hypothetical choices reflect real ones | Stated preference equals revealed preference | Incentive-align (Ding, Grewal and Liechty 2005); calibrate shares to market data; include a "none" option |
| Homogeneous preferences (aggregate logit) | One set of part-worths for everyone | Estimate hierarchical Bayes or latent class models (Allenby and Rossi 1998) |
| IIA (aggregate logit) | Share ratios independent of other alternatives | Use heterogeneous models, which relax IIA at the population level, or nested logit |
| Shares of preference equal market shares | Everyone is aware of and can buy every product | Adjust for awareness and distribution before forecasting volume |
| Design is efficient and balanced | Each level appears equally often and independently of others | Use an orthogonal or D-efficient design from specialised software; check level counts |

A conjoint study measures preference under the conditions the questionnaire creates. Distribution, awareness, the
salesperson's pitch and the shelf next to the product are all outside it. That is why the output is called a **share
of preference**, not a market share.

## How managers use it in practice

<!-- Guidance: Pick the use that matches your decision and say which output of the study it relies on. -->

- **Feature and price design.** Choose the configuration that maximises contribution, not share: the simulator plus
  unit costs gives a profit curve over price for each configuration (Worked example A, Step 6).
- **Willingness to pay for a feature.** Compare the WTP for a feature with its cost. Northfield's 3-year repair
  guarantee is worth about USD 25 to the average runner in the example; if it costs Northfield less than that per
  pack in expected repairs, it adds value. Link the result to value-based pricing in `mba/mba-pricing-card`.
- **Competitive response.** Simulate what happens to share and profit when a rival cuts its price or matches a
  feature, and prepare the response before it happens (Worked example B).
- **Brand value.** The part-worth of a brand name, converted into money with the price coefficient, is one
  operational measure of brand equity (`mba/mba-brand-equity-card`).
- **Segmentation.** Individual-level part-worths are excellent clustering variables, because they describe what
  people trade off rather than who they are (`mba/mba-segmentation-clustering-card`).
- **Portfolio and cannibalisation.** Adding a second version of a product can take share from rivals or from your own
  product; the simulator shows both (Exercise C).
- **Litigation and regulation.** Conjoint-based WTP estimates are used in some damages cases about product features.
  If your work may be used that way, involve counsel early; this card is a learning aid, not legal advice.

## The study process

<!-- Guidance: Use the flowchart as a project plan. Most failed studies fail at the first two boxes, not at estimation. -->

A conjoint study is a small research project with a fixed order of work. The decision defines the attributes, the
attributes define the design, and only then does estimation start. Budget most of the time for the first three steps:
an attribute that respondents misread cannot be repaired by any model.

```mermaid
flowchart TD
    A["Decision to inform: design, price, response to a rival"] --> B["Attributes and levels from interviews and the decision"]
    B --> C{"Can respondents judge each attribute from a description?"}
    C -- "No" --> B2["Use samples or images, or drop the attribute"]
    B2 --> B
    C -- "Yes" --> D["Choose method: ratings for teaching or few attributes, CBC for pricing and share"]
    D --> E["Experimental design: balanced, efficient, with a none option"]
    E --> F["Pre-test 10 to 15 respondents, then field the survey"]
    F --> G["Estimate: OLS for ratings, logit for choices, HB or latent class for heterogeneity"]
    G --> H["Validate: holdout tasks, face validity of signs and WTP"]
    H --> I["Simulator: shares, competitive scenarios, profit by price"]
    I --> J["Calibrate to market data and decide"]
```

## Worked example A (fully solved): the Fastpack running pack

<!-- Guidance: Reproduce Steps 1 to 3 in Excel with LINEST, then run the Python block for Steps 4 and 5, then rebuild the simulator in Excel for Step 6. -->

**Situation (fictional).** Northfield Outdoor Co. is preparing the launch of Fastpack, its range of ultralight running
packs for trail runners (the target segment chosen in `mba/mba-stp-positioning-card` and the Fastpack mini-case in
`mba/mba-marketing-guide`). The launch plan assumes a price of USD 165, a unit cost of USD 74 and variable selling
costs of USD 9.60 per pack (55% store units at USD 6, 45% online units at USD 14). The product team still argues
about two features: how hard to push weight down (450 g costs more than 600 g), and whether to offer a 3-year repair
guarantee instead of the standard 1-year one. The CMO asks the analytics lead for the trade-offs and a price check.

### Step 1: a ratings study with one respondent

Three attributes: weight (450 g, 600 g, 750 g), guarantee (1-year, 3-year) and price (USD 135, 165, 195). The full
factorial has $3 \times 2 \times 3 = 18$ profiles, few enough for one respondent to rate. Respondent R-017, a trail
runner in the pilot, rated each profile from 0 (would never buy) to 10 (would certainly buy):

| Profile | Weight | Guarantee | Price (USD) | Rating | Profile | Weight | Guarantee | Price (USD) | Rating |
|---|---|---|---|---|---|---|---|---|---|
| 1 *(Example)* | 450 g | 1-year | 135 | 8 | 10 *(Example)* | 600 g | 3-year | 135 | 8 |
| 2 *(Example)* | 450 g | 1-year | 165 | 7 | 11 *(Example)* | 600 g | 3-year | 165 | 6 |
| 3 *(Example)* | 450 g | 1-year | 195 | 5 | 12 *(Example)* | 600 g | 3-year | 195 | 5 |
| 4 *(Example)* | 450 g | 3-year | 135 | 10 | 13 *(Example)* | 750 g | 1-year | 135 | 4 |
| 5 *(Example)* | 450 g | 3-year | 165 | 9 | 14 *(Example)* | 750 g | 1-year | 165 | 3 |
| 6 *(Example)* | 450 g | 3-year | 195 | 7 | 15 *(Example)* | 750 g | 1-year | 195 | 1 |
| 7 *(Example)* | 600 g | 1-year | 135 | 6 | 16 *(Example)* | 750 g | 3-year | 135 | 5 |
| 8 *(Example)* | 600 g | 1-year | 165 | 5 | 17 *(Example)* | 750 g | 3-year | 165 | 4 |
| 9 *(Example)* | 600 g | 1-year | 195 | 3 | 18 *(Example)* | 750 g | 3-year | 195 | 2 |

Code five dummies (base levels 750 g, 1-year, USD 195): `w450`, `w600`, `g3`, `p135`, `p165`. In Excel, with the
dummies in `A2:E19` and the ratings in `F2:F19`, `=LINEST(F2:F19,A2:E19,TRUE,TRUE)` returns:

| Term | Coefficient (part-worth versus base) |
|---|---|
| Intercept (750 g, 1-year, USD 195) | 0.7778 |
| 450 g | 4.5000 |
| 600 g | 2.3333 |
| 3-year guarantee | 1.5556 |
| USD 135 | 3.0000 |
| USD 165 | 1.8333 |

$R^2$ = 0.9867 and the standard error of the regression is 0.3333 rating points. Because the design is a balanced full
factorial, each part-worth equals a difference of level means: the mean rating of the 450 g profiles is 7.6667 and of
the 750 g profiles 3.1667, a difference of 4.5000 (`=AVERAGEIF(B2:B19,450,F2:F19)-AVERAGEIF(B2:B19,750,F2:F19)` on a
second sheet with the raw weight in column B and the rating in column F).

### Step 2: importance and centred part-worths

| Attribute | Part-worths versus base | Centred part-worths (sum to zero) | Range | Importance |
|---|---|---|---|---|
| Weight | 450 g: 4.5000; 600 g: 2.3333; 750 g: 0 | 2.2222; 0.0556; -2.2778 | 4.5000 | 49.7% |
| Guarantee | 1-year: 0; 3-year: 1.5556 | -0.7778; 0.7778 | 1.5556 | 17.2% |
| Price | 135: 3.0000; 165: 1.8333; 195: 0 | 1.3889; 0.2222; -1.6111 | 3.0000 | 33.1% |

Importance for weight: $4.5000 / (4.5000 + 1.5556 + 3.0000) = 4.5000 / 9.0556 = 49.7\%$ (`=C2/SUM($C$2:$C$4)` on the
range column). Read it as "over the ranges tested, the difference between 450 g and 750 g moves R-017's rating about
1.5 times as much as the difference between USD 135 and USD 195". It is **not** a statement that weight matters 50%
in general: widen the price range and price becomes more important.

### Step 3: willingness to pay from ratings

Treat price as linear between USD 135 and USD 195: $3.0000 / 60 = 0.05$ rating points per USD. Then R-017's WTP for
the 3-year guarantee is $1.5556 / 0.05 = $ USD 31.11, and for 450 g over 600 g $(4.5000 - 2.3333)/0.05 =$ USD 43.33
(`=(B3-B4)/(B6/60)` with the part-worths in column B). The price part-worths are not exactly linear (1.8333 at USD 165,
against 1.5000 on a straight line), so a WTP stated to the cent is false precision. One respondent is a teaching
device: a real study pools many respondents, which is where choice-based conjoint comes in.

### Step 4: a choice-based study

The full study adds the brand of the pack (Fastpack by Northfield, Rival A, a technical specialist, and Rival C, a
value brand) and switches to choices. Each of 300 trail runners saw 10 tasks with three packs and a "none" option,
3,000 choices in all. The block below **simulates** such a data set from known part-worths with a fixed seed and
estimates the multinomial logit by maximum likelihood, so you can see the method recover the truth. In a real study
you would load the survey export instead of simulating it.

```python
import numpy as np
from scipy.optimize import minimize

rng = np.random.default_rng(61)
true = np.array([0.40, -0.20, 0.90, 0.40, 0.50, -0.020, -2.6])  # Rival A, Rival C, 450 g, 600 g, 3-year, price, none
tasks = []
for n in range(300):                      # 300 respondents
    for t in range(10):                   # 10 choice tasks each, 3 packs + "none"
        brand, wt = rng.integers(0, 3, 3), rng.integers(0, 3, 3)
        g, price = rng.integers(0, 2, 3), rng.choice([135, 165, 195], 3)
        X = np.column_stack([brand == 1, brand == 2, wt == 0, wt == 1, g, price, np.zeros(3)]).astype(float)
        X = np.vstack([X, [0, 0, 0, 0, 0, 0, 1]])
        p = np.exp(X @ true) / np.exp(X @ true).sum()
        tasks.append((X, rng.choice(4, p=p)))

def neg_ll(b):
    return -sum(X[c] @ b - np.log(np.exp(X @ b).sum()) for X, c in tasks)

fit = minimize(neg_ll, np.zeros(7), method="BFGS")
H = sum((X * (P := np.exp(X @ fit.x) / np.exp(X @ fit.x).sum())[:, None]).T @ X
        - np.outer(P @ X, P @ X) for X, _ in tasks)
se = np.sqrt(np.diag(np.linalg.inv(H)))
for name, b, s in zip(["Rival A", "Rival C", "450 g", "600 g", "3-year", "price", "none"], fit.x, se):
    wtp = f"  WTP USD {-b / fit.x[5]:6.2f}" if name not in ("price", "none") else ""
    print(f"{name:8s} {b:8.4f}  se {s:6.4f}{wtp}")
print("McFadden rho2", round(1 - fit.fun / (len(tasks) * np.log(4)), 4))
```

Output from the run:

```text
Rival A    0.3793  se 0.0606  WTP USD  18.87
Rival C   -0.2505  se 0.0642  WTP USD -12.46
450 g      0.9300  se 0.0644  WTP USD  46.27
600 g      0.4497  se 0.0651  WTP USD  22.37
3-year     0.5095  se 0.0513  WTP USD  25.35
price     -0.0201  se 0.0011
none      -2.6745  se 0.1839
McFadden rho2 0.0941
```

The base levels are Fastpack by Northfield, 750 g and the 1-year guarantee. The estimates are close to the values
used to simulate the data (0.40, -0.20, 0.90, 0.40, 0.50, -0.020, -2.6), every one within one standard error.
The runners chose "none" in 21.3% of tasks.

### Step 5: interpretation

- **Price:** each extra USD 1 lowers utility by 0.0201. Every other coefficient is converted into money with it.
- **Weight:** 450 g is worth USD 46.27 over 750 g and USD 46.27 - 22.37 = USD 23.90 over 600 g. Runners pay for
  lightness, and the second step (600 g to 450 g, USD 23.90) is worth about as much as the first (750 g to 600 g,
  USD 22.37): no sign of diminishing returns in this range. The engineering cost of the last 150 g must stay below
  about USD 24 a pack.
- **Guarantee:** the 3-year repair guarantee is worth USD 25.35. If Northfield's expected repair cost over the extra
  two years is, say, USD 6 per pack, the guarantee creates about USD 19 of value per pack that pricing can capture.
- **Brand:** Rival A, the technical specialist, carries a premium of USD 18.87 over Fastpack by Northfield among trail
  runners; Rival C sits USD 12.46 below. Northfield's brand is not yet technical in this segment, which matches the
  brand funnel in the `mba/mba-marketing-guide` mini-case.
- **Fit:** $\rho^2$ = 0.0941 looks low against regression $R^2$ values, but pseudo R-squared values for choice models
  are on a different scale; judge the model by holdout-task hit rates and by whether the signs and WTP values make
  sense.
- **Ratings versus choices:** R-017's WTP for the guarantee (USD 31.11) is higher than the CBC average (USD 25.35).
  That is not a contradiction: one enthusiastic respondent is not the average runner.

### Step 6: the market simulator and the price decision

Scenario: Fastpack (Northfield, 450 g, 3-year guarantee) against Rival A (600 g, 1-year, USD 175), Rival C (450 g,
1-year, USD 150) and "none". Utilities use the estimates rounded to four decimals. At a Fastpack price of USD 165:

| Alternative | Utility $V$ | Excel | $e^{V}$ | Share of preference |
|---|---|---|---|---|
| Fastpack, USD 165 *(Example)* | $0.9300 + 0.5095 - 0.0201 \times 165 = -1.8770$ | `=0.93+0.5095-0.0201*165` | 0.1530 | 39.6% |
| Rival A, USD 175 *(Example)* | $0.3793 + 0.4497 - 0.0201 \times 175 = -2.6885$ | `=0.3793+0.4497-0.0201*175` | 0.0680 | 17.6% |
| Rival C, USD 150 *(Example)* | $-0.2505 + 0.9300 - 0.0201 \times 150 = -2.3355$ | `=-0.2505+0.93-0.0201*150` | 0.0968 | 25.0% |
| None *(Example)* | $-2.6745$ | constant | 0.0689 | 17.8% |
| Sum | | | 0.3867 | 100.0% |

Share of Fastpack: `=EXP(B2)/SUMPRODUCT(EXP($B$2:$B$5))` = 39.6%. Assume 20,000 trail runners in the region buy a
pack in a year and choose among these options (a fictional market size that would come from
`mba/mba-new-product-diffusion-card` or a sizing study). Contribution per Fastpack pack is $p - 74 - 9.60$. Vary the
Fastpack price, keep the rivals fixed:

| Fastpack price (USD) | Share of preference | Packs | Contribution (USD m) |
|---|---|---|---|
| 125 | 59.4% | 11,881 | 0.492 |
| 135 | 54.5% | 10,896 | 0.560 |
| 145 | 49.5% | 9,894 | 0.607 |
| 155 | 44.5% | 8,893 | 0.635 |
| 165 | 39.6% | 7,915 | 0.644 |
| 175 | 34.9% | 6,976 | 0.638 |
| 185 | 30.5% | 6,093 | 0.618 |
| 195 | 26.4% | 5,276 | 0.588 |
| 205 | 22.7% | 4,533 | 0.550 |
| 215 | 19.3% | 3,868 | 0.508 |
| 225 | 16.4% | 3,279 | 0.464 |

Excel for USD 165: packs `=20000*C2` with the unrounded share in `C2` (0.39575) gives 7,915, and contribution
`=7915*(165-83.6)/10^6` gives 0.644. A one-dollar grid search finds the maximum at USD 166 (share
39.1%, contribution USD 0.644m), so the planned USD 165 is essentially at the optimum, and the profit curve is flat
between about USD 155 and USD 175: a USD 10 pricing error either way costs less than USD 10k of contribution a year.
The own-price elasticity of Fastpack's share at USD 165 is $-0.0201 \times 165 \times (1 - 0.396) = -2.00$. With a
markup rule check from `mba/mba-pricing-card`: the Lerner condition $(p - c)/p = 1/|\eta|$ gives
$(165 - 83.6)/165 = 0.49$, close to $1/2.00 = 0.50$, as it should be near the optimum.

```vega-lite
{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
  "description": "Fastpack simulated share of preference and annual contribution by price (fictional)",
  "width": 420,
  "height": 240,
  "data": {"values": [
    {"price": 125, "share": 59.4, "contribution": 0.492},
    {"price": 135, "share": 54.5, "contribution": 0.560},
    {"price": 145, "share": 49.5, "contribution": 0.607},
    {"price": 155, "share": 44.5, "contribution": 0.635},
    {"price": 165, "share": 39.6, "contribution": 0.644},
    {"price": 175, "share": 34.9, "contribution": 0.638},
    {"price": 185, "share": 30.5, "contribution": 0.618},
    {"price": 195, "share": 26.4, "contribution": 0.588},
    {"price": 205, "share": 22.7, "contribution": 0.550},
    {"price": 215, "share": 19.3, "contribution": 0.508},
    {"price": 225, "share": 16.4, "contribution": 0.464}
  ]},
  "encoding": {"x": {"field": "price", "type": "quantitative", "title": "Fastpack price (USD)", "scale": {"zero": false}}},
  "layer": [
    {"mark": {"type": "line", "point": true},
     "encoding": {"y": {"field": "share", "type": "quantitative", "title": "Share of preference (%)"}}},
    {"mark": {"type": "line", "point": true, "strokeDash": [4, 3], "color": "#b5651d"},
     "encoding": {"y": {"field": "contribution", "type": "quantitative", "title": "Contribution (USD m, dashed)", "scale": {"zero": false}}}}
  ],
  "resolve": {"scale": {"y": "independent"}}
}
```

### Step 7: the answer to the CMO

Keep the 450 g build and the 3-year guarantee: runners value them at about USD 46 (over 750 g) and USD 25, more than
their likely cost. Launch at USD 165, which the simulator puts at the top of a flat profit curve, and do not chase
Rival A's brand premium with price: Northfield's gap to Rival A (USD 18.87) is a brand-building task. Before the
board, calibrate: the simulator assumes every runner knows every pack and that the aggregate logit is adequate.
Re-estimate with hierarchical Bayes to see whether a high-WTP segment justifies a premium version, and treat the
20,000-pack market as an assumption to test.

## Worked example B (half solved): Rival A responds

<!-- Guidance: Fill each [ ] from the coefficients in Step 4 and the table layout of Step 6. Then answer the questions before you look at the answer key. -->

Six months after launch, Rival A cuts its pack to USD 155 and adds a 3-year guarantee. Fastpack stays at USD 165;
Rival C and "none" are unchanged.

| Alternative | Utility $V$ | $e^{V}$ | Share of preference |
|---|---|---|---|
| Fastpack, USD 165 | -1.8770 | 0.1530 | [ ] |
| Rival A, USD 155, 3-year | $0.3793 + 0.4497 + 0.5095 - 0.0201 \times 155 =$ [ ] | [ ] | [ ] |
| Rival C, USD 150 | -2.3355 | 0.0968 | 19.8% |
| None | -2.6745 | 0.0689 | 14.1% |
| Sum | | [ ] | 100.0% |

Questions:

1. Complete the table. How many Fastpack packs and how much contribution (USD m) does Northfield now earn from the
   20,000-runner market at USD 165, against 7,915 packs and USD 0.644m before?
2. Compute the ratio of Fastpack's share to Rival C's share before and after Rival A's move. What property of the
   logit model does the result show, and why might it be unrealistic here?
3. A one-dollar grid search finds Fastpack's new best price at USD 159 (share 34.0%, contribution USD 0.513m). Should
   Northfield cut its price? What else could it do?

## Exercise C (unsolved): a cheaper Fastpack version

<!-- Guidance: Work it in Excel first, then check with a short Python script of your own. Write the recommendation in three sentences. -->

The product team proposes a second version, Fastpack Trail: 600 g, 3-year guarantee, USD 145, Northfield brand.

1. Compute its utility and its share of preference if it **replaced** the 450 g Fastpack at USD 165 (rivals as in
   Step 6).
2. Compute the shares if Northfield offered **both** versions. What is Northfield's combined share, and how much of
   the new version's share comes from the existing Fastpack (cannibalisation)?
3. Assume Fastpack Trail has a unit cost of [USD ___] and the same selling costs. At what unit cost does offering both
   versions earn more contribution than Fastpack alone?
4. The plain logit model says the new version takes share from every alternative in proportion to its share. Explain
   why that probably overstates the share it takes from Rival C and understates cannibalisation, and which model would
   do better.
5. Write the recommendation to the CMO in three sentences.

## Connections to other cards

<!-- Guidance: Use this list to plan what to read next and to link your study to the core course. -->

| Card | Connection |
|---|---|
| `mba/mba-pricing-card` | Core card this one builds on: value-based pricing, the markup rule; conjoint supplies the WTP and the demand curve |
| `mba/mba-demand-elasticity-card` | Logit elasticities are price elasticities of share; compare with elasticities from sales data |
| `mba/mba-stp-positioning-card` | Core card on targeting and positioning; conjoint measures the needs that define segments |
| `mba/mba-segmentation-clustering-card` | Clustering individual part-worths into needs-based segments |
| `mba/mba-brand-equity-card` | Brand part-worth in money as a measure of customer-based brand equity |
| `mba/mba-new-product-diffusion-card` | Conjoint sets the design and price; diffusion forecasts how fast the market adopts |
| `mba/mba-marketing-experiments-card` | Field price tests validate what the conjoint simulator predicts |
| `mba/mba-marketing-analytics-guide` | The elective as a whole and its session plan |
| `mba/mba-regression-for-managers-card` | Dummy variables and reading coefficients, used in the ratings model |
| `academic/stats-logistic-regression`, `academic/stats-estimation-mle` | Logit and maximum likelihood in depth |
| `academic/stats-experiment-design` | Factorial and fractional designs behind conjoint tasks |

## Common mistakes and misconceptions

<!-- Guidance: Tick the mistakes you have made in a problem set. Each one has cost real firms money. -->

1. **Treating importance as a property of the attribute.** Importance depends on the range of levels tested. A study
   with prices from USD 160 to USD 170 will "find" that price does not matter.
2. **Reading shares of preference as market shares.** The simulator assumes full awareness and availability; adjust
   for both before forecasting volume, and calibrate to real sales where they exist.
3. **Maximising share instead of profit.** The share-maximising price is the lowest price tested. Add costs and
   maximise contribution (Step 6).
4. **Ignoring heterogeneity.** An average WTP of USD 25 can hide a third of runners at USD 60 and the rest at USD 7.
   Use hierarchical Bayes or latent class estimates for pricing and segmentation decisions.
5. **Trusting IIA.** The plain logit model lets a new product steal from every rival in proportion to its share, even
   when it is a near copy of one of them. Use heterogeneous models for line extensions and close substitutes.
6. **Unrealistic levels or combinations.** A 450 g pack at USD 95 that no firm could make teaches respondents to ignore
   price; prohibited or implausible combinations distort part-worths.
7. **Too many attributes in one task.** Beyond about 6 to 8 attributes in a full profile, respondents start to use
   simple rules (pick the cheapest, pick the brand they know) and the compensatory model breaks down.
8. **Calling a WTP a price.** WTP is what the average respondent would trade in the study; the right price also depends
   on rivals, costs and the distribution of WTP across customers.
9. **No "none" option in a pricing study.** Without it, the model cannot tell you that some customers leave the
   category when every price rises.
10. **Skipping validation.** Hold out two or three tasks per respondent and check the hit rate before presenting any
    simulation.

## Self-test questions

<!-- Guidance: Answer on paper, then check the answer key. Write every miss in mba/mba-error-log with the reason. -->

1. Why does conjoint ask respondents to evaluate whole products instead of asking them how important each feature is?
2. In R-017's ratings study, show how the importance of the guarantee (17.2%) is computed.
3. In the CBC model the 3-year guarantee has a part-worth of 0.5095. What would its WTP be if the price coefficient
   were -0.0255 instead of -0.0201? Why does a more price-sensitive sample value the same feature less in money?
4. Three alternatives have utilities 0, -0.5 and -1.0. Compute their logit shares.
5. Explain the independence of irrelevant alternatives with a product example of your own.
6. What does the "none" option add to a choice-based pricing study?
7. Give two reasons a simulator share of 39.6% does not mean Fastpack will win 39.6% of the market.
8. Compute the own-price elasticity of Fastpack's share at USD 165 from $\beta_{\text{price}} = -0.0201$ and a share
   of 0.396.
9. A study has four attributes with 3, 3, 2 and 3 levels. How many profiles are in the full factorial, and why do
   most studies use a fraction of them?
10. What is hypothetical bias in conjoint, and name one design that reduces it.
11. Why are individual-level part-worths better segmentation variables than demographics?

## My notes and next steps

<!-- Guidance: Keep this short and dated. Note what you would do differently in your own study. -->

| Date | Note | Next step |
|---|---|---|
| YYYY-MM-DD | *Example:* I can rebuild the simulator and the profit curve in Excel | Run hierarchical Bayes on a class data set |
| YYYY-MM-DD | [What still confuses me] | [Question for office hours] |

## Sources and further reading

<!-- Guidance: Cite the primary work when you use a method in an assignment. Textbooks are named for further reading only. -->

- Luce, R. D. and Tukey, J. W. (1964). Simultaneous conjoint measurement: a new type of fundamental measurement.
  *Journal of Mathematical Psychology*, 1(1), 1-27.
- Luce, R. D. (1959). *Individual Choice Behavior: A Theoretical Analysis*. Wiley.
- Green, P. E. and Rao, V. R. (1971). Conjoint measurement for quantifying judgmental data. *Journal of Marketing
  Research*, 8(3), 355-363.
- Green, P. E. and Srinivasan, V. (1978). Conjoint analysis in consumer research: issues and outlook. *Journal of
  Consumer Research*, 5(2), 103-123.
- Green, P. E. and Srinivasan, V. (1990). Conjoint analysis in marketing: new developments with implications for
  research and practice. *Journal of Marketing*, 54(4), 3-19.
- McFadden, D. (1974). Conditional logit analysis of qualitative choice behavior. In P. Zarembka (ed.), *Frontiers in
  Econometrics*, 105-142. Academic Press.
- Louviere, J. J. and Woodworth, G. (1983). Design and analysis of simulated consumer choice or allocation
  experiments: an approach based on aggregate data. *Journal of Marketing Research*, 20(4), 350-367.
- Allenby, G. M. and Rossi, P. E. (1998). Marketing models of consumer heterogeneity. *Journal of Econometrics*,
  89(1-2), 57-78.
- Ding, M., Grewal, R. and Liechty, J. (2005). Incentive-aligned conjoint analysis. *Journal of Marketing Research*,
  42(1), 67-82.
- Textbooks (further reading, by name only): Orme, *Getting Started with Conjoint Analysis*; Rossi, Allenby and
  McCulloch, *Bayesian Statistics and Marketing*; Lilien, Rangaswamy and De Bruyn, *Principles of Marketing
  Engineering and Analytics*.
- Open resource: Train, K. E., *Discrete Choice Methods with Simulation*, 2nd edition (Cambridge University Press,
  2009). As of October 2026 the author's Berkeley page (https://eml.berkeley.edu/books/choice2.html) offers the chapters
  as free PDFs for personal research and study; any other use needs the publisher's permission.

## Answer key

<!-- Guidance: Check only after writing your own answers. For each miss, write down why your first answer was wrong. -->

**Worked example B.** (1) Rival A's utility $= -1.7770$, $e^{V}$ = 0.1691; sum of $e^{V}$ = 0.4879; shares: Fastpack
31.4%, Rival A 34.7%, Rival C 19.8%, none 14.1%. Fastpack sells $20{,}000 \times 0.3137 =$ 6,274 packs and earns
$6{,}274 \times 81.40 =$ USD 0.511m, down from 7,915 packs and USD 0.644m. (2) Fastpack to Rival C is
$0.1530/0.0968 = 1.58$ before and after: under IIA a change to Rival A leaves the ratio of the others unchanged. In
reality Rival A's new guarantee should hurt Fastpack (which also offers one) more than Rival C, so the plain logit
probably understates Fastpack's loss. (3) Not by itself: the cut from USD 165 to USD 159 adds only USD 0.002m
(0.513 against 0.511) and invites a price war. Better options are to defend on the attributes where Fastpack leads
(450 g, durability story), to build brand credibility with runners, and to re-run the simulation with a heterogeneous
model before deciding.

**Exercise C (parts 1 and 2).** (1) Utility of Fastpack Trail $= 0.4497 + 0.5095 - 0.0201 \times 145 = -1.9553$;
as a replacement its share is 37.7% (Rival A 18.1%, Rival C 25.8%, none 18.4%). (2) With both versions: Fastpack
29.0%, Fastpack Trail 26.8%, Rival A 12.9%, Rival C 18.3%, none 13.1%; combined Northfield share 55.8%, up from
39.6%, so 16.2 points are new and 10.6 points of Fastpack's share moved to the new version. Parts 3 to 5 are for your
own work.

**Self-test.**

1. People cannot report the weights they use reliably: they say everything matters. Choices or ratings of whole
   products force trade-offs and reveal the weights indirectly, which is the idea of conjoint measurement.
2. Ranges: weight 4.5000, guarantee 1.5556, price 3.0000; $1.5556/(4.5000 + 1.5556 + 3.0000) = 1.5556/9.0556 = 17.2\%$.
3. $0.5095/0.0255 =$ USD 19.98. Each util is worth fewer dollars when a dollar costs more utility, so the money value of
   the same preference falls.
4. $e^0 = 1$, $e^{-0.5} = 0.6065$, $e^{-1} = 0.3679$, sum 1.9744: shares 50.6%, 30.7% and 18.6%.
5. Example: a market with a car (share 50%) and a red bus (50%). Add a blue bus identical to the red one. IIA keeps the
   car to red-bus ratio at 1:1, so the logit predicts 33% each, while common sense says the car keeps 50% and the two
   buses split 50%.
6. It lets respondents leave the category, so the model can show demand falling when all prices rise, and it reduces
   the pressure to choose a product the respondent would never buy.
7. Any two of: not every runner is aware of Fastpack; not every runner can find it in a store or online; hypothetical
   bias; the aggregate logit ignores heterogeneity and IIA effects; rivals will respond.
8. $-0.0201 \times 165 \times (1 - 0.396) = -2.00$.
9. $3 \times 3 \times 2 \times 3 = 54$ profiles. Too many for one respondent; a fractional (orthogonal or efficient)
   design estimates the main effects with far fewer profiles or tasks.
10. Respondents state preferences without paying, so they tend to overstate WTP and understate price sensitivity.
    Incentive alignment (a real chance of receiving the chosen product at the stated price, as in Ding, Grewal and
    Liechty 2005), realistic tasks and a "none" option reduce it.
11. They describe the trade-offs that drive purchase, so segments built on them differ in their response to product
    and price, which demographic segments often do not.

## Revision history

<!-- Guidance: Add a row each time you change the design, the sample or the conclusions. -->

| Version | Date | Author | Change summary |
|---|---|---|---|
| 0.1 | YYYY-MM-DD | [Your name] | First draft from the template |
| 0.2 | YYYY-MM-DD | [Your name] | *Example:* Added hierarchical Bayes estimates and two holdout tasks |

## Standard and licence note

Based on conjoint measurement (Luce and Tukey 1964), its marketing applications (Green and Rao 1971; Green and
Srinivasan 1978, 1990), random utility and logit choice models (Luce 1959; McFadden 1974; Louviere and Woodworth 1983)
and later work on heterogeneity and incentive alignment (Allenby and Rossi 1998; Ding, Grewal and Liechty 2005). The
text, data, code and exercises are original and fictional; no textbook, published case or course material was copied
or paraphrased. This template is not affiliated with or endorsed by any business school, publisher, author or
software vendor. Check the current documentation of your software before you rely on a specific output layout.
Template licence: MIT.
