Guide
How to write a weekly KPI report people actually read (and trust)
· Written by the New Odyssey team, with AI help.
Most weekly reports fail in one of two ways. Either they're a screenshot of a dashboard with every number on it, which nobody reads past the first chart, or they're a paragraph of confident explanations that nobody can check. A good weekly KPI report is short, specific and verifiable: it says what changed, where the change came from, and what needs a decision, and every number in it can be traced back to its source.
Here's a method that works for a founder, a small team or an agency writing for a client.
1. Pick five to eight metrics you would act on
Start from decisions, not from what's easy to export. For a SaaS business that's usually MRR, new paying customers, churned customers, failed payments, trial signups and website sessions. For an online store: revenue, orders, average order value, refunds and sessions by channel. For an agency client: sessions, key events (conversions), search clicks and whatever the client is paid on.
For each one, write down two things before you report on it:
- Which way is good. More signups is good; more failed payments or a higher average search position is bad. A report that colors every increase green is wrong half the time.
- How a week adds up. Revenue and signups are totals. MRR is a balance: take the value on the last day of the week, not the sum of seven days. Rates such as conversion or click-through are averages.
2. Compare with last week and with the 4-week average
Week over week is the comparison everyone understands, but it overreacts. If last week was unusually low, a normal week looks like a 30% jump. Add a second comparison: this week against the average of the four weeks before it. A change that shows up against both is real; a change against only one is usually noise from the week before.
If you set targets, add a third: this week against the weekly target. Targets turn "down 8%" into "on track" or "12% short".
3. Decide in advance what counts as worth mentioning
Write your thresholds down, for example: a move of 15% or more week over week, or 20% against the 4-week average, or a target missed by more than 10%. For counts, also require a minimum absolute change: going from one refund to two is +100%, and it isn't news.
Thresholds keep the report short and stop you from cherry-picking. If nothing crosses them, the report says so in one line: a steady week is useful information.
4. Separate what changed, why, and what needs attention
Keep three short sections:
- What changed: the metrics that crossed a threshold, biggest first, each with its value, the comparison and the change. "Trial signups were 251, down 19.6% from 312."
- Why it likely changed: only what the data shows. Break the change down by segment and name the part that moved: "Most of the drop came from Organic Search, 162 to 103." Then note which other metrics moved in the same week. If search clicks fell too, say they coincided; don't claim one caused the other unless the breakdown shows it.
- What needs attention: missed targets, metrics moving the wrong way, and data problems (a source that hasn't updated, a week that's incomplete).
Resist adding causes the data can't show ("probably the holiday", "the new pricing page"). If you know something the data doesn't, write it as your note, clearly separate from the numbers.
5. Show your evidence
Every number in the report should be traceable: which metric, which dates, what it was compared with, where it came from and when that source was last updated. You don't need to put all of that in the sentence; a reference to a short evidence list at the bottom does the job. It changes how the report is read: people stop arguing about whether a number is right and start talking about what to do.
Check freshness before you send. Search Console publishes final data two to three days late, and some exports are only updated at month end. A week that isn't complete in the source should be held back, not reported as a drop.
6. Keep the format the same every week
Same day, same time, same order of sections, same metrics. Consistency is what makes a weekly report a habit: readers learn where to look, and changes in the format don't get mistaken for changes in the business.
A template you can copy
Week of Oct 19 – 25. Two metrics moved notably; one needs attention.
What changed. Revenue collected was $3,987, down 20.1% from $4,991 [E4]. Failed payments rose to 10, from 3 [E12].
Why it likely changed. Revenue fell in the same week that failed payments rose; they coincided [E4, E12].
Needs attention. Failed payments: 10 against an average of 2.3 [E13]. Check which payments failed and whether retries are running.
Evidence. E4: Revenue collected, Oct 19 – 25 vs Oct 12 – 18, sum of succeeded charges, Stripe, data through Oct 25…
(The numbers above are from a made-up example company.)
Doing it without the Monday spreadsheet
All of this can be done by hand in a spreadsheet in about an hour a week. Metrica does it automatically: it reads Stripe, Google Analytics 4, Search Console, Google Sheets or a CSV, computes these comparisons in code, writes the three sections from the computed figures only, and attaches the evidence to every statement. You can see a sample briefing on the try page without an account.
Questions
How many metrics should a weekly KPI report have?
Five to eight for a small business: the ones you would act on. Track more on a dashboard if you like, but only mention the ones that moved past your threshold or missed a target.
Should I compare with last week or last year?
Both last week and the average of the four weeks before. Last week alone overreacts to one odd week; the 4-week average shows whether this week is really different. Year-on-year helps for seasonal businesses once you have the history.
How do I explain why a metric changed without guessing?
Break the change down by segment (channel, plan, product) and see which part moved, and check which other metrics moved in the same week. Say what the data shows; call a coincidence a coincidence.