When To Use Experimental Conditions
Experimental conditions let you assign respondents to treatment arms, control arms, information treatments, survey branches, or study paths. In Domandata, condition sets support randomized and rule-based assignment for academic survey experiments and social science research designs.
Flow: Conditions and Routing
Use conditions when different respondents should see different blocks, when an experiment needs random assignment, or when assignment depends on a previous answer or variable. For a study-level guide, see Online Survey Experiments.
When a branch is linked to a Flow value, Domandata keeps its exact-match rules aligned with the value's known options. If those options change, the branch and Values summary show Needs sync; sync the branch after reviewing the new paths. Existing canvas connections stay attached to their arm positions.
Create A Condition Set
Step 1: Build the blocks first. In Block Builder, create the blocks for the control arm, treatment arms, outcomes, and end screens.
Step 1: Add blocks in Block Builder
Step 2: Open Flow. Select the Flow tab in the survey editor after the block list is mostly stable.
Step 2: Open Flow canvas
Step 3: Add a branch. In the Branches section, select Add Branch and name it after the design decision it controls, such as Main Experiment, Message Treatment, or Eligibility Path.
Step 3: Add and name a condition set
Step 4: Set the number of arms. Add the conditions you need and name each arm clearly, such as Control, Treatment A, and Treatment B.
Step 4: Set condition arms
Step 5: Choose assignment rules. Set random percentages, stratification, or by-variable assignment before connecting the paths; check Sample Allocation Across Condition Arms if cell size matters.
Step 5: Choose assignment rules
Step 6: Connect each arm. Route every condition to the block respondents should see next, including fallback paths; use Branching and Skip Logic for more complex routes.
Step 6: Connect condition arms to blocks
Choose An Assignment Mode
- Random Assignment assigns respondents to arms using weighted-random probabilities. Use equal splits for simple experiments or custom percentages for planned unequal allocation. A Balance arm sizes toggle chooses whether that draw is even (block/balanced — guaranteed to converge on the target split as data comes in) or random (independent — matches the target only on average). See How Randomization Works.
- Stratify by variable keeps random assignment balanced within groups defined by a variable, such as country, party, gender, school, or quota status. The same Balance arm sizes within each group toggle is available per group; it claims lazily, once the blocking variable's value is known for that respondent, since the group cannot be balanced before it is known.
- By Variable assigns respondents deterministically based on a survey answer or variable that appears earlier in the flow.
Block Builder: Multiple Choice (By Variable Source)
Use Conditions With Question Types
Many research survey question types can feed assignment logic. Use Multiple Choice or Dropdown questions for discrete assignment, Slider or Text Response questions for numeric ranges, and Grid Matrix questions for repeated measures. Use conjoint analysis survey design questions when the experimental task itself is a randomized preference design, or a vignette experiment when respondents should react to one profile.
By Variable rules can also read answers from Constant Sum, MaxDiff, Card Sort, Text Highlighter, Tree Test, Heatmap zones, Reaction Time (mean milliseconds), audio, File Upload, and Signature questions. The value box lists the values each type produces. See Branching and Skip Logic for what each one records.
A By Variable branch can also use a Flow value, including a copied, recoded, random, or Highest Value Count result. Recoded answer sources expose their recoded labels to the branch editor, so the labels you choose are the values used at runtime. Python rules run securely on the server against the selected source answer; write result = True when that arm should match. Flow values cannot depend on themselves or form a circular chain.
If a linked value branch loses its finite option pool (for example, because its source becomes open-ended or is removed), it is marked Needs sync so you can review the paths instead of silently keeping stale rules.
Block Builder: Question Type
Preview And Protect The Design
Preview every major path before publishing. Confirm that each arm reaches the correct block, that random assignment percentages total 100 percent, that by-variable sources appear before the split, and that fallback arms behave as expected.
If each arm needs a target number of completed responses, add quotas in Deploy. See Set Survey Quotas. For planning expected n by arm, see Sample Allocation Across Condition Arms.
Preview: Walk Each Arm