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

    12of 12

    After the fixes. Before: 6 of 7 and 5 of 7

    Counted for a point they never made

    0people

    After the fixes. Run 1: 27

    Planted points in the report

    8of 10

    Before: 6. The chat counts the other two exactly

    Quotes word for word

    74of 74

    Each from the right person, across the three reports

    Rare points counted by the chat

    8of 8 people

    Points only 2 or 3 people raised, after the fixes; before, the chat gave no counts

    A report of 100 interviews

    $0.06

    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

    PointAskedPeopleRun 1Run 2Run 3
    Too expensiveWhy they left3636, exact36, exact36, exact
    Slow or unhelpful supportWhy they left2222, exact22, exact22, exact
    No link to accounting softwareWhy they left1616, exact28, miscounted16, exact
    Confusing setupWhy they left12Not in the reportNot in the report12, exact
    Invoices landed in spamWhy they left3Not in the reportNot in the report3, exact
    Mobile app crashedWhy they left2Not in the reportNot in the reportNot in the report
    Polished invoice templatesWhat was useful2828, exact28, exact28, exact
    Automatic payment remindersWhat was useful1818, exact18, exact18, exact
    Handled several currenciesWhat was useful3Not in the reportNot in the reportNot in the report
    Wants access for more peopleWhat would bring them back1414, exact28, miscounted14, exact
    Used it less as work went quietWhy they left1452, miscounted26, miscounted14, exact
    Drifted away, no one big reasonWhy they left1152, miscounted26, miscountedNot in the report
    Nothing useful beyond the basicsWhat was useful56Not in the report56, exact56, exact
    Nothing would bring them backWhat would bring them back39Not in the reportNot in the report39, exact
    Would return if it syncedWhat would bring them back5Not in the reportNot in the report5, 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

    Said itRun 1Run 2Run 3, after the fixes
    0102030405060People
    Too expensive
    Slow or unhelpful support
    No link to accounting software
    Confusing setup
    Invoices landed in spam
    Mobile app crashed
    Polished invoice templates
    Automatic payment reminders
    Handled several currencies
    Wants access for more people
    Used it less as work went quiet
    Drifted away, no one big reason
    Nothing useful beyond the basics
    Nothing would bring them back
    Would return if it synced

    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

    ExactMiscountedNot in the report
    051015Run 1627Run 2546Run 3123

    People counted for a point they never made

    By report run, summed over its themes.

    27Run 12Run 20Run 3

    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

    RunThemesExactPlanted points foundCounted wronglyQuotes word for word
    Run 1, before the fixes766 of 102725 of 25
    Run 2, before the fixes756 of 10224 of 24
    Run 3, after the fixes12128 of 10025 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

    Said itCounted, rightCounted, wrong
    0102030
    Mobile app crashed
    2
    Invoices landed in spam
    3
    Handled several currencies
    3
    Setup confusing or hard to get started
    12
    Price fine or not the reason, first try
    30
    Price fine or not the reason, labels redone
    21
    Price fine or not the reason, plain wording
    12

    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 detailsBeforeAfter
    Emails in stored answers20
    Phone numbers in stored answers10
    Full names in stored answers20
    Personal details in the team's review list20
    Personal details in report text00

    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.

    AI cost per report

    $0.08Run 1$0.05Run 2$0.06Run 3