Skip to content

GUIDES7 MIN READ

A/B experiments inside a survey.

The moment you want to say 'the message changed what people chose' rather than 'people who saw different messages chose differently', you need random assignment — each participant placed in a condition by chance, not by anything about them. The statistics are old and settled; what trips people up online is the plumbing. This guide covers where the assignment should happen, how conditions drive what each participant sees, and the audit trail your analysis needs.

01Why assignment placement matters

Random assignment is doing one job: making your groups exchangeable— identical in expectation on everything you didn't manipulate, including everything you never measured. Every causal claim from the experiment rests on that property, which means it rests on the assignment being genuinely random and genuinely one-per-participant.

The common DIY approaches leak. Assigning by day (“Monday participants get version A”) confounds condition with time and whoever is online on Mondays. Publishing two survey links confounds it with however the links were distributed — and lets one link get shared more than the other. Letting the browser pick with Math.random() on page load re-rolls on every refresh, so a participant who reloads can land in a second condition, and a curious one can farm versions.

The clean pattern: one link, assignment made server-side at the moment the survey loads, sticky for that participant's session, recorded with the response. The participant can refresh, go back, or resume; the condition stays put and the row in your data says which arm they saw.

02Making the condition do something

Assignment is only half the mechanism; the survey has to change based on it. The standard tool is the survey's own branching logic with the condition as a variable: if condition is “treatment”, show the treatment vignette page; if “control”, show the control page; everyone converges on the same outcome questions afterward.

Keep the arms structurally identical everywhere you are not manipulating: same number of pages, same outcome questions in the same order, same length within reason. Any difference between arms that isn't your manipulation is a confound you built yourself — if the treatment arm is five minutes longer, fatigue is now part of the treatment.

In Plumeform this is one settings block: name 2–6 arms, and each respondent draws one server-side. The arm is available to logic rules as Condition arm (branch pages and questions on it like any answer), it survives refreshes and resumes, and a spoofed ?condition=on the link is ignored — the server's draw always wins.

03The audit trail your analysis needs

At analysis time you need, for every response, which condition it was assigned — not inferred from which questions have answers, but recorded as its own column. Inferring breaks the moment two arms share most questions, and it silently miscodes partial responses. Insist on a condition column in results and in every export, and check the split early: with 2 arms and a few hundred participants, anything wildly far from 50/50 means the plumbing is broken, not that chance is being quirky.

Watch differential dropout as data comes in. If the treatment arm abandons at twice the control rate, your completed sample is no longer exchangeable — the treatment filtered who finished. Report completion rates per arm alongside the result; a large gap is a finding about the manipulation, and a threat to the rest.

DO

  • Assign server-side, once per participant, sticky across refreshes and resumes.
  • Record the condition as an explicit column in results and exports.
  • Match arms on length, tone, and structure everywhere except the manipulation.
  • Check the assignment split and per-arm completion rates while fielding.
  • Pre-register (or at least write down) the analysis before launch.

DON'T

  • Run conditions as separate survey links.
  • Assign by time window, panel batch, or anything correlated with who shows up when.
  • Let a page refresh re-roll the condition.
  • Mention versions, conditions, or 'groups' anywhere participants can read.
  • Peek at outcomes mid-field and stop when the difference looks good — that inflates false positives.

04The methods sentence

When it works, the write-up is one sentence: “Participants were randomly assigned to one of two conditions (treatment n = 103, control n = 97); assignment was performed server-side at survey load and recorded with each response; completion rates did not differ by arm.” Every clause in that sentence is something a reviewer checks, and every one of them was decided by the plumbing you chose before launch.

Quick answers

What's the difference between randomization and random assignment?+

Randomization in surveys usually means shuffling — question order, option order — to cancel order effects. Random assignment means each participant is placed in one experimental condition (control vs treatment) so groups differ only by chance. Same coin, very different jobs: one fights bias inside a questionnaire, the other creates the comparison your causal claim rests on.

Do my groups need to be exactly the same size?+

No. Equal-ish is enough — modern tests handle moderately unequal groups fine, and a 52/48 split costs you almost no power. What matters is that assignment was random and that nothing after assignment treated the groups differently (unequal dropout is the thing to actually watch).

Can participants tell which condition they're in?+

They shouldn't be able to tell that other conditions exist. Keep instructions, length, and tone matched across arms; never reference 'versions'; and don't let the study title give the manipulation away. In survey experiments the participant is effectively blind if you simply don't tell them.

How many participants do I need per condition?+

Power analysis is the real answer, but the useful anchor: detecting a medium effect (d ≈ 0.5) between two groups at 80% power needs roughly 64 per arm; small effects (d ≈ 0.2) need nearly 400 per arm. Multiply by arms, add your expected exclusion rate, and budget accordingly — underpowered experiments are the most expensive kind, because they cost money and still can't answer the question.

Keep reading: Survey randomization, explained · How many responses do you need? · Plumeform for researchers

Put it into practice.

Start free →

250 responses a month free. Every control in these guides is built in.