Accuracy-gated progression
Let participants advance to the test block only once their practice accuracy clears a threshold.
When to use it
Section titled “When to use it”Use this when practice exists to prove task understanding, not just to warm participants up, so weak performers should get more practice before their test data counts. Simply running a fixed practice block for everyone either bores participants who understood immediately or lets confused ones straight into the test, where their misunderstanding contaminates the data. Pick a repeating gate instead (see Variations) when a single extra round is not enough and participants must keep practising until they pass, and drop the gate entirely for tasks so simple that written instructions carry the whole load.
Trial file
Section titled “Trial file”| type | title | content | stimFormat | stim1 | keyboard | key | label | if | then | button1 |
|---|---|---|---|---|---|---|---|---|---|---|
| instructions | Animal or object? | Press A if the word names an animal, and L if it names an object. We start with a short practice round. | NEXT | |||||||
| practice | word | DOG | a l | a | ||||||
| practice | word | CHAIR | a l | l | ||||||
| practice | word | HORSE | a l | a | ||||||
| practice | word | SPOON | a l | l | %correct.perc[-3_0]%>=75 | maintest | ||||
| instructions | A little more practice | Let's try a few more. Remember, A for animals and L for objects. | NEXT | |||||||
| practice | word | CAT | a l | a | ||||||
| practice | word | TABLE | a l | l | ||||||
| test | word | FISH | a l | a | maintest | |||||
| test | word | BRUSH | a l | l |
type,title,content,stimFormat,stim1,keyboard,key,label,if,then,button1 instructions,Animal or object?,"Press A if the word names an animal, and L if it names an object. We start with a short practice round.",,,,,,,,NEXT practice,,,word,DOG,a l,a,,,, practice,,,word,CHAIR,a l,l,,,, practice,,,word,HORSE,a l,a,,,, practice,,,word,SPOON,a l,l,,%correct.perc[-3_0]%>=75,maintest, instructions,A little more practice,"Let's try a few more. Remember, A for animals and L for objects.",,,,,,,,NEXT practice,,,word,CAT,a l,a,,,, practice,,,word,TABLE,a l,l,,,, test,,,word,FISH,a l,a,maintest,,, test,,,word,BRUSH,a l,l,,,,
How it works
Section titled “How it works”The four practice rows are scored against key like test trials but write no results rows; their correctness still enters the running history that variables read, which is what makes the gate possible. keyboard restricts responses to the two case-insensitive tokens a l, so every practice trial ends up scored 1 or 0.
The gate lives on the last practice row. Its if condition, %correct.perc[-3_0]%>=75, is evaluated after that trial completes: [0] is this row’s own response and [-3] reaches back three responses, so the range covers exactly the four practice trials, and 75 per cent means three of four correct. The bracket index is not optional. A bare %correct.perc% is never filled in with a value, so the condition would be silently false and everyone would get extra practice.
When the condition is true, then jumps to the row labelled maintest, skipping the remedial block. When it is false, no jump fires and the participant simply falls through to the next row, the extra-practice instructions, and the remedial trials then run on into the test block with no second jump needed. The label value is plain letters on purpose: a misspelled destination in then is indistinguishable from “no jump” and continues silently, and a purely numeric label can never be reached because numbers are read as row targets first.
Variations
Section titled “Variations”- Make the gate repeat until passed by adding a
labelon the first extra-practice row and, on the last one, anifof%correct.perc[-1_0]%<75withthenpointing back to it; add a second condition sending persistent failers toendso nobody loops forever. - Gate on speed as well as accuracy with an AND:
ifof%correct.perc[-3_0]%>=75 & %rt.mean[-3_0]%<1500. - Route failers to a dedicated remedial page instead of falling through: give
iftwo;-separated conditions andthentwo matching destinations. - Screen out participants who fail the gate by making the second destination in
thenascreenout(when the project has screenout configured) orend.