A webapp built for Integrate UK that extracts responses from scanned pre- and post-survey forms, computes the comparison statistics deterministically, and generates a structured report.
An analyst reads each scanned form, transcribes circled answers by hand, tallies every question across all respondents, and writes the summary. The process scales poorly, and the resulting figures cannot be independently verified.
An analyst submits a PDF, ZIP or pasted text. The webapp extracts the responses, computes each statistic in code, and returns a structured report with charts, per-question breakdowns and a narrative.
The obvious approach was to pass the scanned form to a language model and ask what had changed. It was rejected on two grounds: language models are unreliable at arithmetic at scale, and a model that both reads the data and computes the statistics produces output that cannot be verified.
The model's scope was therefore narrowed to two tasks it performs reliably: interpreting handwritten input, and composing prose from figures already calculated. All arithmetic runs deterministically in the browser and is reproducible across runs, which allows the webapp to publish its calculation methodology rather than requiring users to take the figures on trust.
Means, percentages improved, unchanged or declined, and demographic tallies are all computed in code. The model has no role in their calculation.
Batched extraction and a single narrative call per report keep expenditure bounded regardless of respondent count.
The API key is held only within a server-side proxy function and is never delivered to the browser.
A handwritten form goes in as a photo, a scan or pasted text. No special equipment and no re-typing.
Responses are read into the charity's own template, and every statistic is calculated in code.
Charts, per-question breakdowns and a written narrative come out as one structured, exportable report.
Built and tested by the cohort team, including one full test run of a 56-page scan covering 28 respondents. It makes no claim about time saved.