NIPO ODIN Version 5.17

Previous Topic

Next Topic

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

See Also