TL;DR
Paste a compact KPI table (this week / last week / target), 1-2 sentences of real context, and the two metrics leadership actually cares about. A current model returns a 200-word narrative: a quotable summary line, two wins, two honest misses, and one thing to watch. The only rule that matters: force every hypothesis to name another metric that moved in the same direction, or the model will fill the “why” with fluent nonsense. Prompts below work in ChatGPT (GPT-5.5), Claude (Sonnet 4.6), and Gemini (3.1 Pro).
The task
It is 9:08 on Monday. The KPI report is due at 10:00, the leadership thread is already moving, and your BI tool just produced a 14-row table that nobody is going to read. You need a 200-word narrative that explains the wins, names the misses honestly, ties hypotheses to other metrics that actually moved, and points at one thing to watch next week — without sounding like a templated update and without burying the one number you wish were different.
Where AI helps, and where it does not
AI is genuinely good at structure, week-over-week framing, and replacing “MAU was up” with “MAU climbed 4.2% WoW, driven by retention rather than new signups.” It also keeps the report under 200 words without you counting.
What AI cannot do is invent the causal hypothesis. If you do not paste adjacent context — a campaign that launched, a holiday weekend, an outage, a competitor move — the model pattern-matches to generic causes (“possibly due to seasonality”) that calibrate nothing and signal nothing.
The named failure mode: the airport-novel hypothesis. The model fills the “why” slot with a fluent-but-empty sentence (“conversion rose due to improved product-market fit”). Always require it to ground each hypothesis in another metric that moved in the same direction.
Which AI to use (June 2026)
All three frontier assistants will write this report from a pasted table. The difference shows up when you upload the raw export instead of pasting a clean table:
| Tool | Model (June 2026) | File upload in app | Best for |
|---|---|---|---|
| ChatGPT Plus ($20/mo) | GPT-5.5 | CSV / XLSX / PDF up to ~50 MB; runs sandboxed Python (pandas) | You want the model to compute deltas and pivots from a messy export |
| Claude Pro ($20/mo) | Sonnet 4.6 | CSV / XLSX / PDF, up to 30 MB and 20 files per chat; renders live charts as Artifacts | Long context (1M tokens) for pasting several weeks of history at once |
| Gemini (Google AI Pro $19.99/mo) | Gemini 3.1 Pro | Native inside Google Sheets via Workspace | The KPI table already lives in a Google Sheet |
Notes: GPT-5.5 has been ChatGPT’s default since late April 2026; Claude Pro bundles Claude Code and Cowork at the same $20 ($17 on annual). Google’s “Gemini Advanced” was renamed Google AI Pro in early 2026. For a fuller side-by-side, see ChatGPT vs Claude vs Gemini.
For a weekly text narrative, model choice barely matters — context and the grounding rule do. If you only paste a clean table, any of the three is fine. If you want the model to crunch the raw BI dump, ChatGPT’s Python sandbox or Claude’s Artifacts save you the spreadsheet step. (OpenAI’s data-analysis docs describe the sandbox in detail.)
What to feed the AI
- Compact KPI table (this week, last week, target), 5-10 rows max
- 1-2 sentences of context (campaigns live, holidays, outages, competitor news)
- The two metrics leadership cares most about this quarter, so the model weights the narrative
- Last week’s report (so phrasing rotates, not the content)
- Any known data caveats (BI delay, attribution change, instrumentation bug)
- The audience (your manager, the leadership channel, the all-hands)
- Tone constraint: factual, no hedging adverbs (“somewhat”, “slightly”)
- The one thing you want the reader to remember by Tuesday morning
Copy-ready prompt
You are writing this week's 200-word KPI report.
Audience: [leadership Slack / weekly all-hands / manager 1:1].
Priority metrics this quarter: [top 2 metrics].
Context: [campaigns, holidays, outages, attribution changes].
Last week's report (for phrasing variety, not content): [paste].
KPI table:
[paste table with this-week / last-week / target columns]
Write in this structure:
1) One-line summary the reader could quote in Slack.
2) Two wins — each names the metric, the WoW delta, and one adjacent metric that confirms it.
3) Two misses — each names the gap, the WoW delta, and a hypothesis grounded in another metric that moved.
4) One thing to watch next week — specific enough that a different number next Monday would change my action.
Rules: no hedging adverbs. No "due to seasonality" unless I gave you a seasonality input. If you cannot ground a hypothesis in another metric I gave you, say "hypothesis pending — need [what data]."
Shorter variant — leadership Slack post only
Convert this KPI table into a 60-word leadership Slack post.
1 line summary, 1 line top win with number, 1 line top miss with number, 1 question for the room.
Table: [paste]. Context: [one sentence].
Sample output
A useful narrative paragraph: “Week 19 was a retention story. DAU/MAU climbed to 0.42 (vs 0.39 last week, target 0.40), driven by Day-7 retention on the May 4 cohort (38% vs 31% prior cohort), not by new signups, which dipped 6% WoW. The miss: paid conversion fell from 3.1% to 2.6%; the drop concentrates in the iOS cohort, which also saw a 22% spike in checkout error rate after the 1.42 release. Hypothesis: client-side checkout bug, not pricing. Watching iOS paid conversion daily until checkout error rate normalizes.”
A useful Slack-post variant: “Week 19: retention up, iOS paid conversion down. DAU/MAU 0.42 (+0.03). Paid conversion 2.6% (-0.5pp), tracking iOS checkout error spike. Question for the room: hold the May pricing test or pause until iOS is clean?”
How to refine
- Ground every hypothesis: “For each miss, name the other metric that moved in the same direction. If none exists in the data I gave you, say so explicitly.”
- Rotate phrasing, not structure: “Rewrite this report using last week’s structure but no repeated transitional phrases. Readers tune out identical openings.”
- Punch the headline: “Replace the summary line with one a leader could quote in Slack — verb, number, direction. No ‘overall, things are tracking well.’”
- Surface the buried miss: “If any KPI is worse than target and worse than last week, it belongs in the misses section even if I forgot to flag it.”
- Trim: “Cut to 180 words. Whatever survives is the signal.”
Common mistakes
- Letting AI invent hypotheses without grounding. “Due to seasonality” with no seasonality input is a hallucination, not analysis
- Same opening sentence every week. Readers train themselves to skim past it
- Hiding misses in the middle of a wins paragraph. Calibration will surface them later, more painfully
- Pasting the entire BI dump (50 rows). The model dilutes the narrative across noise
- No “thing to watch”. Readers don’t know what to expect different next Monday
- Omitting outages or attribution changes from context. AI then writes confident hypotheses for what is actually a data artifact
- Letting AI hedge (“conversion may have slightly dropped”). Every hedge is a sentence that does no work
- Forgetting the target column. Wins-vs-last-week without wins-vs-target hides the real story
FAQ
- Should the structure change weekly? Slightly. Same skeleton (summary, wins, misses, watch), fresh phrasing. Readers tune out identical reports faster than you think.
- What if numbers were affected by an outage? Flag the outage in context. The model will then label the affected line “data caveat” instead of inventing a business hypothesis.
- Should I include charts? Reference them (“see iOS conversion chart”) but do not try to embed them in the narrative. The report is text; the dashboard is the source of truth.
- Which model should I pick? For a text narrative, any of GPT-5.5, Sonnet 4.6, or Gemini 3.1 Pro is fine. Pick by where your data lives: a Google Sheet leans Gemini, a messy CSV export leans ChatGPT’s Python sandbox or Claude’s Artifacts.
- Is it safe to paste internal KPIs into a consumer chatbot? Check your company policy first. ChatGPT, Claude, and Gemini all let you turn off training on your inputs in settings, and their Team/Enterprise tiers exclude your data from training by default. For regulated data, use the enterprise tier your company has approved.
- How do I handle a metric I am not sure how to interpret? Tell the AI: “For metric X, I’m unsure whether the move is meaningful — list the two adjacent metrics I should check before claiming a hypothesis.” Then check them.
Related
- Weekly planning — the planning side of the weekly cadence
- Financial trend analysis — multi-quarter trends instead of WoW
- Budget narrative AI — annual budget storytelling
- Funnel analysis readout AI — funnel-specific version
- Business data analysis AI — adjacent analysis prompts
- Manager update email AI — narrative for the one-up
- Dashboard takeaway AI — turn a dashboard screenshot into a takeaway