Conjoint analysis is one of the most powerful market research techniques available to researchers today. It helps you understand exactly how consumers make trade-off decisions between product features.
However, many SPSS users do not realise that conjoint analysis SPSS syntax is the only way to run this procedure. There is no graphical user interface (GUI) for it. You must enter the CONJOINT command directly into a syntax window and execute it manually.
Therefore, this tutorial walks you through every stage – from generating the orthogonal design to interpreting utility scores – with clear syntax examples at each step.
Whether you are studying consumer preferences, designing surveys, or conducting academic research, mastering conjoint analysis SPSS syntax will unlock a level of analytical depth most researchers never reach.
What Is Conjoint Analysis?
Conjoint analysis is a market research tool for developing effective product design. Using it, researchers can answer questions such as: What product attributes matter most to the consumer? Which combination of features drives the highest preference?
The core idea is simple but powerful. Instead of asking respondents which single feature they prefer, conjoint analysis asks them to evaluate complete product profiles. Each profile contains multiple attributes at the same time.

For example, imagine evaluating an airline ticket. You might choose between a cramped seat at $225 with a direct flight, or a spacious seat at $800 with a layover. Each option involves a trade-off. Conjoint analysis captures exactly how respondents weigh those trade-offs against each other.
Running conjoint analysis in IBM SPSS Statistics is only available via SPSS syntax, making it essential to understand every subcommand before you begin. For researchers already comfortable with SPSS, exploring what data analysis tools are available helps contextualise where conjoint fits within the broader analytical toolkit.
The Three Stages of Conjoint Analysis in SPSS
There are three stages to running a conjoint analysis procedure in SPSS:
- Generate an orthogonal array – create a manageable sample of product profiles that efficiently captures the main effects of each attribute
- Collect responses – respondents rate or rank each profile card based on their preferences
- Run the CONJOINT command – calculate utility (part-worth) scores for each attribute level
Each stage depends on the one before it. Therefore, follow this sequence carefully. Skipping or rushing any stage will produce invalid results.
Stage 1: Generate an Orthogonal Design
What Is an Orthogonal Array?
When you have multiple product attributes and several levels for each, the total number of possible combinations explodes very quickly. Asking respondents to evaluate all combinations is impractical.
To solve this, conjoint analysis uses a fractional factorial design. The resulting set, called an orthogonal array, captures the main effects for each factor level using only a fraction of all possible combinations. Interactions between factor levels are assumed to be negligible.
The Generate Orthogonal Design procedure creates an orthogonal array and is typically the starting point of a conjoint analysis.
Steps to Generate the Design
From the SPSS menu, go to Data > Orthogonal Design > Generate. Then:
- Enter a Factor Name for each attribute (e.g. package, brand, price, seal, money). Factor names can be any valid variable name, except status_ or card_.
- Click Add after entering each factor and its label.
- Click Define Values to assign numeric codes and labels to each level of the factor.
- In the Data File group, create a new dataset or save to an external .sav file.
- Set a Random Number Seed to ensure the design is reproducible. For example, entering 2000000 allows you to reproduce the exact same design in future sessions.
- Click Options to specify the minimum number of cases and add holdout cases.
What Are Holdout Cases?
Holdout cases are judged by the subjects but are not used when the Conjoint procedure estimates utilities. Instead, they serve as a check on the validity of the model. They are generated from a separate random plan, not from the main orthogonal design, and do not duplicate any experimental profiles.
This is an important quality check. In many conjoint analyses, the number of parameters is close to the number of rated profiles, which can inflate correlations artificially. Holdout correlations therefore, give a more realistic measure of model fit.
Once the design is saved, you can display it using Data > Orthogonal Design > Display to produce formatted profile cards for presenting to respondents.
If you are collecting data for this stage through structured surveys, see our guide on market research surveys for best practices on designing effective data collection instruments.
Stage 2: Collect and Prepare Your Data
Three Methods of Data Recording
Once respondents evaluate the profile cards, you record their responses in one of three ways. The method you choose determines which subcommand you use in your conjoint analysis SPSS syntax.
- SEQUENCE – The respondent sorts profiles from most to least preferred. Each data point is a profile number in preference order.
- RANK – The respondent assigns a rank to each profile (1 = most preferred). Each data point is the rank of a specific profile.
- SCORE – The respondent assigns a score to each profile (e.g. 1–100). Each data point is the score for a specific profile.
You must specify one, and only one, of these subcommands in every CONJOINT command.
Typical Sample Sizes
The sample size in commercial conjoint studies usually ranges from 100 to 1,000, with 300 to 550 being the most typical range for commercial studies. Smaller academic studies often use fewer than 100 respondents, but the sample should always be large enough to ensure reliability.
Preference data should be stored in a separate .sav file from the plan file. For example, your plan file might be named carpet_plan.sav, and your preference data file might be named carpet_prefs.sav.
Before running the analysis, ensure your dataset is clean and complete. Read our detailed guide on how to delete missing data in SPSS to prepare your preference data properly before running the syntax.
Stage 3: Running the Conjoint Analysis SPSS Syntax
Opening the Syntax Window
A graphical user interface is not available for the Conjoint procedure. To run it, you must go to File > New > Syntax in SPSS to open a syntax window. Type your CONJOINT command there, highlight it, and click the Run button (the right-pointing triangle on the toolbar).
The Minimal CONJOINT Syntax
The Conjoint procedure requires two files – a plan file and a data file – along with one data recording subcommand. The minimal specification looks like this:
CONJOINT PLAN=’CPLAN.SAV’
/DATA=’RUGRANKS.SAV’
/SEQUENCE=PREF1 TO PREF22.
Here, CPLAN.SAV is your plan file containing the orthogonal design, and RUGRANKS.SAV is your preference data file. PREF1 TO PREF22 identifies the preference variables covering all 22 profiles.
You can also use an asterisk (*) to indicate the active dataset in place of a filename. For example:
CONJOINT PLAN=’CPLAN.SAV’
/DATA=*
This uses the currently open dataset as the preference data. However, you cannot use the asterisk for both the plan file and the data file simultaneously.
The SUBJECT Subcommand
If your data file contains multiple respondents, you must use the SUBJECT subcommand to identify each one. Without it, SPSS assumes all cases belong to a single subject.
CONJOINT PLAN=*
/DATA=’RUGRANKS.SAV’
/SCORE=SCORE1 TO SCORE22
/SUBJECT=ID.
Here, the variable ID identifies each respondent. This is essential for computing individual-level utility scores and averaging importance values across subjects.
The FACTORS Subcommand
The FACTORS subcommand specifies the model describing the expected relationship between each factor and the respondent’s scores or rankings. If you omit this subcommand, SPSS applies the DISCRETE model to all factors by default.
Four model types are available:
- DISCRETE – Factor levels are categorical. No assumption is made about the relationship with preference. This is the default model.
- LINEAR – An expected linear relationship exists between the factor and preference. Add MORE (higher values preferred) or LESS (lower values preferred) to flag direction violations.
- IDEAL – A quadratic relationship is expected. There is an ideal level, and preference decreases as values move away from it. Requires at least three levels.
- ANTIIDEAL – A quadratic relationship is expected. There is a worst level, and preference increases as values move away from it. Also requires at least three levels.
Here is an example from the carpet-cleaner study:
CONJOINT PLAN=*
/DATA=’RUGRANKS.SAV’
/RANK=RANK1 TO RANK22
/SUBJECT=ID
/FACTORS=PACKAGE BRAND (DISCRETE)
PRICE (LINEAR LESS)
SEAL (LINEAR MORE)
MONEY (LINEAR MORE).
In this example, PACKAGE and BRAND are categorical with no assumed direction. PRICE uses a LINEAR model with LESS, meaning lower prices are expected to be preferred. SEAL and MONEY use LINEAR with MORE, since respondents prefer the presence of a Good Housekeeping seal and a money-back guarantee.
Specifying MORE or LESS does not change the coefficient estimates. These keywords simply identify respondents whose preferences contradict the expected direction – these are called reversals.
For a deeper understanding of how SPSS handles variable relationships in analysis, explore our guide on correlation vs regression analysis. The FACTORS models in conjoint analysis are conceptually related to regression model specification.
The PRINT Subcommand
The PRINT subcommand controls the content of your tabular output.
CONJOINT PLAN=*
/DATA=’RUGRANKS.SAV’
/RANK=RANK1 TO RANK22
/SUBJECT=ID
/PRINT=SUMMARYONLY.
Using SUMMARYONLY suppresses per-subject detail and shows only group-level results. This is useful when you have a large number of respondents and do not need individual-level tables.
You can also specify SIMULATION to include results for simulation cases:
/PRINT=SIMULATION SUMMARYONLY.
The PLOT Subcommand
By default, no plots are produced. Add the PLOT subcommand to include utility score charts and importance value plots:
/PLOT=ALL.
This generates both summary and subject-level plots, giving a complete visual picture of your conjoint results.
The UTILITY Subcommand
The UTILITY subcommand writes a separate .sav file containing detailed subject-level information. This includes utilities for DISCRETE factors, slope and quadratic coefficients for LINEAR, IDEAL, and ANTIIDEAL factors, the regression constant, and estimated preference scores.
CONJOINT PLAN=*
/DATA=’RUGRANKS.SAV’
/RANK=RANK1 TO RANK22
/SUBJECT=ID
/UTILITY=’RUGUTIL.SAV’.
This utility file can be used in further analyses, such as cluster analysis for market segmentation, or plotted using other SPSS procedures. For cluster-based segmentation after conjoint, see our guide on what is cluster analysis in data mining.
Complete Example: Carpet-Cleaner Conjoint Syntax
Here is the full conjoint analysis SPSS syntax from the classic carpet-cleaner example, which studies five attributes: package design, brand name, price, Good Housekeeping seal, and money-back guarantee.
CONJOINT PLAN=’carpet_plan.sav’
/DATA=’carpet_prefs.sav’
/SEQUENCE=PREF1 TO PREF22
/SUBJECT=ID
/FACTORS=PACKAGE BRAND (DISCRETE)
PRICE (LINEAR LESS)
SEAL (LINEAR MORE)
MONEY (LINEAR MORE)
/PRINT=SUMMARYONLY.
Ten respondents each ranked 22 profile cards. The SEQUENCE subcommand identifies that data were recorded as ranked profile IDs, from most to least preferred. The SUMMARYONLY option produces clean group-level output without individual subject tables.
Interpreting the Conjoint Output

