NIPO ODIN Version 5.17
Scenario 3: Using a Preset Inactive Interview Number for Each Respondent
This scenario applies the following directives:
- We start the survey with a separate record for each family member.
- We already know the family size and the names of all family members.
- The first family member
Status for each household is set initially to 0 (NIPO CATI active). - The
Status for the follow-up records (other family members) are initially set to 5 (Waiting). - The first respondent can 'activate' other family members.
Example Sample table for scenario 3
Interview Number
|
Household Number
|
Family Member Number
|
Status
|
DisplayField1
|
DisplayField2
|
Household
|
Family Size
|
Int
|
Int
|
Int
|
Int
|
Varchar(45)
|
Varchar(35)
|
Int
|
Int
|
60010001
|
6001
|
1
|
0
|
John
|
Family #1
|
1
|
4
|
60010002
|
6001
|
2
|
5
|
Paul
|
Family #1
|
0
|
4
|
60010003
|
6001
|
3
|
5
|
George
|
Family #1
|
0
|
4
|
60010004
|
6001
|
4
|
5
|
Ringo
|
Family #1
|
0
|
4
|
60020001
|
6002
|
1
|
0
|
Mick
|
Family #2
|
1
|
3
|
60020002
|
6002
|
2
|
5
|
Keith
|
Family #2
|
0
|
3
|
60020003
|
6002
|
3
|
5
|
Charlie
|
Family #2
|
0
|
3
|
60030001
|
6003
|
1
|
0
|
Bruce
|
Family #3
|
1
|
1
|
In this scenario it is important that the family member records are initialized in with Status value 5 (Waiting). If not, they are available for distribution to any other interviewer and will not be available with the *NEXTRECORD command.
The Fieldwork Manager may initialize sample records to the Waiting status. In addition, the Status value can also be preset directly on the Sample table to import before the survey is started. Alternatively, records may be set to an inactive status by having them initialized for as NIPO CAWI available.
Example NIPO ODIN questionnaire for *NEXTRECORD : scenario 3
*SAMPLEDATA TTDisplayField1, TTDisplayField2, TTDisplayField3 *SAMPLEDATA AskHousehold, FamilySize, TTInterviewNumber *SAMPLEDATA HouseholdNumber, Household, FamilyMemberNumber *VARS NewNumber, TempNumber
*IF [ Household <> 1 ] *GOTO 3
*QUESTION 1001 *CODES 62L9 *MULTI *DUMMY
*REPEAT 9 *IF [?R <= FamilySize ] *INCLUDE Q1001 [?R] *ENDREP
*** The InterviewNumbers will be based on the 4-digit household number. *PUT NewNumber [HouseholdNumber * 10000 + 1] *REPEAT 9 *CONTROL Q1001 W *IF [?R > 1] *PUT NewNumber [ NewNumber + 1 ] \ *PUT TempNumber [ NewNumber ] \ *NEXTRECORD TempNumber "" *ENDREP
*QUESTION 3 *CODES 386L1 Does *?TTDisplayField1 have his/her own mobile telephone?
1: Yes 2: No
*QUESTION 4 *OPEN 387L1 *IF [ Q3,1 ] Who is the provider of that mobile telephone?
*QUESTION 9999 That's all.
The next person in this household, if any left, will be interviewed now.
*END
Make sure that an existing, unique number in the NewNumber variable is generated in the *REPEAT loop each time. If you try to update a record for the second time, the system has already claimed the record and will report the run-time error message "Error in *NEXTRECORD: Sample record -1 is not valid for interviewing" .
Example ‑ | Example Sample table after scenario 3
Interview Number
|
Household Number
|
Family Member Number
|
Status
|
DisplayField1
|
DisplayField2
|
Household
|
Family Size
|
Int
|
Int
|
Int
|
Int
|
Varchar(45)
|
Varchar(35)
|
Int
|
Int
|
60010001
|
6001
|
1
|
2
|
John
|
Family #1
|
1
|
4
|
60010002
|
6001
|
2
|
2
|
Paul
|
Family #1
|
0
|
4
|
60010003
|
6001
|
3
|
2
|
George
|
Family #1
|
0
|
4
|
60010004
|
6001
|
4
|
2
|
Ringo
|
Family #1
|
0
|
4
|
60020001
|
6002
|
1
|
2
|
Mick
|
Family #2
|
1
|
3
|
60020002
|
6002
|
2
|
2
|
Keith
|
Family #2
|
0
|
3
|
60020003
|
6002
|
3
|
2
|
Charlie
|
Family #2
|
0
|
3
|
60030001
|
6003
|
1
|
2
|
Bruce
|
Family #3
|
1
|
1
|
|