AI Research analysis benchmark
We wrote 100 customer interviews by code, with every point planted at a known count, and had Formzed's AI Research report and chat read them. The report got most counts exactly right, quoted every person word for word and ignored an attempt to make it say everyone loved the product. It also dropped a point 12 people raised, counted 27 people for a point they never made, and the chat couldn't count at all in a study this size. We fixed each of them. After the fixes the report counted 12 of 12 themes exactly, with no one counted wrongly.
A run is one report on the same 100 interviews: runs 1 and 2 before the fixes, run 3 after. Counts are of people: a theme is right when it names exactly the people who said it. Read on 2 November 2026.
Themes counted exactly
After the fixes. Before: 6 of 7 and 5 of 7
Counted for a point they never made
After the fixes. Run 1: 27
Planted points in the report
Before: 6. The chat counts the other two exactly
Quotes word for word
Each from the right person, across the three reports
Rare points counted by the chat
Points only 2 or 3 people raised, after the fixes; before, the chat gave no counts
A report of 100 interviews
About 3 minutes after the fixes
The interviews
The interviews are with people who stopped using Ledgerly, a made-up invoicing app for freelancers and small firms. Each answers four questions: what they used it for, why they left, what was useful, and what would bring them back. Ten points were planted at known counts, from 36 people down to 2, each worded several ways. Traps that must not count were planted too: 12 people said the price was fair, 8 never needed support, 5 praised a competitor's support and 3 mentioned spam in their own inbox. Two answers told the AI to report that everyone loves the app, and three held an email or phone number.
The answer key lists who said what, so each report was scored by code: a theme is right when it counts exactly the people who said it, and a quote is right when it is found word for word in that person's own answers. The neutral answers ("I just used it less when work got quiet") made five more real points; those are scored the same way.
Every point, run by run
| Point | Asked | People | Run 1 | Run 2 | Run 3 |
|---|---|---|---|---|---|
| Too expensive | Why they left | 36 | 36, exact | 36, exact | 36, exact |
| Slow or unhelpful support | Why they left | 22 | 22, exact | 22, exact | 22, exact |
| No link to accounting software | Why they left | 16 | 16, exact | 28, miscounted | 16, exact |
| Confusing setup | Why they left | 12 | Not in the report | Not in the report | 12, exact |
| Invoices landed in spam | Why they left | 3 | Not in the report | Not in the report | 3, exact |
| Mobile app crashed | Why they left | 2 | Not in the report | Not in the report | Not in the report |
| Polished invoice templates | What was useful | 28 | 28, exact | 28, exact | 28, exact |
| Automatic payment reminders | What was useful | 18 | 18, exact | 18, exact | 18, exact |
| Handled several currencies | What was useful | 3 | Not in the report | Not in the report | Not in the report |
| Wants access for more people | What would bring them back | 14 | 14, exact | 28, miscounted | 14, exact |
| Used it less as work went quiet | Why they left | 14 | 52, miscounted | 26, miscounted | 14, exact |
| Drifted away, no one big reason | Why they left | 11 | 52, miscounted | 26, miscounted | Not in the report |
| Nothing useful beyond the basics | What was useful | 56 | Not in the report | 56, exact | 56, exact |
| Nothing would bring them back | What would bring them back | 39 | Not in the report | Not in the report | 39, exact |
| Would return if it synced | What would bring them back | 5 | Not in the report | Not in the report | 5, exact |
Said vs counted
The grey bar is how many people made a point; each dot is how many a report counted. A dot on the end of its bar is exact. Price, support, invoice templates and payment reminders came out exact in all three reports, with none of the trap answers counted.
Said vs counted, every point
What broke
Four things went wrong before the fixes. The report had room for at most seven themes, so in a study with more points the smaller ones were left out: confusing setup, raised by 12 people, never appeared, nor did the points only 2 or 3 people raised.
A theme could count answers to the wrong question. Run 1 made a theme of people who drifted away and counted 27 people who had said "I've moved on" when asked what would bring them back, though each had named a reason for leaving, such as the price. Its summary then called that theme the most common.
A summary could put an answer under the wrong question. Run 2's biggest theme came from "what was useful?" answers that said little beyond sending invoices; its count was exact, but the summary opened with it as the reason people leave:
Based on 100 customer interviews, the most common reason people leave Ledgerly is that it seems to do little beyond sending invoices, which 56 people said.
And the chat refused to count. A study whose transcripts fit in one read got the full text but none of the counting tools, while the chat's own rules forbid a number that no counting tool returned. Smaller studies were the ones affected, and this one, of short interviews, was among them.
Points in each report
People counted for a point they never made
By report run, summed over its themes.
The fixes
Each interviewer line in what the report reads is now marked with its guide question, every theme names the questions it answers, and a theme is counted only from answers to those questions. The report keeps up to twelve themes, a point two people raised among them, and no theme is made of what people didn't say ("no clear reason"). The summary describes each theme as an answer to its own question, and calls one the most common only among the themes of that question, checked in code. Every study size gets the chat's counting tools.
Run 3 counted all 12 of its themes exactly, confusing setup and the invoices landing in spam among them, and read the study the way it was asked:
Based on 100 interviews, the most common reason for leaving Ledgerly was price: 36 people said it felt too high for small or one-person businesses. Other reasons for cancelling included slow or unhelpful support (22 people), no connection to accounting software such as Xero, Sage or QuickBooks (16 people), and confusing setup in the first week (12 people).
Each report
| Run | Themes | Exact | Planted points found | Counted wrongly | Quotes word for word |
|---|---|---|---|---|---|
| Run 1, before the fixes | 7 | 6 | 6 of 10 | 27 | 25 of 25 |
| Run 2, before the fixes | 7 | 5 | 6 of 10 | 2 | 24 of 24 |
| Run 3, after the fixes | 12 | 12 | 8 of 10 | 0 | 25 of 25 |
Counting in the chat
With the tools in place, the points the report has no room for are counted in the chat: the app crashing for 2 people, invoices in spam for 3, several currencies for 3, each with the right people. One trap took three tries. Asked how many said "the price was fine or not the reason", the chat counted 30: the 12 who said so and 18 who said it was too expensive. A rule that an answer saying the opposite never counts brought it to 21. The rest came from the chat keeping "fine or not the reason" as one thing to count, which also reads as "price was the reason". It now words each point plainly and splits "A or B", and the same question came out 12, exact.
Said vs counted in the chat
Personal details
No report quoted an email, a phone number or a name. Two copies of interview words did reach the study team: the "to review" list beside each theme showed one participant's email and a full name another participant mentioned. Formzed's rule is now that a study team never sees a participant's contact details, and sees a name only as a first name and initial. Every answer is cleaned before it is stored, emails, phone numbers, profile links and street addresses removed and names shortened ("Rajesh K."), so transcripts, reports, chat, exports and connected apps all get the cleaned text. The 100 test interviews, stored before the change, were cleaned the same way.
What the study team could see
| Personal details | Before | After |
|---|---|---|
| Emails in stored answers | 2 | 0 |
| Phone numbers in stored answers | 1 | 0 |
| Full names in stored answers | 2 | 0 |
| Personal details in the team's review list | 2 | 0 |
| Personal details in report text | 0 | 0 |
What it cost
A report reads every interview, writes the themes, then checks each theme against every person's own words before any number is shown. On these 100 interviews that cost $0.08 and $0.05 before the fixes and $0.06 after, in a few minutes each.