A block that sets one or more global variables at an exact point in your question order, without opening the Flow tab. Respondents see nothing at all — the assignment runs silently and the survey carries on.
What respondents see#
Nothing. This block collects no answer and shows no UI to the respondent; it runs invisibly between the questions around it.
When to use it#
- Tag a respondent mid-section ("everyone who reaches here is a
qualifiedlead") without building a flow block. - Set up a variable's value right before the question that reads it, so the dependency is obvious on the canvas instead of hidden in the Flow tab.
Configuring it in the builder#
- Select the block and open Settings in the properties panel.
- You get the same Set Variables editor the Flow tab uses — click Add, pick an existing variable or create a new one on the spot.
- Choose the assignment type: Set / Increment / Decrement / Formula, and type the value.
- Optionally attach a condition to an assignment so it only fires in certain cases.
Settings reference#
| Setting | What it controls | Default |
|---|---|---|
| Assignments | One or more variable Set/Increment/Decrement/Formula operations | None (block does nothing until you add one) |
| Assignment condition | Restricts an individual assignment to fire only when a condition is true | None (always fires) |
Logic support#
The block itself doesn't evaluate display/skip logic operators — its own condition inputs are per-assignment conditions, using the same condition builder as Display Logic and Skip Logic.
Good to know#
- It is never required and never blocks the respondent. If it is the only thing on a page, the page is passed straight through.
- Save it with no assignments and the builder flags it — an empty block does nothing.
- It carries no question number and is not in your exported data.
- If the section it sits in uses question randomization, the block can be shuffled after a question that depends on it. Keep it out of randomized sections, or pin its position.
See Variables & panel redirects for what global variables are and where else they can be set.
Calculations#
A Calculation works out a number from answers and global variables and stores it in a result variable. Add one from the Flow tab (the Calculation block) or as a Calculated Variables question from the question palette. Pick the result variable, open the formula editor and click inputs to insert them.
Every input is turned into a number first:
| You use | Token | Counts as |
|---|---|---|
| Single select | answer | The answer's recode value (set it in the question's recode settings) |
| Multiple select | one Choice per option | 1 if picked, 0 if not |
| Number, slider, rating, short text | answer | The number typed or chosen; empty or non-numeric text is not a number |
| Grid | one Row per row | The selected column's recode value, or the number typed in that row |
| Ranking | one Rank per item | The item's position, 1 being first |
| Global variable | variable name | The number it holds |
If any input cannot become a number, the result is NA. This differs from the Formula operation of Create / Edit Global Variables, which keeps the variable's old value when it cannot compute; a Calculation always replaces it, so an old number can never pass for a fresh one. Alongside the result the survey keeps a record of the formula, the numbers used and any error (a variable named __calc.<YourVariable>) that does not appear in Display Global Variables.
Word import/export and the AI assistant do not know about Calculations yet.
The palette entry for the question flavor is called Calculated Variables.
Related guides#
- Question Types — overview and when-to-use table
- Display Blocks & Plugins — sibling display-only blocks
- Display Global Variables — the read-side companion of this block
- Variables & Panel Redirects — what global variables are and where else they're set
Formula functions#
In a Formula you can use these functions: FLOOR(n), CEIL(n), TRUNC(n), SQRT(n), POW(base, exponent), MOD(a, b), EXP(n), LN(n), LOG10(n), SIGN(n), SUM(a, b, ...), AVG(a, b, ...), COUNT(a, b, ...), MEDIAN(a, b, ...), STDEV(a, b, ...) (sample, 2 or more values), SIN, COS, TAN, ASIN, ACOS, ATAN (radians), PI(), IF(condition, then, else), AND(a, b, ...), OR(a, b, ...), NOT(a), plus MIN, MAX, ABS and ROUND(n, decimals). Each one takes numbers: type a number, insert a question's answer or another variable with the Braces button, or nest another function. Example: ROUND(SQRT(${q://Q1/SelectedValue}) * 10, 1) stores 40 when Q1 was answered 16. Comparisons <, <=, >, >=, == (or =), != (or <>) give 1 for true and 0 for false and bind looser than + and -, so 1 + 2 > 2 is 1; AND, OR, NOT and IF treat any nonzero value as true. IF only uses the branch it picks, so IF(x > 0, LN(x), 0) gives 0 when x is 0. The ^ character is not supported: use POW(base, exponent).
The aggregate functions SUM, AVG, MIN, MAX, COUNT, MEDIAN and STDEV can also take a whole answer of a constant sum, matrix, multi numeric or rank question, for example SUM(${q://CS1/SelectedValue}). Only numeric cells are used, and a rank answer counts as positions 1 to n. If the question is unanswered or has no numbers, the formula fails and the variable keeps its value. Other functions and operators cannot take a whole answer.
If the formula has a mistake (a wrong number of arguments, or a misspelled function such as SQRTT) the builder shows the problem under the box. If the result is not a number, for example SQRT(-1), or an answer is not numeric, the variable keeps its current value.
Was this page helpful?