KPI reports
A daily digest of the numbers that matter, in Slack, with an AI summary.
Data Warehouse → KPI Reports posts a scheduled digest of business metrics to Slack.
What a report is
A set of metrics, a schedule, a channel, and optionally an AI-written summary.
| Field | Notes |
|---|---|
| Metrics | Each a query or a Superset dataset mapping |
| Schedule | Usually daily |
| Channel | Where it lands |
| Comparison | Against yesterday, last week, or a target |
| AI summary | Optional narrative |
Metrics are configured in the UI
Metrics are defined in the interface, not in code. Adding one does not require a deploy — which is the difference between a report that stays current and one that describes last quarter's priorities.
Superset datasets
A metric can map to a Superset dataset, so numbers already defined there do not need redefining. One definition, two places using it.
The AI summary
The summary describes what moved and by how much, using OpenAI or Anthropic depending on configuration.
It describes; it does not explain. It can say revenue fell 12% and that signups were flat. It cannot know that Tuesday was a public holiday — and it will not claim to.
Writing a good report
- Five to eight metrics. More and people stop reading, which costs you the attention you were trying to buy.
- Always include the comparison. A number alone is not information.
- Put the most important metric first. People read the first line of a Slack message and decide whether to read the rest.
- Send it when somebody will read it. 09:00 local, not 03:00.
Public sharing
A report can be shared at a public tokenised URL for people without an AccelerUp account. The token can be revoked.
Related
- SQL alerts — for when a number being wrong should wake somebody, rather than appear in tomorrow's digest
Where this behaviour lives: backend/internal/worker/saas_report_worker.go, frontend/src/app/dwh/reports/. If the code and this page disagree, the code is right — please fix the page.
Part of Data warehouse — Querying the warehouse, and alerting on what the query returns.