Randomizer based on Specific Strata - Stratified Random Sampling | XM Community
Skip to main content

Hi all, looking to get help with this concern.
So I have a survey I need to create that has 5 survey blocks (10 items each). Beat 1-5. They need to be randomized based on a strata or several stratas.
image.pngI first created this randomizer so the population can get 1 of any.
The engagement team wants those 5 survey blocks to be randomized to the most granular level of our hierarchy which is the Team Lead, which is in our Qualtrics global directory.
Because of the setup right now, when we got our responses and checked the lowest hierarchy, there were gaps and not all were taken because there was no strata implemented. We can stratify using client, location, organization, because of the number of responses, but when we go to the most granular level, it has data gaps.
For example: I have one Team Lead with 27 associate responses, but none of them got the Beat 5.
Ideally, I want those 27 to randomly get Beat 1-5, and no gaps happen.
If it's less than 5, that's understandable if one Beat doesn't get answered.
----
I'm looking for the element that will randomize base on a participant data.
I'm trying embedded data, but no avail because we are using the Qualtrics Global Directory.
I was trying for a Branch If element, but it's asking for specific names, but I just want to use that designation as a reference for the randomizer.
Hope you can help with this.

Hi Nogstai,
Going by the wording on the Randomizer article, I suspect it aims to present elements evenly over the lifetime of the survey rather than per population. So if your randomization had previously been skewed in favour of Beat 5 while changing different variables, it's going to present Beats 1-4 until everything has evened out again. I can't confirm any of this, just a gut feeling.
If that's true I could think of a few options:

  • Run the survey a bunch of times with random dummy data, until the distribution evens out

  • Create a copy of the survey. Hopefully this resets the distribution.

  • [If you are sending the survey out to participants] Write a script to perform random stratified sampling at the desired level and include some logic to ensure there are no gaps. Include a column for the appropriate Beat choice. Import these newly sampled contacts into the survey, and use their Beat column to branch to the appropriate Beat.

Good luck!


https://community.qualtrics.com/XMcommunity/discussion/comment/51122#Comment_51122Appreciate the response! So I'm assuming there is no way to randomize based on specific metadata.
I wonder if there is a similar element or feature in the survey flow where the 5 separate blocks are taken based on the order when a survey is taken.
For example: Beat 1-5, 12 participants.
1st participant gets Beat 1, 2nd participant gets Beat 2, and so on, until 6th participant gets Beat 1 again, 10th participant gets Beat 5, and at the end 12th participant gets Beat 2.


I don't know how many teams you have, but you could create a branch for each team and put a duplicate of the randomizer under each branch. That would evenly distribute the blocks (beats) for each team.
Another approach would be to implement a least filled algorithm. You would keep counts of beats for each team based on survey completes (the counts could be quotas or in an external database). Then implement code (web service or JavaScript) to assign respondents to beats based on the least filled team beat count.


https://community.qualtrics.com/XMcommunity/discussion/comment/51242#Comment_51242Unfortunately, I have 4k teams, with different supervisors. My head went to that direction of creating a branch per supervisor, but it's just not feasible to do. That's the only solution, but it's not the best solution.
The second paragraph sounds interesting and might work, I just don't know how to start.



https://community.qualtrics.com/XMcommunity/discussion/comment/51243#Comment_51243With 4K, I would do least filled with an external database and two web services - one to do assignment and one to update complete counts. You need a webserver with a database (e.g., mySQL). Upload a list of all the teams to a database table, write web service scripts, add web service calls to survey flow, and use returned embedded data in branch logic.


Leave a Reply