XLSForm Structure
A realistic GEC-T inclusive education form: consent, demographics, Washington Group disability screening, cascading geography, repeat groups, and GPS capture.
| type | name | label | relevant | constraint | constraint_message | required | appearance |
|---|---|---|---|---|---|---|---|
| survey | |||||||
| select_one yes_no | consent | Do you give informed consent to participate? | yes | ||||
| text | student_id | Student unique ID | ${consent} = 'yes' | regex(., '^GEC-[0-9]{4}$') | Format: GEC-0001 | yes | |
| select_one schools | school_name | Name of institution | ${consent} = 'yes' | yes | autocomplete | ||
| select_one counties | county | County | ${consent} = 'yes' | yes | minimal | ||
| select_one sub_counties | sub_county | Sub-county | ${consent} = 'yes' | yes | minimal | ||
| select_one wards | ward | Ward | ${consent} = 'yes' | yes | minimal | ||
| integer | age | Age of student (years) | ${consent} = 'yes' | . >= 5 and . <= 25 | Age must be between 5 and 25 | yes | |
| select_multiple disability_list | disability_type | Disability domain (WG-SS) | ${consent} = 'yes' | yes | |||
| select_one aid_types | visual_aid_type | Type of visual assistive device | selected(${disability_type}, 'visual') | yes | |||
| begin_repeat | household_members | Household member details | ${consent} = 'yes' | ||||
| text | hh_name | Name of household member | yes | ||||
| select_one relationship | hh_relation | Relationship to student | yes | ||||
| end_repeat | |||||||
| select_one grades | grade | Current grade/class | ${consent} = 'yes' | yes | minimal | ||
| select_one school_types | school_type | Type of institution | ${consent} = 'yes' | if(${grade} > 8, . = 'secondary', true) | Grade 9+ requires secondary school | yes | |
| date | enrollment_date | Date of enrolment | ${consent} = 'yes' | . <= today() | Enrolment date cannot be in the future | yes | |
| text | caregiver_phone | Caregiver phone number | ${consent} = 'yes' | regex(., '^\+254[0-9]{9}$') | Use format +254XXXXXXXXX | no | |
| image | school_photo | Photo of school entrance | ${consent} = 'yes' | no | |||
| geopoint | gps_location | GPS coordinates of institution | ${consent} = 'yes' | yes | placement-map | ||
| list_name | name | label | county (filter) |
|---|---|---|---|
| choices | |||
| yes_no | yes | Yes | |
| yes_no | no | No | |
| disability_list | visual | Seeing - even with glasses | |
| disability_list | hearing | Hearing - even with hearing aid | |
| disability_list | mobility | Walking or climbing steps | |
| disability_list | cognitive | Remembering or concentrating | |
| disability_list | selfcare | Self-care (washing, dressing) | |
| disability_list | communication | Communicating in usual language | |
| counties | nairobi | Nairobi | |
| counties | kisumu | Kisumu | |
| counties | mombasa | Mombasa | |
| sub_counties | westlands | Westlands | nairobi |
| sub_counties | kasarani | Kasarani | nairobi |
| sub_counties | kisumu_central | Kisumu Central | kisumu |
| sub_counties | changamwe | Changamwe | mombasa |
| schools | sch_001 | Moi Avenue Primary | |
| schools | sch_002 | Uhuru Gardens Special School | |
| aid_types | spectacles | Spectacles / glasses | |
| aid_types | magnifier | Magnifying device | |
| aid_types | braille | Braille materials | |
| form_title | form_id | version | default_language | style |
|---|---|---|---|---|
| settings | ||||
| GEC-T Inclusive Education Endline 2024 | gect_ie_endline_v3 | 2024.03.1 | English (en) | pages |
Form Routing Visualisation
Branching logic ensures enumerators only see relevant questions, reducing survey fatigue and data errors.
Validation Rules
Built-in constraints that catch errors at the point of collection, not after data cleaning.
Age Range
Student age must fall within programme eligibility criteria.
. >= 5 and . <= 25
Date Logic
Enrolment date cannot be in the future.
. <= today()
Cross-Field Validation
If student is in grade 9+, school type must be secondary.
if(${grade} > 8, ${school_type} = 'secondary', true)
Phone Number Regex
Kenyan mobile format: +254 7XX XXX XXX.
regex(., '^\+254[0-9]{9}$')
Conditional Required
Disability module only required when consent is granted.
required: ${consent} = 'yes'
GPS Accuracy Threshold
Reject GPS readings with accuracy worse than 10 metres.
distance(., .) = 0 and
selected-at(., 3) < 10
From Collection to Dashboard
End-to-end flow from KoBoToolbox field data to actionable programme dashboards.
- Duplicate submission detection via student_id
- GPS outlier flagging (> 50 km from expected county centroid)
- Completeness threshold: reject forms below 80% field coverage
- Weekly data quality report (Python-generated PDF)
- Real-time submission tracker (Google Sheets)
- Quarterly indicator dashboard (Power BI, 6 pages)
Multi-Language Form Deployment
Forms deployed in multiple languages allow enumerators to switch between English, Kiswahili, and Amharic during interviews.
| name | label::English (en) | label::Kiswahili (sw) | label::Amharic (am) |
|---|---|---|---|
| consent | Do you give informed consent to participate? | Je, unatoa idhini yako kushiriki? | ለመሳተፍ ፈቃደኛ ነዎት? |
| student_id | Student unique ID | Nambari ya kipekee ya mwanafunzi | የተማሪ ልዩ መለያ ቁጥር |
| age | Age of student (years) | Umri wa mwanafunzi (miaka) | የተማሪ ዕድሜ (ዓመት) |
| disability_type | Disability domain (WG-SS) | Aina ya ulemavu (WG-SS) | የአካል ጉዳት ዓይነት (WG-SS) |
| school_name | Name of institution | Jina la shule | የትምህርት ቤት ስም |
| gps_location | GPS coordinates of institution | Kuratibu za GPS za shule | የትምህርት ቤት GPS መጋጠሚያ |
| grade | Current grade/class | Darasa la sasa | የአሁኑ ክፍል |
| caregiver_phone | Caregiver phone number | Nambari ya simu ya mlezi | የአሳዳጊ ስልክ ቁጥር |
Technical Specifications
GEC-T Inclusive Education Programme, Leonard Cheshire, Kenya. FCDO-funded external evaluation across three data collection rounds.
Cascading selects: County → Sub-county → Ward geography uses choice_filter to dynamically filter options based on prior selection, reducing enumerator error in field conditions.
Washington Group Short Set: Six functional difficulty domains aligned to the WG-SS standard, enabling international comparability of disability prevalence data across GEC programmes.
Repeat groups: Household member module uses repeat_count to capture variable-length household rosters without duplicating form sections.
Offline-first: All forms are deployed via ODK Collect / KoBo Collect with full offline capability; submissions queue and sync when connectivity is restored.