XLSForm Question Types: The Complete List
The XLSForm type column sets what each question is: text for free text, select_one for single choice, integer for whole numbers, geopoint for GPS, calculate for computed values, and around twenty more. Picking the right type is the first decision for every row in your survey sheet — it controls the input widget, validation, and how the data exports.
This is the full reference, grouped by what you are collecting, with a working example for each.
Text and number types
| Type | Collects | Example use |
|---|---|---|
text | Free-form text | Name, comments |
integer | Whole numbers | Age, household size |
decimal | Numbers with decimals | Weight, price |
range | A number on a slider | Satisfaction 1–10 |
| type | name | label |
|---|---|---|
| text | respondent_name | What is your name? |
| integer | age | How old are you? |
| decimal | weight_kg | Weight in kilograms |
Choice types
select_one gives one answer; select_multiple allows several. Both point at a list on the choices sheet.
| type | name | label |
|---|---|---|
| select_one yes_no | owns_land | Do you own land? |
| select_multiple crops | crops_grown | Which crops do you grow? |
| rank crops | crop_priority | Rank these crops by importance |
rank asks the respondent to order a list. Control how choices display — as a dropdown, columns, or a Likert scale — with the appearance column.
Date, time, and location types
| Type | Collects |
|---|---|
date | A calendar date |
time | A time of day |
dateTime | Date and time together |
geopoint | A single GPS point |
geotrace | A line of GPS points |
geoshape | A closed GPS area |
| type | name | label |
|---|---|---|
| date | interview_date | Date of interview |
| geopoint | household_location | Capture the household location |
See collecting GPS coordinates for the geo types in depth.
Media and scan types
| Type | Collects |
|---|---|
image | A photo |
audio | An audio recording |
video | A video recording |
file | Any uploaded file |
barcode | A scanned barcode or QR code |
| type | name | label |
|---|---|---|
| image | house_photo | Take a photo of the dwelling |
| barcode | id_scan | Scan the ID card barcode |
Logic and metadata types
These collect no answer from the respondent — they compute, structure, or record context.
| Type | Purpose |
|---|---|
calculate | Compute a value from other answers (calculations) |
note | Display read-only text to the enumerator |
begin group / end group | Section questions together for skip logic |
begin repeat / end repeat | Repeat a block (repeat groups) |
start / end | Record interview start and end timestamps |
today / deviceid | Record the date and device ID automatically |
audit | Record the audit log — timing, GPS, changes |
| type | name | label |
|---|---|---|
| start | start | |
| end | end | |
| calculate | bmi | |
| note | thanks | Thank you for your time. |
Using a type that is not on this list — number, dropdown, checkbox, location — is the most common XLSForm upload error. Use integer, select_one, select_multiple, and geopoint instead. See common XLSForm errors.
Which question type should you use?
Match the type to the data, not the widget:
- One answer from a list →
select_one. - Several answers from a list →
select_multiple. - A counted quantity →
integer(whole) ordecimal(fractional). - A computed value →
calculate, never atextquestion the enumerator fills. - Where the interview happened →
geopoint.
You do not have to memorize this table. Describe your survey in plain language to LooprAI and it assigns the correct type to every question, then validates the form before you publish.
Next: The XLSForm appearance column →
Frequently Asked Questions
What are the question types in XLSForm?
XLSForm types include text, integer, decimal, range, select_one, select_multiple, rank, date, time, dateTime, geopoint, geotrace, geoshape, image, audio, video, file, barcode, calculate, note, and structural types like begin group and begin repeat. The type column sets each question's input and validation.
What is the difference between select_one and select_multiple?
select_one lets the respondent pick exactly one option from a choice list, while select_multiple allows several. Both reference a list_name on the choices sheet. select_multiple exports each selected option, commonly as space-separated values or separate columns.
What XLSForm type should I use for numbers?
Use integer for whole numbers like age or counts, and decimal for values with a fractional part like weight or price. Never use 'number' — it is not a valid XLSForm type and will fail to upload. Use range for a slider input.
How do I capture GPS in an XLSForm?
Use the geopoint type for a single location, geotrace for a line of points, or geoshape for an area. ODK Collect records latitude, longitude, altitude, and accuracy from the device, and all three geo types work fully offline.
What is the calculate type used for?
The calculate type computes a value from other answers — such as age from date of birth or a total from line items — without showing an input. The result is stored and can be used in labels, skip logic, and constraints throughout the form.
Why does my question type cause an upload error?
Almost always because it is not a real XLSForm type. Common invalid types are number, dropdown, checkbox, and location. Replace them with integer or decimal, select_one, select_multiple, and geopoint respectively, then re-validate the form.
No Credit Card Required
Build the form first. Add hosting when you need it.
Start free with LooprAI, then deploy a managed ODK Central server or run DataSnap checks when your project is ready.
Automation handles the mechanical work.
Researchers decide what the evidence means.