A click balance quota (CBQ) is a quota used in representative sampling that is based on all incoming traffic, instead of only completes like a typical quota. CBQs are created by using the click balance quota
tag (alias cbq
) or the question type tag type: click balance quota
(alias type: cbq
).
Click balance quota as an independent variable
AGE. What is your age?
type: integer
range: 18-100
CBQAGE. Age Click-Balance Quota
type: click balance quota
1. Young {if $QAGE < 40}
2. Middle Aged {if $QAGE >= 40 and $QAGE < 65}
3. Senior {if $QAGE >= 65}
Click balance quota created from a question
AGE. What is your age? type: radio click balance quota: y 1. 18-24 2. 25-34 3. 35-44 4. 45-54 5. 55-64 6. 65+
Note: This is the newer and preferred method for creating CBQs. Although, the quotabase
method is still supported, it cannot be used with CBQs.
Details
- CBQs can be created from closed-ended questions and variables.
- Similar to using
quotas: y
,click balance quota: y
can be applied to questions to create the quota groups directly from the question's options. - The
click balance quota
tag can also be used along with aquotas
tag,type: quotas
variable, or coded variables. - The
click balance quota
tag accepts ranges, e.g.,click balance quota: [1..5]
and exclusion syntax, e.g.,click balance quota: -[98]
. - If a
term: y
decorator is added next to an option in a question that includes theclick balance quota
tag, that option is excluded from the quota groups created for the question. - Respondents are terminated with a status 'Z' if they fail to qualify for a CBQ or if the CBQ they qualify for is at or over capacity.
- The system also creates a separate variable,
cboq
, to track "over quotas" specifically for CBQs. This is similar to theoq
variable generated for regular quotas. - CBQs are managed in the Quotas applet.
Tip! When a question has options that can each represent the same options needed in a click balance quota, simply apply click balance quota: y
to the question. This "derives" the quota from the question. If custom quota buckets are needed, use the type: click balance quota
tag to create the standalone variable.
Tags
The following tags can be used in tandem with CBQs.
Tag | Description |
build click balance quota from |
Similar to Aliases include: |
(alias |
For use with the
|
(alias |
For use with the The default logic is defined below this table. |
deferterm |
For use with the app config widget, allows respondents meeting a term if or set term condition to continue to a specified point in the survey before the interview is ended. |
Click balance quota defaults
When a click balance quota
tag or type: click balance quota
is added to the survey code, the click_balance_complete
field is automatically created and placed after the last CBQ. It's defined as:
click_balance_complete. Click-balance section done type: radio invisible: y 1. all cb quotas complete {if <all click balance quotas answered> and anyChecked($status,'C','Q','T','P')} termif: $status eq 'Z'
The '<all click balance quotas answered>' auto-populates with a condition checking that every CBQ in the survey source is answered (has a value) in order for click_balance_complete
to be set as '1'. Additionally, the respondent must have a status of 'C', 'Q', 'T', or 'P'.
CBQs have a quota base
tag equivalent to:
quota base: is_checked($click_balance_complete,1)
In other words, the respondents who qualify for the CBQ (the default quota base) are those that have answered every CBQ and have a status of 'C', 'Q', 'T', or 'P'. This is demonstrated in detail further below.
Click balance quotas in reporting
CBQ data can be found in the Quota variables > Click Balance Quotas subchapter in the reporting field tree.
Derived CBQs, created by attaching the click balance quota
to a question or variable, follow the naming format "QX_CBQ", where "X" represents the question's ID. For example, Q2 creates a CBQ labeled Q2_CBQ. Independent CBQs, created with type: click balance quota
, display the assigned variable name.
Additional examples
Creating regular quotas and click balance quotas together
CBQs and quotas can be created from the same question or variable by applying the click balance quota
and quotas
tags together. In QAGE, all options are viable CBQ options. However, QINCOME uses exclusion syntax to remove option 98 from both the click balance quota and regular quota variables.
AGE. What is your age? type: pulldownclick balance quota:
y
quotas: y
1. Under 18
2. 18-24
3. 25-34
4. 35-44
5. 45-54
6. 55-64
7. 65 or older
INCOME. Which of the following categories best represents your annual household income (before taxes)?
type: radioclick balance quota
: -[98]
quotas: -[98]
1. Less than $25,000
2. $25,000 - $49,999
3. $50,000 - $74,999
4. $75,000 - $99,999
5. $100,000 - $149,999
6. $150,000 - $199,999
7. $200,000 or more
98. Prefer not to answer
It's also possible to apply the click balance quota
tag to a quota variable. Below, the type: quotas
tag is used to create a quota manually because the quota buckets need to be transposed from an open-ended text question to a close-ended quota variable. Adding click balance quota: y
to the standalone quota variable creates a CBQ with the same quota groups.
AGE. What is your age? type: integer datatype: whole range: 18-100 CB_AGE. Age Click-Balance Quota type: quotasclick balance quota
: y
1. Young {if $QAGE < 40}
2. Middle Aged {if $QAGE >= 40 and $QAGE < 65}
3. Senior {if $QAGE >= 65}
Creating click balance quotas from uszip5 questions
The build cbq from
and build quota from
tags are both included on the type: uszip5
question Q4. This question generates several location-related hidden variables based on the respondent's ZIP code. The auto-generated variable QREGION will build the CBQ QREGION_CBQ for any qualifying respondents, while QUSR will build the quota QUSR_QUOTA for any completes.
4. Zip code type: uszip5 buildclick balance quota
from: region
build quota from: usr
Restricting who qualifies for click balance quotas
When applied to the app config
widget, the click balance quota apply if
tag allows programmers to restrict which respondents can qualify for CBQs. Once a respondent qualifies, they are still evaluated by other factors, such as the quota base, additional conditions, and quota targets. In the example below, respondents who punch '1' for QSAMP are included in the CBQ data. Those who do not punch '1' at QSAMP are excluded from CBQ evaluation.
app config click balance quota apply if: anyChecked($QSAMP,1) SAMP. Sample type type: quotas selectby: weight 1. Rep sample {weight: 100} 2. Augment {weight: 10}
Screener example with terminations
The following example includes both CBQs variables and regular quota variables, along with various termination points. Please review the survey code and then read the explanation below it.
startgroup: DEMOS
1. What is your gender?
type: radio
click balance quota: y
quotas: y
1. Male
2. Female
2. What is your age?
type: radio
click balance quota: y
18. 18 - 24
25. 25 - 34
35. 35 - 44
45. 45 - 54
55. 55 - 64
65. 65 and above
3. Which of the following categories best represents your annual household income (before taxes)?
type: radio
click balance quota: y
1. Less than $25,000
2. $25,000 - $49,999
3. $50,000 - $74,999
4. $75,000 - $99,999
5. $100,000 - $149,999
6. $150,000 - $199,999
7. $200,000 or more
98. Prefer not to answer {term: y}
4. What is the region you live in?
type: radio
click balance quota: y
1. Northeast
2. Midwest
3. South
4. West
5. How would you describe yourself?
type: radio
click balance quota: -[99]
4. American Indian, Alaska Native
3. Asian
2. Black or African American
5. Native Hawaiian or Other Pacific Islander
1. White
97. Other {autoother: y; placeholder: specify; size: 10}
99. Do not wish to reply {term: y}
endgroup: DEMOS
6. Are you interested in flying kites?
type: radio
1. Yes
2. No {term: y}
7. When was the last time you flew a kite?
type: radio
quotas: y
1. 2024
2. 2023
3. 2022
4. Prior to 2022
To "punch" the CBQs, a respondent must meet two criteria:
- Select only qualifying options at each question. They cannot choose any options that would either terminate them or put them in a full (over quota) group.
- Answer all questions with the
click balance quota
tag (Q1-Q5).
If these conditions are met, the respondent triggers the click_balance_complete
variable after answering Q5. They will then count towards all CBQs, and if they complete the survey, they will also count towards the regular quotas derived from Q1 and Q7.
Here are a few scenarios:
- Terminate after CBQs: If a respondent passes the demographic screening but terminates at Q6 (after the CBQs), they will count towards the CBQs but not the regular quota (Q1_QUOTA).
-
Terminate before CBQs are complete: If a respondent terminates early, at Q3 for example, they will not count towards any CBQs or regular quotas. If you'd prefer to defer the termination, use the
deferterm
tag. - Over Quota at a CBQ: If a respondent reaches a full CBQ before completing Q5, they will not punch any CBQs or regular quotas.
-
Over Quota at regular quota: If a respondent passes the CBQs but is over quota at Q7 (a regular quota), they will still count towards the CBQs as
click_balance_complete
has already been punched.
Comments
0 comments
Please sign in to leave a comment.