How do we randomly select a member of a household roster based on certain eligibility criteria?

Hi everyone!

I need to randomly select a person (based on criteria such as age>18) after having created a roster in a repeat group. I have seen some post on this both unfortunately the methods suggested will not work on Kobo consistently. i.e. sometimes they will work and other times they won’t (this is very strange because the forms I upload are exactly the same).

Here is a bit of what I’ve looked at for context:



Hi @jsleiva,

Welcome to the community! Would you mind testing the attached xlsform that selects eligible household members from a household roster.

select_random-female-eligible-respondent V1.xlsx (11.0 KB)

Please Note: It best works with KoBoCollect while it might show an error while trying to enter the same through Enketo (web form). Also please note that the random selection of eligible household members are based on the random number generated. If there are more than one eligible members in the household the survey form selects an eligible respondent based on the value calculated from a random number. If the value of the random number is towards 0 it selects the eligible member that has been first registered (within the household roster) while if the random number is towards 1 it selects the eligible member that has been lately registered (within the household roster).


1 Like

Hi @Kal_Lam!

I found a solution very similar to yours - as you mentioned, the only issue is that if the random number is closest to 0 it may select the first registered member. When that member is under the age of 18 then, the selection does not work. I have 2 quick follow up questions:

  1. Can we restrict that first person in the roster from not being under 18? I’m guessing one could restrict the first position to have to be over 18 for the survey to continue.

  2. Is there a way to have a randomly selected list instead of just one name? The reason I ask is because if the randomly selected respondent is unavailable, then I would like to continue to the second person on that “list”.

Let me know if you have any thoughts on the second idea.