How to Counterbalance in Qualtrics without Duplicating Questions

Counterbalancing is an experimental procedure to control for the effect of question order. This post shows you how to do it in Qualtrics without having to create duplicate questions.

The procedure is very simple. It involves creating an embedded data variable in the survey flow, and randomly assigning a value. This variable determines which question order your participant will see. Next, place each question in a separate block. Duplicate the blocks in the survey flow, and then specify which order to show using a branch in the survey flow. I’ll give more detail below.

1. Create an embedded data variable

Create an embedded data variable in the survey flow as shown here. Create as many separate embedded data elements as you have orders you would like to counterbalance. In this example, I have two orders I would like to counterbalance. So, I created two embedded data elements. I called both of the elements “counterbalance,” but I assigned each a different value. I used numerical values here, but it could be something else more descriptive such as a word.


Create a randomizer element and drag the embedded data variables under it, as I have done in the image. Set the randomizer to present only one of the elements, evenly. This is true no matter how many orders you have, as participants will be assigned only one of the orders.

2. Create each question in a separate block

Create each question in a separate block. In this example, only the presentation order of the blocks will vary between participants. Each participant will answer each question.

separate blocks

3. In the survey flow, duplicate the blocks

In the survey flow, duplicate the blocks containing the questions. Do this by clicking the “Duplicate” link in the lower right of the block element in the survey flow. Create as many copies as you have orders. This means if you are counterbalancing three orders, you need three copies of the block element for each question.

4. Create branch elements

Create one branch element in the survey flow for each order you wish to present. You will branch on the values of the embedded data variable you created. Below the branch element, drag the blocks in the order you wish to present to that counterbalance condition.


You are now ready to collect data, and analyze. You can use the variable “counterbalance” in your analysis to check for order effects. Additionally, you will not have to duplicate (i.e. cut and paste) any questions before completing your analysis.


  1. Thanks this is helpful, but won’t the number of permutations escalate as the number of questions increases?

    So for two questions there will only be 2 potential orders, but for 3 questions there will be 6 potential orderings (e.g. question 1 then question 2 then question 3, or 132, 213, 231, 312, 321) and for 4 questions there will be 24 potential orderings.

    This would mean you need to manually create 24 different orderings and drag and drop them for each ordering.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.