Utility Scores (Part-Worths)
The primary output of conjoint analysis SPSS syntax is the utility score table. Each factor level receives a part-worth – a number representing the relative preference contribution of that specific level.
Higher utility values indicate greater preference. Since all part-worths are expressed in a common unit, you can add them together to calculate the total utility of any product combination. For example, adding part-worths for specific levels of package, brand, price, seal, and money – plus a regression constant – gives you the predicted overall preference for that product configuration.
Relative Importance Values
Importance values show which factors drove the most variation in preference. They are calculated by dividing each factor’s utility range by the sum of all factors’ utility ranges. The result is a set of percentages that sum to 100.
In the carpet-cleaner study, package design had the highest importance, meaning the difference between the most and least preferred packaging had the greatest impact on overall preference. Price played a significant but secondary role.
Note that when a SUBJECT subcommand is used, importance values are calculated per subject and then averaged. This average will not necessarily match importances computed directly from summary utilities.
Correlations and Reversals
The output also includes Pearson’s R and Kendall’s tau, measuring correlation between observed and estimated preferences. Kendall’s tau for holdout profiles provides a model validity check.
Reversals show how many subjects preferred the opposite of the expected direction for LINEAR factors. For example, if three subjects preferred higher prices, those are flagged as reversals for the PRICE factor.
For a broader understanding of correlation statistics in SPSS, explore our article on what is correlation analysis in statistics for the foundational context behind these output metrics.
Running Simulations
One of the most valuable features of conjoint analysis is simulation. After estimating utilities, you can predict preference probabilities for product profiles that were never actually shown to respondents. These are called simulation cases.
To add simulation cases, open your plan file in the Data Editor and enter new rows. Set the STATUS_ variable to Simulation and assign a unique CARD_ identifier. Then re-run the same CONJOINT syntax – the output automatically includes simulation results.
The CONJOINT procedure provides three probability models for simulations: the Maximum Utility model, the Bradley-Terry-Luce (BTL) model, and the Logit model. Each estimates the probability that a given simulation profile would be chosen over the alternatives. Together, they give a robust picture of competitive market share predictions.
For practitioners working with survey-based data going into simulation analysis, our guide on survey programming techniques covers how to design your data collection for seamless integration with conjoint analysis.
Common Mistakes in Conjoint Analysis SPSS Syntax
Avoid these frequent errors when writing and running your CONJOINT command:
- Omitting a data recording subcommand – You must always specify SEQUENCE, RANK, or SCORE. Missing this will cause a syntax error.
- Using the wrong factor model – Applying DISCRETE to a continuous variable like price misses the linear trend. Match your model to the nature of each factor.
- Forgetting the SUBJECT subcommand – Without it, SPSS assumes all cases belong to one respondent, which produces meaningless summary results.
- Not saving the plan file – The plan file is a required input. If it is not saved as a .sav file with valid file path references, the syntax will fail.
- Mixing SEQUENCE and RANK data – Make sure the recording method in your syntax exactly matches how respondents actually provided their responses.
- Skipping holdout validation – Always include holdout cases. Without them, you have no independent check on model validity.
To practise running conjoint analysis SPSS syntax on clean, structured data, download a practice dataset for SPSS and apply the carpet-cleaner example as a starting point.
Quick Reference: Key CONJOINT Subcommands
| Subcommand | Purpose | Required? |
| PLAN= | Specifies the plan file (.sav) | Yes |
| DATA= | Specifies the preference data file | Yes (unless active dataset) |
| SEQUENCE= | Data recorded as profile order | One of three required |
| RANK= | Data recorded as rankings | One of three required |
| SCORE= | Data recorded as preference scores | One of three required |
| SUBJECT= | Identifies the respondent ID variable | Recommended |
| FACTORS= | Specifies factor models (DISCRETE, LINEAR, etc.) | Optional |
| PRINT= | Controls tabular output content | Optional |
| PLOT= | Controls chart output | Optional |
| UTILITY= | Saves utility scores to a file | Optional |
Conclusion
Conjoint analysis SPSS syntax is a specialised but tremendously valuable skill. It gives researchers the ability to model consumer choice, predict product preferences, and guide strategic decisions about product design and marketing.
The process has three clear stages: generate an orthogonal design, collect ranked or scored preference data, and run the CONJOINT command in the SPSS syntax editor. Each stage builds directly on the previous one.
Moreover, the optional subcommands – FACTORS, PRINT, PLOT, and UTILITY – give you precise control over how results are modelled, displayed, and saved. Using them correctly separates a well-executed conjoint study from a poorly specified one.
Therefore, start with the minimal syntax structure, add subcommands methodically, and always validate your results using holdout case correlations. With practice, conjoint analysis SPSS syntax becomes a core tool in your research workflow.
Frequently Asked Questions
The CONJOINT procedure has no GUI. You must run it entirely through command syntax. Go to File > New > Syntax to open the syntax window, then type and run your CONJOINT command manually.
SEQUENCE records which profile the respondent chose first, second, third (most to least preferred). RANK records the rank number assigned to each profile. SCORE records a preference score assigned to each profile. The method you use depends on how you structured your data collection instrument.
That depends on the number of factors and levels in your design. The Generate Orthogonal Design procedure calculates the minimum number of profiles needed automatically. Holdout cases are added on top of that. In practice, 18–25 profiles are typical for studies with five or fewer factors.
Part-worths are utility scores calculated for each level of each factor. They represent the relative preference contribution of that specific level. Since all part-worths share a common unit, you can add them together to predict the total preference score for any product combination – including new profiles not tested in the original study.
Importance values show which factor had the greatest influence on overall preference. They are expressed as percentages and sum to 100. A higher percentage means that the attribute drove more variation in respondent preferences. For example, an importance value of 35% for price means price contributed more to preference differences than factors with lower importance scores.



