Documentation

Setting Up A Conjoint Study

Conjoint analysis quantifies the tradeoffs respondents make across product attributes — brand, price, configuration, packaging — by asking them to choose between competing concepts. In MX8, the recommended way to set one up is the Conjoint Planning Tool: you design attributes and levels in the tool, paste its output into your survey alongside the screener and any other questions, and the platform handles the rest.

How conjoint analysis works

Conjoint studies decompose a product or proposition into attributes and levels, build a set of tasks from combinations of those levels, ask respondents to choose between alternatives, and then back out how much each level contributes to overall preference. The standard arc is:

  1. Define attributes and levels. Identify the dimensions you want to test and the values each can take. For a smartphone, attributes might be brand, price, battery life, and screen size, with several levels each.
  2. Design the task sets. Generate combinations of levels into competing concepts, organised into balanced task sets. Use an efficient experimental design so the data is statistically tractable.
  3. Collect responses. Each respondent works through their assigned task set, choosing one concept per task.
  4. Estimate utilities. Fit a statistical model that estimates a part-worth utility for each attribute level — how much that level contributes to overall preference. In MX8 this runs natively after fielding closes; see Utility and simulated share methodology.
  5. Apply the results. Use the utilities to guide product configuration, pricing decisions, messaging emphasis, and share-of-preference simulations across competitive scenarios.

Why use conjoint analysis

  • Customer-driven product design. Surface which attributes and levels move preference, so design and feature decisions are grounded in evidence rather than internal opinion.
  • Pricing strategy. Quantify how price sensitivity varies with the rest of the product configuration, so you can identify the points that maximise perceived value.
  • Market segmentation. Different segments often weight attributes differently; respondent-level utilities make those patterns visible.
  • Competitive positioning. Modelling utilities across competitors' configurations shows where your product is differentiated and where it isn't.
  • Demand forecasting. Simulate share of preference across hypothetical market scenarios to estimate how a new configuration would perform against existing competitors.

The recommended workflow

The fastest path from "I want to run a conjoint study" to a fielded survey:

  1. Design the study in the Conjoint Planning Tool. Open the Conjoint Planning Tool and enter your attributes and levels. The tool sizes the concept pool, generates balanced task sets, and produces a code block ready to drop into a survey.
  2. Paste the output into your survey. In the survey editor, paste the generated block alongside your screener and any other questions (consent, segmentation, follow-up). The platform reads the concept pool and task-set structure directly — no manual configuration of attributes, task assignment, or balancing required.
  3. Field the survey. When the survey runs, the platform assigns one task set per respondent using least-fill balancing, so per-task-set exposure stays roughly even across the fielding. Each task is presented to the respondent as a select question — a single-choice pick from the concepts in that task.
  4. Read the results. Hierarchical Bayes runs automatically the moment fielding closes. Utility scores and simulated share-of-preference are available as cross-tab styles in your reports immediately; see Choice-Based Conjoint for the report-side details.

Bayesian reporting

CBC supports model-based reporting in cross-tabs: utility scores (how strongly each attribute level drives choice) and simulated share (the predicted share of respondents who would pick each option). For the estimator, weighted aggregation, exports, and uncertainty methodology, see Utility and simulated share methodology.

Programmatic alternative

If you'd rather build the conjoint block in code — for example because you're scripting many studies at once, you need unusual conditional logic around the conjoint section, or you're managing concepts from an external system — use the conjoint_question method directly. The Planning Tool's output is itself a conjoint_question call, so this is the same API in less convenient form:

from survey import Survey

s = Survey(**globals())

concepts = [
    {"id": "A", "brand": "Apple",   "color": "Black",  "network": "5G", "price": "$800"},
    {"id": "B", "brand": "Apple",   "color": "Blue",   "network": "5G", "price": "$1000"},
    {"id": "C", "brand": "Samsung", "color": "Black",  "network": "4G", "price": "$600"},
    {"id": "D", "brand": "Samsung", "color": "Silver", "network": "5G", "price": "$800"},
]

task_sets = {
    "TS001": [["A", "C"], ["B", "D"], ["A", "D"], ["B", "C"]],
    "TS002": [["A", "B"], ["C", "D"], ["A", "C"], ["B", "D"]],
}

s.conjoint_question(
    question="Which product would you choose?",
    concepts=concepts,
    task_sets=task_sets,
    required_tags=["brand", "color", "network", "price"],
    randomize=True,
)

s.complete()

See Choice-Based Conjoint for the end-to-end walkthrough and the conjoint_question reference for the full API.