Skip to content

select

Experiments

select tags a subset of test trials as the ones that count toward the debrief “average correct score”. When at least one saved test trial has a non-empty value in select, the end-screen average is computed over ONLY those tagged trials instead of over all test trials. Use it when filler or catch trials would otherwise dilute the score shown to the participant (and the score-based completion-code prefix).

It does NOT select which trials run. Every trial in the file still runs; select only changes which trials feed the score average.

Put 1 in the cell of every test trial that should count toward the debrief score, and leave every other cell empty. The cell’s content is never interpreted: any non-empty value tags the trial.

ValueBehavior
empty cellTrial excluded from the select-average
any other value (1, yes, x, even 0)Trial counts toward the select-average. The specific value is irrelevant

With the column absent or every cell left empty, the debrief average is computed over all test trials. As soon as ONE saved test trial anywhere in the run has a select value, the average switches to the tagged subset for the whole experiment.

  • type: only type=test trials count. select on practice, learn or instruction trials does nothing.
  • key / scoring: each tagged trial contributes its correct/incorrect result from key matching. Tagged trials without a key have no correctness value and are silently dropped from the average.
  • display_score / debrief: the switched average drives the “Average correct score: X%” line when score display is on, and the j14 prefix added to the random completion code when the average exceeds 80%.
  • feedback screens: a response given while a feedback screen is showing is not saved as a trial, so each real trial counts only once.
  • results export: when the column is defined in the CSV, its raw per-trial value is echoed into the results file like any other defined column.
  • CFPT trials: select on a trial with test=CFPT is ignored: the trial never counts toward, and never switches on, the select-average.
typestim1keyboardkeyselect
testtarget_Ay,ny1
testfiller_1y,nn
testtarget_By,ny1

The debrief average (and the >80% completion-code prefix) is computed from the two target trials only; the filler trial still runs and is still saved, it just does not count toward the score.

typestim1keyboardkeyselect
testprobea,ba0

Quirk demonstration: select=0 still TAGS the trial, because any non-empty value counts. With this file the average is computed over the probe trial.

  • In a run that ends on the very first row of the file (for example a single-trial file), the select-average can be skipped and the plain all-trials average shown instead, even though tagged trials exist.
  • If none of the tagged trials produced a usable correctness value, the debrief shows 0%.
  • Do not confuse the select column with block.select(...) in the rules column; that is an unrelated block-picking rule.
  • The cell does not hold a condition: an expression such as subjectGroup==1 is not evaluated for conditional trial inclusion; it simply tags the trial like any other value.
  • Do not put #listName# tokens in this column unless you want dynamic-list expansion: a #...# token registers the trial for duplication per list value, on top of tagging it.
  • A trialOrder spec can name ANY column, this one included (e.g. 1: sample 10 select). That is a general any-column mechanism; the score-tagging behavior documented above is unchanged.