Solutions · Market research

Fieldwork instruments, not feedback forms.

NumoForms is a survey builder with the question types research instruments actually need: matrix grids, drag-to-rank with a top-N variant, linear scales with end labels, and a 0 to 10 recommend score. Answer order can be randomised per question, seeded per page load so going back does not reshuffle and options marked fixed stay in place; hidden fields carry a panel ID in from the query string; and the CSV export gives one column per matrix row with "Other" free text in its own column.

Order effects, and what is done about them

Position bias is the cheapest measurement error to remove, and the one most often left alone. Answer randomisation can be switched on per question, and three details make it usable rather than decorative.

  • The shuffle is seeded per page load. A respondent who goes back to change an answer sees the same order they saw the first time. A reshuffle on every render is worse than no randomisation, because it makes the respondent re-read the list and quietly changes what they are comparing against.
  • Options can be marked fixed and are excluded from the shuffle. "None of these", "Don't know" and "Other (please specify)" belong at the bottom, and a randomiser that floats them into the middle of the list produces data you cannot use.
  • It is per question, not per survey. A brand list gets randomised; a scale from "Strongly agree" to "Strongly disagree" must not be.

What is not here: no rotation blocks across question groups, no reversed scale halves, and no per-cell quota management. If your design needs those, this is the wrong tool and it is better to know now.

The instrument

There are 16 question types. These are the ones research work leans on hardest.

  • Matrix. Rows sharing one scale — the standard battery grid. Exports as one column per row.
  • Ranking. Drag into order, with a top-N variant when you want the top three of nine rather than a full ordering.
  • Linear scale. 1 to n with labelled ends, which is the honest way to run an agreement or likelihood scale.
  • Recommend score. The 0 to 10 question. It is labelled "Recommend score" in the interface rather than NPS, because NPS is a calculation applied to the answer, not the question.
  • Rating. Star or heart, default maximum of five.
  • Checkboxes and multiple choice with per-option images, a description line and the "Other (please specify)" pattern, whose free text is stored separately from the label.

Choice questions default to bento option tiles rather than a list. Tiles are uniform height and reflow to one per row when a label runs past roughly 110 characters, which keeps a long option from distorting the grid. A plain list is the alternative and is often the better choice for a long battery. Questions can carry an image placed top, left, right or bottom in three sizes, with side-placed images matched to the question's height — which is what a stimulus test needs.

Screening, routing and piping

Conditional logic shows or hides questions on earlier answers, with rules matching any or all conditions. That covers screening, category-based routing and the follow-up-on-a-low-score pattern. Piping puts an earlier answer into a later question title, description or heading using {{question_id}}; an unanswered reference renders as "your answer" rather than exposing a raw token, which is the failure mode that embarrasses a live survey.

Validation covers required, minimum and maximum length with a live counter, numeric range, email, phone, URL, UK postcode, and a custom regular expression with its own error message. Numeric ranges and custom patterns are what stop a spend question coming back as "about £40 ish".

Sample, links and identifiers

Hidden fields are declared per survey and read from the query string, then stored with the response. That is how a panel ID, a source code, a wave number or a CRM reference gets attached without asking the respondent for it. Each becomes a column in the export.

Fieldwork close is enforced properly: close date and response cap are applied by a database trigger rather than by the user interface, because responses insert straight from the browser. A cap of 400 stops at 400 even if the link is still circulating, and a custom closed message explains that fieldwork has ended. Surveys can also be embedded in another page rather than linked out to.

Two things worth planning around. Spam protection is on — an off-screen honeypot, a minimum dwell time and a per-survey rate limit, all enforced by a database trigger rather than the interface, and deliberately not a CAPTCHA — but it filters automated submissions, not motivated humans, so an open link on social media is still not a controlled sample. Pair it with a cap, a close date and a hidden source field you can filter on. And webhooks do exist — each response posted to an https URL, HMAC-SHA256 signed with a per-webhook secret and a delivery log — but there are no panel integrations, so reconciliation with a provider means consuming that webhook yourself or doing it in CSV.

Getting the data out

Live charts per question with response counts and completion are useful for watching fieldwork, not for analysis. The real output is the CSV export: one column per matrix row, a separate column for "Other" detail, and hidden fields as their own columns, which is a file that opens cleanly in R, Python, SPSS or a spreadsheet without a preprocessing step. Individual responses can be browsed one at a time, and any single response printed to PDF through the browser.

Clearing test responses removes uploads and partials with them, so a pilot wave does not contaminate the real one. There is no AI analysis of open-ended answers — it is planned and blocked, and coding free text is still a job for a human or your own tooling.

Where the data sits

Survey content and responses are stored on Supabase in London (eu-west-2), encrypted in transit and at rest by the platform, with row-level security throughout and organisation isolation pinned server-side. For agencies that matters twice: once for your own obligations, and once because a public-sector client will ask before signing the contract. The detail is on the security page and the sub-processor list. Where a study is run jointly, collaborator logos are set per survey, so an agency workspace can badge a different client on each piece of fieldwork.

Related

Local government is where most UK public-sector fieldwork is commissioned, education covers evaluation instruments, and the Typeform comparison sets out what a conversational-first tool does and does not give a research team. Back to all solutions.

Build the instrument, then read the CSV.

The export is the honest test of a survey tool. Build a matrix, a ranking and an “Other” option, put ten test responses through it, and see what comes out before you commit to fieldwork.

  • Answer order seeded per page load, fixed options left in place
  • Hidden fields carry a panel ID in and come out as columns
  • One CSV column per matrix row, “Other” text in its own
Start building