Use casesVerified reports

Let the model write the report. Never let it touch a number.

A weekly client report is where trust is won or lost. A language model can draft one in seconds and put a wrong number in it just as fast. We build report engines where code computes and freezes every figure, the model writes only the words around them, and each number is proven against outside sources before anyone reads it.

What gets in the way

For most clients, the weekly report is the agency. What the program earned, who earned it, what it cost, what to do next. Someone writes that by hand, every week, for every client.

Hand it to a language model and the writing is solved in an afternoon. The risk moves somewhere worse: a confident sentence with the wrong figure in it, in front of the client who pays you.

In front of a client, one wrong number costs more than any hours saved. So the job was never the writing. It was making every number provable.

What we build

Three stages, with walls the build itself enforces.

  • Compute. Code reads the warehouse and works out every figure with its prior week, same week last year and eight-week baseline. Then it freezes them.
  • Write. The model drafts the pacing note, the highlights and the actions using references to the frozen figures. It never types a digit.
  • Render. Code draws the tables, the charts and the PDF from the same frozen figures, so a chart can never disagree with its table.
  • Guard. Any sentence holding a number code did not place is rejected. Missing headline totals, no run.
  • Spec. Each client is one file of definitions, currencies and banned words. One engine reads them all, with no per-client code.
  • Watch. A second agent in Slack finds what moved, program first and then each publisher, and speaks only when the change is worth a call.

How we know it works

An engine that agrees with itself proves nothing. Every figure is checked against two outside sources.

  • One is a query written by hand from the spec, reading from a different table and converting currency its own way. The other is the client’s existing report, with the client’s own filters.
  • Money has to match within half a cent and clicks exactly, across eleven reporting windows. For Acceleration Partners that was 4,756 figures, and 41 of 52 client units match the client’s own report exactly.
  • A test that cannot fail is decoration. We plant defects, inflated revenue, clicks shifted by one, a skipped currency conversion, and demand the checker catch each one. Doing this exposed a real flaw in the checker. We fixed it.
  • The checks found 13 errors in numbers the clients already had, including revenue under-reported threefold and two currencies added without conversion. Each now has a check that stops it coming back.

Client work

    • Acceleration Partners

    4,756 figures compared across three independent sources

    41 of 52 client units that match the client’s own report exactly

    43 client report programs specified for one engine

    Read the story

Where it fits

  • Marketing

    AI for marketing, where one wrong number costs more than it saves.

Questions

Can it write in our voice?

Yes. Each client spec carries its definitions, its currency and its banned words, and the model drafts within them. A separate model grades the writing, and its scores are advisory. Numbers block a release. Style does not.

What if a data source goes down the night before?

The report still ships with the same headline numbers and says what is missing. In testing we pull out a source, a feed or the model itself to make sure.

Will it invent a total across regions?

No. A client selling in several currencies gets each region in its own currency. The engine refuses to add them without a conversion it can prove.

How many clients can one engine serve?

Acceleration Partners’ serves 43 programs from one engine. Adding a client is a spec file, not a project.

Bring us the project that matters most.

Tell us what you’re building and what’s in the way. You’ll hear back within 24 hours.