Report assembly

Recurring reports eat analyst weeks. The numbers should come from certified queries that a human wrote once, and the model should only write the sentences around them. Generating the SQL fresh each month is how a report quietly changes definition.

The job on one screen

Runs whenA schedule, usually the first working day of a month or week.
ReadsCertified queries, the previous report, and the calendar of things that happened.
DecidesWhich movements to write about, and how to say them without overclaiming.
ProducesA finished document with charts, numbers, and three paragraphs of commentary.
Stops whenAssembled and checked. A human sends it to the audience.
Tools it needsWarehouse (read only), chart renderer, document API.
Autonomy to start atApprove. It does the work and stops before the irreversible step.

Optional: load a real model

Run it

The checks the draft has to pass

The model writes, then code checks. A draft that fails any check never reaches the send step, and the failure is shown rather than silently patched.

CheckWhat it protects against
No causal assertionBecause and driven by are the words that turn a report into a rumour. Say what moved and what to check.
Numbers presentCommentary with no figures is opinion. Every claim carries the number it came from.
Both directions coveredA report that only mentions good movements gets stopped being trusted the first time someone checks.
Under 120 wordsNobody reads paragraph four of a monthly report, so the important sentence must be in paragraph one.

Where this one goes wrong

Regenerated definitions

If the SQL is generated each month, your metric changes silently. Certified queries only.

Cheerful reporting

Models write optimistically by default. Force a both-directions check or the bad news gets softened out.

Chart lies

Truncated axes and rebased series flatter results. Fix the chart config once and never let it be generated.

How you would know it is working

MeasureWhy that one
Time to publishUsually the point: days to hours.
Commentary edited before sendFalling edits mean the grounding rules are working.
Questions the report failed to answerCollect them and they become next month's certified queries.

Earning more rope

AssistAssemble numbers and charts, human writes the commentary.
ApproveAssemble everything with drafted commentary, human approves and sends. Right level.
AutoFully automatic for internal operational reports where the audience knows how it was made.
Certified queries, generated prose. That split keeps the numbers stable across months, which is the property that makes a recurring report worth having at all.

Related: Ad hoc questions · Campaign reporting · Budget tracing · all agent jobs · Agent Lab home

Free from AI School - no signup, everything runs in your browser.