*MaxDiff Exercise

This article will show you how to program a Max Diff using a predetermined design file


The MaxDiff Exercise is widely used in the Market Research Industry. This exercise presents a number of attributes on a screen and asks the respondent to select the one he/she likes most and the one he/she likes the least. This same pattern is repeated over a number of screens with different sets of attributes on each screen. 

Follow the steps below to program your MaxDiff

Note: You can also redirect from your Cmix survey to an exercise housed in Sawtooth Software and come back to the Cmix survey. 

Step 1 - Understanding Your Design File

A 'Design File' is spreadsheet provided which contains the predefined combinations of attributes to be presented on each screen. Understanding its contents will be key to being able to set it up properly. Below is an example of a very basic 'Design File'. 

Though the columns are labeled, these items may be called something different. In general you have:

  • CELL or BLOCK (Column A) - This is the label given to the specific set of attributes and screens a respondent will evaluate. 
  • SCREEN or SCENARIO (Column B) - This refers to the specific screens the respondent will be shown
  • OPTIONs or ATTRIBUTEs (Columns C, D, E & F) - These are the specific items to be displayed based on the CELL and SCREEN 

In the example image there are 3 Cell's and each has 5 Screens. Each Screen has 4 Options to be evaluated. 

Step 2 - Adjusting Your File for Upload

Next you will adjust the provided 'Design File' for upload. 

  1. You will need to create a new file that has both the CELL and the SCREEN in the same cell making sure to delimit it with an underscore ("_"). You can call it "KEY". The following is a an Excel formula you can use to set this up: 
    • =concatenate(A2,"_",B2)
  2. You will also need to create a new column that contains a comma delimited list of all of the options. This will be used to create the order variable. You can call it "ORDER". 
  3. Your final spreadsheet will look like this: 
  4. Make sure to save this file as a .CSV file and save it in a place you can access easily
  5. Now you will upload the file to the 'Lookup' section in the question tree of the 'Build & Edit Tool'. 
  6. Once you are done uploading your lookup file you can move forward with the next step

Step 3 - Programming Your Intro & Cell Assignment

  1. The 'MaxDiff' Intro:
    1. Add a 'Section' in your survey where your 'MaxDiff' Introduction will appear.
    2. Add a page and a 'Static Element'. Then add your introductory text. 
    3. On the same page as the intro text, add a 'Numeric Fields' Question. You can call it 'TEST_CELL'. This will allow you to enter a CELL for testing purposes. 
      1. See article: Standard Question: Numeric Fields
      2. In the 'Overall Question Settings' update the following:
        1. See article: Overall Question Settings
        2. Update the question text so test respondents know this will not be seen by real respondents. 
        3. In the 'Skip Logic' section add the following formula so this question will only be seen while using the test link: TEST = "N" OR IS_SIMULATED
        4. In the 'Value Range' adjust the range to match the number of Cells in your exercise. In this case we have 5 so the range will be 1 to 5. 
    4. Now you will add a 'Concept' to control what Cell is seen by a respondent
      1. At the top of the question tree click on 'Concepts'. 
      2. Add a 'Concept' called "XCELL" and add a response list with the same number of 'Cells' as you have in your 'Design File'. You will use this to assign the CELL to the respondent. This 'Concept' can be conditionalized using logic or prioritized as needed (random, least fill, balance, list). 
        1. You will have 2 blocks. 
          1. The first will be only if TEST_CELL = "". You will not have to add anything additional in the block itself. This allows the system to assign a CELL as needed.  
          2. The second will be only if TEST_CELL >=1. In the block you will add the formula TEST_CELL=X. This allows the system to set the CELL to the one selected by the user in the TEST_CELL
      3. Create a 'Single Variable' called "CELL" and add a response list with the same number of 'Cells' as you have in your 'Design File'. This will be used to be able to cut the data if needed. Call this variable "CELL".
    5. Add a 'Logic Block Page' after the introduction. 
      • See article: Add a Logic Block Page
      • See article: Adding a Logic Block
      • Here you will add 2 logic blocks. 
        • The first to evaluate the "XCELL" Concept
        • The second to set the "CELL" variable to the value of "XCELL" 

Step 4: Programming Your MaxDiff Question

  1. Programming the MaxDiff
    1. Add a 'Section' in your survey after the 'MaxDiff' Introduction Section. This will only contain the 'MaxDiff' items because you will be adding a 'Concept Loop'. All of you other programming not tied to the 'MaxDiff' should be programmed in another section after the 'MaxDiff'. 
  2. Add a Simple Grid to this section. The 'Orientation' should be 'Vertical' and the 'Type' should be 'Radio'. Call this question "MD"
    • See article: Standard Question: Grid
    • Add your question text as needed
    • Add the full response list to the 'Rows' based on the coding of your 'Design File'
    • Add 2 columns. One for the "Most" and one for the "Least"
  3. Now you will add the 'Concept Loop'
    • Click on the 'Section Header' to open its settings
    • From the 'Section' settings click on the '+ New Concept' button 
    • Name the 'Concept' "SCREEN" and click 'Create' 
    • Use the 'Generate Concept' button to add the response list which corresponds with the number of screens each respondent will see. In this example there are 5 screens. 
    • In the 'Count Range' section make sure the min and max are both the total number of screens. In this case, 5. 
    • By default all the screens will be randomized but if you would like them to be displayed in order, make sure to select 'List' in the 'PRIORITIZE' section. This allows you to hard code the order (or screen in this case). Here you will enter '1...5'. This is the shorthand to denote a sequential list from 1 to 5. 
    • You can now close out of the 'Concept' card. You will also notice that you will now have 2 purple logic block pages before and after your MaxDiff question. Once we setup everything in the last step the system now knows this section will be iterated over based on your 'Concept'. 
  4. In the 'Variables' section of the question tree add a 'Single Variable' called 'MD_ORDER'. Make sure it does not have a response list. 
  5. Add a 'Logic Block Page' right before your MaxDiff question. 
    1. Add a logic block and make sure you leave the condition as 'Always'. 
    2. Then in the actions drop-down select 'Set Variable' and select your order variable, "MD_ORDER" in this case. 
    3. You will want to set this variable by 'Formula' and use the 'FILE_LOOKUP' syntax to set it based on the order column you created in your lookup file. In this case the formula will look this: 
      FILE_LOOKUP ( "MDFILE" , ( CELL . "_" . SCREEN_CURRENT ) , "KEY" , "ORDER" )
  6. Go into the MaxDiff question and update the Overall Question Settings. 
    1. Toggle on the Custom Row Order and select 'Variable Value' and select the variable you created in the last step, 'MD_ORDER'. 
    2. Toggle on the 'Filter Rows' option and type in the following formula based on how many items you have appearing using the 'FILE_LOOKUP' formula syntax:
      FILE_LOOKUP ( "MDFILE" , ( CELL . "_" . SCREEN_CURRENT ) , "KEY" , "A1" ) != X AND FILE_LOOKUP ( "MDFILE" , ( CELL . "_" . SCREEN_CURRENT ) , "KEY" , "A2" ) != X
      1. See article: Formula: FILE_LOOKUP
  7. You will then need to add a 'Custom Validation' to make sure the same items is not selected in both columns. 

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.

Still need help? Contact Us Contact Us