Getting the top levels from conjoint
The function topLevel
returns the top level(s) of an attribute for a specific respondent in the following research tools:
- Generic Conjoint
- Brand-Specific Conjoint
- MaxDiff Analysis
- Brand-Price Trade Off
- Claims Test
- Product Variant Selector
Usage: topLevel({attribute_id})
, where attribute_id
is the ID of the attribute from the conjoint.
Keep four things in mind when using this function:
- If you use this formula, it is best to keep its value in a calculated variable so that you can easily use it in analysis.
- When a respondents has multiple most preferred levels for an attribute, all of them will be shown in the piped text (separated by commas).
- The function only counts number of times a level was chosen (irrespective of the number of times it was shown). This allows it to work fast, but it may sometimes not reflect the most-preferred level for a respondent.
- When a respondents always chose “None of the above” in all conjoint sets, the function will be undefined and the respondent will see the emoji 🤷. To avoid that, it is recommended that questions that use this function are only displayed if its value is not undefined.
- The function is designed to only pipe in the name of the top level(s), not a specific translation or fancy formatted text. To display the top level(s) in different languages for a multi-language experiment, an IFS formula or monadic block can be used as workarounds.
Recommended usage when piping top levels to a follow-up question
For example, you can use this feature to include a follow-up Likert scale question after the conjoint exercise to gauge respondents’ purchase intent for a car model based on their most preferred attribute levels. Keep in mind that here:
- We saved the value of the top levels in calculated variables.
- The follow-up question is only shown if the value is not undefined.

Respondents will see their most preferred level(s) for each attribute based on the conjoint exercise in the Likert scale question:
Respondent view 1
Respondent view 2


Use IFS formula to pipe in top level(s) in certain language
This approach uses an IFS formula within a calculated variable to save the translated text of each level. For example, to pipe the top level(s) in French:
Build the IFS formula in a calculated variable: Create a calculated variable and use an IFS formula to map each level name to its translated text. For example, to specify the French translations, the formula would be: ifs((topLevel(‘Attribute 1’) == "Level A", "Niveau A", topLevel(‘Attribute 1’) == "Level B", "Niveau B", topLevel(‘Attribute 1’) == "Level C", "Niveau C"))
Set display logic: Set display logic of the calculated variable to only apply to respondents who see the survey in the corresponding language (French).

Use Monadic block to pipe in top level(s) in certain language
This approach uses a monadic block as a dynamic “lookup table” to display the top level(s) in the corresponding translation.
Create a Monadic block and define stimulus as translations: Add a monadic block to your survey. For each level within the monadic block, enter the translated text you want to display.
Set display logic for each stimulus: For each stimulus (level) in the monadic block, set display logic so it only appears if the respondent’s top-level result matches that specific level.
