Skip to content

Likert scale with scored options

Sum a block of likert items into a named scale total by attaching points to each answer option.

Use this for the validated questionnaire pattern where every answer option carries a point value and the item points sum to a scale total, as in the typical 0 to 3 scoring of symptom and attitude scales. The naive route is to export raw answers and recode them during analysis, which works until a reverse keyed item is recoded the wrong way round in one script and not another; attaching the points in the trial file makes the results self scoring, with per item points and the final total written for you. If the questions have one right answer each rather than graded options, use the scored quiz pattern instead.

typecontentheadresponseTyperesponseOptionsscorerequiredbutton1
instructionsRate how often each statement applies to you.NEXT
formI worry about things going wrong.likertNever;Rarely;Sometimes;Oftenworry:0;1;2;31
formSmall problems stay on my mind for hours.likertNever;Rarely;Sometimes;Oftenworry:0;1;2;31
formI feel tense when plans change at short notice.likertNever;Rarely;Sometimes;Oftenworry:0;1;2;31
formI find it easy to switch off at the end of the day.likertNever;Rarely;Sometimes;Oftenworry:3;2;1;01
formI expect the worst even when things are going well.likertNever;Rarely;Sometimes;Oftenworry:0;1;2;31

Each statement is one type=form row: head carries the item text, likert in responseType renders rating buttons, and responseOptions supplies the four labels, which also sets the button count. The rows are consecutive, so the whole scale sits on one survey page.

score does the scoring. The optional worry: prefix collects the points under a named group, and the semicolon separated numbers map positionally onto the responseOptions entries: choosing Never earns 0, Often earns 3. The fourth item is reverse keyed simply by reversing the numbers to 3;2;1;0; the labels stay identical, so participants see one consistent scale. Each answer’s points go into a responseScore results column as worry:points, and at the end a participant level score field carries the group total, here 0 to 15.

Three properties of score shape the design. Points are earned only when the recorded answer exactly equals one of the option strings, so keep every item a single answer row: turning the block into a matrix with responseRows joins the row answers into one string that matches nothing and scores 0. The numbers must be whole; a decimal such as 1.5 is read as just 1 and the option after it silently gets no score. And there is no running total during the session, so feedback text and if conditions cannot reference the score; it exists only at the end.

required set to exactly 1 on every item matters more here than usual: an unanswered item would score 0 and silently deflate the total, making it indistinguishable from a genuine low answer.

  • Add a second subscale by giving other items a different group prefix in score, for example calm:0;1;2;3; the final field lists every group total. Group names take letters, digits and underscores only, and a hyphen silently truncates the name.
  • Randomise item order per participant by putting 1 in random on the item rows and leaving the instructions row’s cell genuinely empty so it stays anchored.
  • Drop the group prefix in score to use the default group, which reports the total as a bare number under the name score.
  • Split a long scale across screens by putting 1 in pageBreak on the last item of each intended page.