Solutions · Local government
Consultations that residents finish.
NumoForms is a survey builder for councils, combined authorities
and parish councils. Survey content and responses are stored on Supabase
in London (eu-west-2), collaborator logos are set per survey
rather than per account so a partner authority can be badged on a single
consultation, and conditional logic keeps a statutory consultation from
asking every resident every question.
The problems councils actually bring
Consultation length
A local plan consultation, a parking review or a leisure strategy collects a large number of questions because a large number of teams contribute them. The result is a survey that nobody outside the council will finish. Two things fix this without cutting the questions.
Conditional logic shows or hides a question based on an earlier answer, with rules that match any or all of a set of conditions. A resident who says they do not drive never sees the parking block. Scoring only counts what the respondent actually saw, so branching does not penalise anyone.
Save and continue gives the
respondent a resume link keyed on a 24-character token. That matters for
consultations run at a library terminal or on a phone with a bad signal:
a half-finished response is not a lost response. Partial answers live in
a table with no row-level-security policies at all, reachable only
through SECURITY DEFINER functions, so a leaked link
exposes one partial response rather than a table.
Accessibility is a legal requirement, not a nice-to-have
Public sector bodies in the UK are required to publish an accessibility statement for the digital services they provide, and procurement questionnaires ask for it in writing. We build to WCAG 2.2 AA as the standard the respondent experience is designed against, and we publish an accessibility statement that says plainly what has been tested and what has not. If something fails, it is listed rather than omitted — an accessibility statement with no known issues is a statement nobody has checked.
Practically, that means keyboard-reachable controls, visible focus indicators, real form labels rather than placeholder text, and error messages that name the field. The accessibility feature page covers what the respondent side does in detail.
Partnership working breaks most branding models
Councils rarely run a survey purely as themselves. A district council runs a travel survey funded by the county; a combined authority runs one on behalf of five constituent authorities; a public health team badges a survey with an NHS partner. Most tools attach one logo to the account, which forces either a wrong logo or a second account.
Collaborator logos are per survey, not per account. One workspace can badge a different local authority on each survey, and it is deliberately separate from the organisation's own brand kit so a shared workspace does not overwrite anyone's identity. Each survey also has its own accent colour.
Information governance asks first, not last
Expect the DPIA before the purchase order. The answers we can give today: survey content and responses are stored in London on UK infrastructure; data is encrypted in transit with TLS and at rest with AES-256 by the platform; row-level security applies throughout and organisation isolation is pinned server-side rather than trusting a value sent by the browser; uploaded files sit in a private bucket read through signed URLs that expire after 300 seconds; roles are owner, admin and member, and the last owner of an organisation cannot be removed or demoted, enforced at database level.
The full picture is on the security page, the UK GDPR page and the published sub-processor list. What we will not do is imply certifications we do not hold: there is no ISO 27001 certificate and no completed SOC 2 audit, and any supplier questionnaire will get that answer in writing.
Closing a consultation on time
A consultation window has a legal end date, and “we forgot to turn the form off” is an awkward line in a committee report. Close dates and response caps are enforced by a database trigger rather than by the user interface, because responses insert straight from the browser — the form being hidden is not the same as the form being closed. You can also set a custom closed message pointing residents at the next stage.
What a council survey typically looks like
A district council running a travel and transport survey would usually build something close to this. Every element below exists in the product today.
- Screening. A Multiple choice question on where the respondent lives, using bento option tiles — the default layout for choice questions — with a ward image on each tile.
- Address capture. An Address question with street, town and postcode, the postcode checked on entry, so responses can be mapped to wards afterwards.
- The branch. A Checkboxes question on which modes of transport they use, driving conditional logic for the rest of the survey. Bus users get the bus block; cyclists get the cycling block; nobody gets both unless they use both.
- Service ratings. A Matrix question rating eight local services on one shared scale, which exports as one CSV column per row rather than one unusable blob.
- Priorities. A Ranking question, drag into order, with a top-N variant when you only want the top three of nine. Answer order is randomised, seeded per page load so going back does not reshuffle, with any “none of these” option marked fixed so it stays at the bottom.
- Evidence. A File upload for a photo of the junction or the pavement being complained about, stored privately.
- Open comment. A Paragraph question with a maximum length and a live character counter, so the comment fits the space in the report.
- Demographics. Placed last, using a Section break and an inline heading, with an “Other (please specify)” option whose free text is stored separately from the label and exported in its own column.
Choose the paged layout — a section per screen — for anything this long. Classic (one scrolling page) suits a short feedback form, and conversational (one question at a time, one-tap questions auto-advancing) suits a quick pulse survey on a phone.
Distribution and reporting
Surveys can be embedded in an existing consultation page rather than linked out to, which keeps the council domain in the address bar. Hidden fields, declared per survey and read from the query string, let you tag which channel a response came from — a QR code on a bus stop poster, a link in the residents' newsletter, an email to a panel — and the tag is stored with the response.
For the write-up: live charts per question with response counts and completion, CSV export for the statistician, individual responses browsable one at a time for the officer handling representations, and any single response printed to PDF through the browser. There is also a clear-test-responses action that removes uploads and partials with them, so the pilot run does not end up in the published numbers.
Common questions
Where is consultation data stored?
On Supabase in London (eu-west-2). Survey content and
responses stay in the UK.
Can we badge a survey with a partner authority?
Yes — collaborator logos are per survey, so a shared workspace can badge a different authority on each one.
Will you support a DPIA?
Yes. We publish the sub-processor list and answer assessment questions directly, including the ones where the answer is “we do not have that certification”.
Can residents finish later?
Yes, via a resume link keyed on a 24-character token.
Related: healthcare surveys share most of the same governance requirements, and charity and non-profit surveys often sit on the other side of a council-funded programme. Back to all solutions.
Put your next consultation in it.
Conditional logic stops a statutory consultation asking every resident every question, and a resume link means a half-finished response is not a lost one. If information governance wants the security detail before anything is built, that is a reasonable order to do it in.
- Consultation responses stored in London, never outside the UK
- A partner authority badged on a single survey
- Close dates enforced by the database, not the interface