The situation
Weekly operational reporting took most of two days to assemble, and by the time it landed the operators had already noticed the same problems on the floor. The reporting wasn't wrong — it was late, and it described what happened without saying why.
What we built
The deviation detection itself is statistical rather than generative: thresholds and trend breaks computed over the operational tables. The language model does the part it is genuinely good at — pulling together the related signals behind a flagged deviation and writing the explanation a shift lead can read in ninety seconds.
How it integrates
It reads from the existing PostgreSQL replica and the warehouse management exports, posts the briefing into the operations Slack channel, and links each figure to the Grafana panel it came from so anyone can check the underlying series.
Governance & compliance
Every number in the briefing is traceable to a query, and the queries live in version control and are reviewed like any other code. The model never computes a figure — it only explains figures the pipeline computed, which keeps the worst failure mode at 'unhelpful narrative' rather than 'wrong number in a report'.
Result
Preparation time for the weekly report dropped to roughly an hour, and the daily briefing changed the standup itself: it now starts from the explanation rather than from someone reading numbers off a screen.