Skip to content
All case studies
AI infrastructure Assisted reporting E-commerce

The weekly trading report that writes itself

The Monday trading update took a day and a half to assemble by hand and sometimes quoted a figure that no longer matched the model. Built an assisted-reporting layer that drafts it from the governed numbers, every figure traceable. The trading team reviews and sends.

1.5 days

to under an hour a week

Every figure

traced back to its source row

One

set of definitions, in the prose and the model

Defensible

every figure answerable when leadership pushes back

The client

An online retailer running weekly trading reviews across web, app and marketplace channels, reporting to a commercial leadership team.

The problem

The Monday trading report was written by hand from warehouse exports. It took most of two days, the narrative occasionally quoted a conversion or revenue figure that no longer agreed with the model, and one analyst was a single point of failure. The numbers were trustworthy; the write-up around them was slow and fragile.

How it ran

An assisted layer on top of the model the trading team already trusts, not a new source of numbers.

Step 1

Governed model

The draft reads only from the signed-off trading model. No second copy of the numbers.

Step 2

Drafted from the figures

An LLM writes the narrative against those figures, in the house style, with last week for context.

Step 3

Every claim traced

Each figure in the prose links back to the exact model row it came from.

Step 4

Trading team reviews

A person edits and signs off. The draft is a starting point that gets the blank page out of the way.

Step 5

Checked weekly

Before any draft is shown, the layer is evaluated against last week's signed numbers.

What I did

  • 01.Built the draft to read from the governed trading model only, so the prose and the reported numbers share one definition.
  • 02.Wrote the prompt and structure to match the trading team's house style, with the prior week passed in for movement context.
  • 03.Made every figure in the narrative carry its lineage back to the source row, so a reviewer can check any number in one click.
  • 04.Kept a person in the loop by design: the output is a reviewed draft, with edits captured to improve the next run.
  • 05.Added a weekly evaluation that re-derives the prior period and compares it to the signed numbers before a new draft is allowed through.
  • 06.Maintained it on retainer: when a definition changes, the prompt, the lineage and the evaluation change with it.

Under the hood

How it stays trustworthy

  • The model never invents a number. It selects a metric from a fixed list; the figure is injected from the governed model by code after the prose is written.
  • Every figure carries its lineage. A figure with no traceable source row is not rendered at all.
  • The weekly evaluation checks the narrative as well as the numbers. It re-derives the prior period and also asserts that every causal claim has a matching movement in the model.

What it will not do

It will not state a number it cannot tie to a model row, and it will not ship a draft that fails the weekly check. A failed check holds the draft for a person.

InteractiveSee it run

Draft the week, then read where every number came from

Sample figures, illustrative only
Read governed model Draft narrative Attach lineage

Result

What the trading team got back.

A day back, every week

The narrative starts as a reviewed draft instead of a blank page. The time goes into judgement, not assembly.

The words match the numbers

Prose and model share one definition, so the commentary cannot quietly disagree with the reported figures.

Defensible in the room

Every figure carries its lineage, so a leadership question gets a traced answer rather than a scramble.

It stays correct

Evaluated weekly, so it does not drift away from the signed numbers.

Built as a fixed-scope engagement, then maintained on retainer so it stays correct as definitions change. The deliverable includes your team able to run and change it after the engagement ends.

Tools used

BigQuery SQL Claude Scheduled queries Evaluation harness

A trading report that eats your Monday?

It usually starts as a short Spotcheck to size the work, then a fixed-scope build, then it is maintained on retainer so it stays correct as definitions change.